Algoritmus a vazba na program
Je důležité si uvědomit, že dosud počítače nejsou schopné zcela samostatného myšlení. Pro provádění výpočtů a obecně zpracování dat je třeba vytvořit jasné postupy - algoritmy zpracování.
1. Algoritmus a vazba na program
Asi každý z nás někdy musel řešit nějaký problém. Intuitivně využíváme našich schopností a podnikáme jisté kroky, abychom nalezli možná řešení zmiňovaného problému.
Pokud bychom se podívali zblízka na samý začátek procesu řešení, musíme nejprve jasně formulovat problém. Tento problém bychom měli co nejvíce analyzovat a určit výchozí podmínky, za kterých hodláme problém řešit. Je pro nás také samozřejmostí, že požadujeme výsledky a mnohdy známe i jejich formu.
Nejinak je tomu i při sestavování postupu řešení konkrétní úlohy pomocí počítačového programu. Celý postup řešení problému za využití počítačového programu lze rozdělit do několika fází - viz Obrázek 1.

Obrázek 1: Vodopádový model
Tento model zahrnuje následující kroky:
- Systémové požadavky
- Softwarové požadavky
- Analýza - formulace problému, analýza problému, vytvoření postupu řešícího problém, jinak řečeno algoritmus
- Návrh programu - sestavení programu v návaznosti na algoritmus
- Implementace
- Testování
- Provoz
Algoritmus lze tedy popsat jako schématický postup (předpis) pro řešení určité skupiny (třídy) úloh, prováděný v konečném počtu přesně definovaných kroků. Z předchozí věty lze odvodit, že základními vlastnostmi algoritmů jsou:
Hromadnost - řešit skupinu úloh lišících se parametry nebo počátečními podmínkami (např. průměr z počtu N čísel, kde požadujeme, aby N > 0)
Rezultativnost - musí existovat cesta, kterou se dojde od vstupních k výstupním datům - úloha musí konvergovat k výsledku
Konečnost - k výsledkům se musí dojít v rozumně konečné době
Determinovanost - v každém kroku algoritmu musí být jednoznačně dáno, jaká činnost bude následovat
Smyslem programování je vytvořit předpis
pro jednoznačné a v konečném čase opakovatelně uskutečnitelné
řešení konkrétní úlohy, probíhající nad vstupními a výstupními
(vytvářenými) daty. Prostředkem programování jsou programovací
jazyky. Programovací jazyk představuje tedy pro programátora prostředek
vzájemné vazby mezi algoritmickým řešením úlohy a jejím skutečným
řešením na úrovni strojového kódu vlastním počítačem.