Saateks
Käesolev õppevahend on mõeldud programmeerimise aluste süstemaatiliseks tutvustamiseks üldhariduskoolide õpilastele.
Eelkõige olen silmas pidanud Tartu Ülikooli juures tegutseva Teaduskooli informaatikaosakonna vajadusi. Kuna Teaduskooli õppetöö toimub kaugõppe vormis, eeldan materjali kasutajalt iseseisva töötamise oskust ja minimaalset mingis protseduurses keeles programmeerimise kogemust. Aine esituses olen püüdnud keskenduda universaalsetele tõdedele, mis kehtivad kõigis levinud programmikeeltes, mitte õpetada ühe või teise keele süntaksit või mõne konkreetse programmeerimiskeskkonna iseärasusi.
Ajendatuna soovist laduda edasisteks õpinguteks kindel vundament, on käsitlus võrdlemisi matemaatiline ja range. Seetõttu ei tarvitse materjal olla sobilik noorematele õpilastele. Neil soovitaksin alustada ``Programmeerimise algkursusest'', mida on võimalik õppida nii Teaduskooli kaudu kui ka iseseisvalt aadressil http://nrg.tartu.ee/algkursus/.
Materjal on organiseeritud vastavalt Teaduskooli kaheaastase põhikursuse õppetöö korraldusele: esimesel aastal keskendume programmeermise üldistele ehituskividele --- algoritm ja selle õigsus, valikulaused, korduslaused, alamprogrammid, algoritmide keerukus -- teisel aastal kasutame neid vahendeid kombinatoorika ja klassikaliste andmestruktuuride standardalgoritmide ja nende koostamise võtete tundmaõppimiseks. Praeguses väljaandes on katmata kursuse kaks viimast teemat --- sõnetöötlus ja arvutusgeomeetria.
Enne materjali sisu juurde asumist tahan tänada kõiki, kes selle valmimisele kaasa on aidanud: Tiigrihüppe Sihtasutust rahalise toetuse eest; Piret Truud, Indrek Jentsonit, Andrei Solntsevit ja Kristo Tammeojat parandusettepanekute eest (kõik allesjäänud vead on muidugi minu vastutusel); Jüri Kihot, Rein Pranki ja Jaanus Pöialit, kelle varasematest materjalidest ma eeskuju võtnud ja ülesannete ideid laenanud olen; ja kindlasti ka Teaduskooli informaatikaosakonna õpilasi, kes õppematerjalide põlvkonnavahetuse käigus ebamugavusi kannatama pidid.