Algoritmid ja andmestruktuurid, MTAT.03.133, 4AP, praktikumid ja iseseisev töö.

Tahvlipraktikumid

Tahvlipraktikumide töökeel on C. Püüan kommenteerida nii palju kui oskan, ja
vastan kõigile küsimustele.

Tahvlipraktikumides püütakse enamasti leida algoritme näiliselt
keerulistelr ülesannetele. Enamik neist on realiseeritavad lühikeste
programmidena ja on maha laaditavad minu koduleheküljelt või
sellelt leheküljelt allpool, seal, kus on nende lühitutvustused.

C-keelseid tekste ma ei jaga, ent need on meie praktikumide põhisisustajad.

Üks probleem pärineb Kompilaatorite (MTAT.05.066) kursusest: kuidas
konstrueerida süntaksorienteeritud (universaalset) skannerit, mis saab ette
programmeerimiskeele terminaalse tähestiku ning on võimeline eristama selles
keeles kirjutatud programmi(de)st reservsõnad ja eraldajad ning lekseemiklasside
identifikaatorid ja konstandid liikmed. Skanneri töö näidet analüsaatori
koosseisus saab näha siit.

Kaks probleemi on näiliselt lihtsad, ent nende lahendamiseks ei eksisteeri
teadaolevalt efektiivset algoritmi, need on rahvaloendusjaoskondade moodustamine
ja paljude kitsendustega logistikaülesanne. Kuivõrd need programmid on
tehtud tellimustööna (koos prof. Tombakuga), siis neid maha laadida pole võimalik,
küll aga tutvume praktikumides probleemide ja põhimõtteliste algoritmidega.

Sobival ajal vaatame, kuidas on realiseeritavad C-keele vahenditega põhilised andme-
struktuurid ja kuidas võivad olla programmeeritud C stringifunktsioonid päisfailist
<string.h>.

Kui huvilisi leidub ja aega jatkub, siis võime semestri lõpus vaadata, kuidas käib
programmeerimine Windowsi keskkonnas; TTSi juhtprogrammi näitel. Käivitada
saaab TTSi siit.

Lihtsad ülesanded on järgmised:

Iseseisev töö

Semestri jooksul tuleb koostada kirjalik töö ajalisest keerukusest


Töö tuleb esitada novembri viimasel praktikumil.

Töö kirjutatakse nn. baastöö alusel -- selleks on eelmistel
aastatel koostatud töö. Teie ülesanne seisneb baastöö analüüsis ja
oma versiooni tegemises samal teemal. Töö koosneb tiitellehest, sisukorrast ,
sissejuhatusest (ülesande püstitusest koos põgusa ülevaatega kasutatud
materjalidest), retsensioonist baastööle (mida retsensent
võib kirjutada, võite vaadata näiteks siit), algoritmi
esitamisest, testimistulemustest (kohustuslikud on nii tabel kui ka graafik),
kirjanduse jm. kasutatud materjalide (sh. baastöö) loetelust ja lisana Teie
programmi tekstist, kindlasti koos kommentaaridega.

Programmi tuleb lisada "demo": alamprogramm, mis näitab, et algoritm(id)
tõepoolest töötab (töötavad); näiteks, kui testite järjestusmeetodeid, siis
trükitakse esmalt (suhteliselt lühike)algandmete jada ja seejärel too jada
kõigi testitavate meetoditega järjestatult.
NB! Baastöödes see nõue veel ei kehtinud, teie jaoks aga küll.

Kuivõrd tegemist on paljudele esimese kirjaliku üliõpilastööga, siis
pööran hindamisel suurt tähelepanu vormistamisele.Töö keel peab olema
täpne ja isikupäratu, vältida tuleb nii õpiku-, populaarteaduslikku,
ajalehe- kui ka jututubade stiili, ja emotsionaalsust. Niisiis, stiil peab olema
teadustööde oma.

Kasutatud materjalidele tuleb tekstis viidata; tsitaadid tuleb esitada jutumärkides.
Viitamata tekstilõikude esitamine tekstis on sisuliselt plagieerimine ning pole
aktsepteeritav mistahes publikatsioonis.

Prof. J. Kiho vormistamissoovitusi saate lugeda .ps-formaadis siit,
LaTex-formaadis siit ja .rtf-formaadis siit.

Töö võib olla kirjutatud kas eesti, vene, inglise või saksa keeles, aga kogu töö peab
olema kirjutatud algusest lõpuni valitud keeles, sh. ka tiitelleht. Programmeerida
võite suvalises programmeerimiskeeles (pööramata tähelepanu baastöö
(programmeerimis)keelele.)

Kui Teie emakeel pole eesti keel, ent kirjutate töö eesti keeles, siis soovitan
tungivalt paluda see kellelgi keeleliselt üle vaadata: kui näiteks aasta
aega eesti keelt õppinud venelase või lätlase kohta on keel fantastiliselt
hea, ei saa ma seda hindamisel arvestada, kui ta pole ka absoluutskaalas
perfektne.

Töö hinnet arvestab Härmel Nestra eksamihinde panemisel. Töö on
eelduseks eksamile pääsemiseks. Seega, et kvalifitseeruda, tuleb "F" (ja mitte
ainult) korral töö seni ümber teha, kuni resultaat mõlemat poolt rahuldab.
"Korraline eksam" annab punkte 0..80. Praktikumitöö annab täiendavaid punkte:
A=20, B=15, C=10, D=5 ja E=0. Kui tööde hulgas on eriti silmapaistvaid, siis parimad neist
(umbes 5 -- 6) saavad lisaks 10 punkti.
Eelvaliku (ca 10 kandidaati) teen mina ning otsustab dr. H. Nestra.

Palve: ärge palun pange tööd lehekülghaaval "kilekottidesse" --
kilele on toda rikkumata raske märkusi teha..

Korduma kippuvaid vigasid vaata siit

"Normaalse töö" näide

Lõpuks, kunagi pole liiga palju saadaval materjale mistahes taseme üliõpilastööde kirjutamiseks,
ja et naabrite kogemused on selleks, et neist õppida, siis võite lõõgastuseks lugeda nõuandeid vene
kraadiõppureile siit
ning professor Tšistjakovi lühiloengut oma aspirandist (üksiti miilitsa-alampolkovnikust) naisele siit

NB! Baastöö TULEB TINGIMATA TAGASTADA! Koos oma tööga.


Viimati muudetud 2.09.08.