Nüüd on järjekordne semester TalTech IT Kolledžis IT süsteemide arenduse õppurina möödas ja saab teha tagasivaate. Keda huvitavad varasemad perioodid, need leiavad siit vastavalt: 1. semestri, 2. semestri, 3. semestri ja 4. semestri kokkuvõtted. Selja taga on semester akadeemilisel puhkusel. Nagu viimati kirjutasin – prioriteetide jagamine töö, pereelu ja hobide vahel muutus väljakutseks, mistõttu otsustasin stepsli sootuks seinast tõmmata. Tõsi – akadeemilisel puhkusel olles on sellegipoolest võimalik aineid deklareerida kuni 18 EAP ulatuses. Minu valikuks jäid sedapuhku teemad, mis on pigem kaudsemalt koodi kirjutamisega seotud:
- Arvutid (IAX0043) – Elmet Orasson ja Harri Lensen – 6 EAP, kohustuslik aine
- Kõrgem matemaatika (ICY0030) – Kristiina Hakk – 6 EAP, kohustuslik aine
- Tehisintellekti tootejuhtimine ja -arendus (ITB8202) – Liisi Soots ja Kristin Ehala – 6 EAP, vabaaine
Tehisintellekti tootejuhtimine ja -arendus
Alustan selle semestri lemmikuga. Liisi Soots ja Kristin Ehala olid otsustanud oma senised teadmised kokku panna, et tulla välja päris uue kursusega, mille raames anda baasteadmised tehisintellekti toodete nullist arendamisest ja olemasolevate toodete käimas hoidmisest.
Kursuse sissejuhatuseks vaatasime olulisemaid seniseid tehisintellekti ärilisi kasutusjuhtumeid. Seejärel tuli ise valida konkreetne rakendus, mille osas business case õnnestuks kokku saada. Seejärel omandasime ühistes seminarides mõned lihtsad tööriistad, kuidas kas Pythoni teekide või pluginatega hakata oma masinõppe rakendusi treenima ja seejärel tööle panema. Samuti avastasime mõningaid tasuta kättesaadavaid tööriistu, mis mõningaid samme lihtsustavad:
- VGG (Visual Geometry Group) Image Annotator – Töövahend, mis võimaldab erinevate fotode annoteerimist. Lähtekood on saadaval GitLabis: https://gitlab.com/vgg ja töötav näidis on Oxfordi ülikooli veebis: https://www.robots.ox.ac.uk/~vgg/software/via/via.html
Seejärel vaatasime erinevaid ärilisi lahendusi, mille abil on võimalik masinõppe töövoogusid automatiseerida:
- Fotode visuaalse märgistamise teenus: https://www.cvat.ai/annotation-service
- Samuti omandasime oskuse https://colab.research.google.com/ keskkonnas Pythoni skriptide kirjutamist ja omavahelist jagamist ilma enda isiklikku IDEt häälestamata.
Lisaks omandasime teadmisi mille võrra tehisintellekti arendus erineb tavapärasest tarkvaraarendusest. Teisisõnu – kuidas tehisintellekti arendamisel tuleb mõned tarkvaraarenduses selgeks saanud meetodid unustada ja asendada alternatiivsetega. Nimelt – masinõppe valdkonnas tuleb proportsionaalselt suurem hulk aega tegeleda üsna tuima tööga – mudeli jaoks lähteandmete kogumise, puhastamise, süstematiseerimise ja klassifitseerimisega. Samuti – mistahes lähteandmete eelduste muutumisel tuleb sama suur hulk aega ja energiat panustada mudelite taastreenimisele.
Põgusalt käisime läbi statistilised mudelid, mille abil mõõta tehisintellekti täpsust ja usaldusväärsust. Analüüsisime mudeli arendamise ja kasutamisega seotud riske ja eetilisi väljakutseid. Samas – lõpliku tulemuseni ma selles õppeaines ei jõudnud, sest polnud järjekindlust kodutööd koostada ja ära kaitsta. Teadmised olid aga igal juhul osalemist väärt ka ilma selleta. Igal juhul soovitan ka teistele!
Kõrgem matemaatika – ICY0030
Kõrgema matemaatika õppeaine näol oli tegu paraja pähkliga. Eriti kui gümnaasiumi lõpust pool elu möödas. Õppeaine koosnes praktilistest harjutustundidest, erinevate koduülesannete täitmisest ja kolmest hindelisest kontrolltööst, mis üldarvestuses lõpuks õppeaine tulemuse kokku andsid.
Kristiina Hakk on valitud tudengite poolt mitu korda IT kolledži lemmikõppejõuks. Kuulduste järgi paneb ta ka matemaatiliste lampjalgade omanikud tantsima. Selleks on tal kasutusele võetud terve komplekt meetodeid. Esimeseks neist on harjutustunnis koos tudengitega erinevate ülesannete läbi arvutamine. Seejärel on ta teinud suurel hulgal Khan Academy stiilis lühivideosid, kus erinevaid kontseptsioone tutvustab ja näiteid läbi arvutab. Järgmiseks komponentideks on regulaarsed koduülesanded.
Kord nädalas avab õppejõud Moodle’is nobedate näppude vooru, mil kolme päeva jooksul on kõikidel tudengitel võimalik esitada erinevatele ülesannetele enda poolt foorumisse vastuseid, kus nad neid ülesandeid lahendavad. Samuti on võimalik teiste tudengite vastuseid kommenteerida ja neile soovitada arvutuskäikude parandusi. Kolmandaks komponendiks on vahetööd, kus saab oma teadmisi katsetada.
Ja lõpuks hindelised kontrolltööd, mida toimub õppeaine raames kokku kolm:
- Esimene vahetöö keskendub matemaatilisele analüüsile – funktsioonid sh trigonomeetria, tuletised, piirväärtused, integraalid – kokku kuni 40 punkti.
- Teine vahetöö võtab fookusesse statistika ja tõenäosusteoora – sündmused, normaaljaotused, binoomjaotused, diskreetsete sündmuste statistika, sõltuvuste statistika – kokku kuni 30 punkti.
- Kolmas vahetöö võtab teemaks lineaaralgebra, maatriksid ja graafid – kokku kuni 30 punkti.
- Lisapunkte on võimalik noppida kodutööde ja lisaülesannetega.
Esimene oluline arenguhüpe oli seotud meediumiga – pliiats ja paber. Ma vist polnudki alates gümnaasiumi lõpust pidanud pliiatsit ja paberit kasutama muuks kui registreerimislehtedele oma nime kirjutamiseks. Selles õppeaines tuli uuesti õppida vanamoodsalt kirjutama. Seejärel valemeid kirjutama ja neis orienteeruma. Üsna puiselt läks üsna pikalt.
Hindelises plaanis – minu jaoks algas aine punktide kogumine ehmatusega. Kohe kõige esimesest ja kõige kaalukamast – 40 punktisest kodutööst – õnnestus saada ainult 1 punkt. 🙂 Abiõppejõududeks olid kutsunud Reaalkooli gümnasistid, kes olid meie töid parandanud ja hinnanud. Üks gümnasist andis mulle siis mu punaseks tehtud töö tagasi ja kurtis väriseva häälega, et paraku ei saanud ta mulle rohkem anda. Hakkasin selle peale naerma, sest tema hinnang oligi adekvaatne – nõutud tasemel matemaatilist analüüsi ei suutnud ma kuuajalise stuudiumi käigus endale selgeks teha.
Samas – järgmised hindelised kodutööd läksid lihtsamini, sest nendes oli hiljutist kogemust mõnevõrra rohkem. Statistika, maatriksid ja graafid andsid pea maksimumtulemused ja aine lõpuks tuli positiivne tulemus siiski kokku. 🙂 Samuti oli päris põnev õppeaine üks vahetöö, kus oli võimalik valida enda poolt üks statistiline valim ja teha selle teemal üks põhjalikum statistiline analüüs.
Niisiis – kõrgema matemaatika õppeainet kokku võttes võib järeldada, et teemadest on kasu. Kui küsida, et kas teeksin seda ainet vabatahtlikult või raha eest uuesti, siis vastus oleks mõlemale küsimusele pigem jah.
Arvutid – IAX0043
Seda õppeainet annavad kaks õppejõudu – Elmet Orasson ja Harri Lensen. Kogu õppeaine materjal on igale huvilisele vabalt kätte saadav veebiaadressil: https://ati.ttu.ee/IAX0043/ , mistõttu soovi korral saab sealt täpsemalt vaadata.
See kursus tekitas mõnevõrra segaseid tundeid. Ühest küljest on hea teada, et mis selle raua sees täpselt toimub, millele me pidevalt koodi kirjutame. Teisalt – nii raualähedaseks mõtlemiseks ma päris valmis ei olnud. Kursuse raames tuli teha läbi terve suur hulk iseseisvaid teste, mis käsitlesid erinevaid riistvaralisi teemasid: digitaalloogika, summaator, multipleksor, protsessor, mälud, adresseerimine, sisend- ja väljundseadmed, BIOS, spetsiaalriistvara, paralleelarvutid ja veakindluse tõstmine.
Samuti tuli läbi teha terve hulk praktikume, mille raamest tuli Falstad modelleerija abil joonistada erinevaid loogikaskeeme. Panen mõned neist siia alla galeriisse. Samuti pildikese oma kodutööst, kus kirjeldan oma mõttekäiku, et kuidas kirjutada koodi LogiSim Java CPU simulaatorile:
- Esimene praktikum oli sissejuhatus riistvara maailma – tuli Moodle’is täita teste erinevate riistvaraliste küsimuste kohta.
- Teises pidi NOR-väravate abil meisterdama valmisdigitaalskeemi, mis simuleeris segmentindikaatori lülitusi.
- Kolmandas tuli kirjutada masinkoodi lihtsale 8-bitisele aadressiväljaga protsessorile, kus oli võimalik kasutada nihutamist, dekrementi ja otsest adresseerimist. Kasutasime selleks Java baitkoodina kättesaadavaks tehtud ja oma arvutis kompileeritavat Logisim protsessori mudelit, millele õppejõud Elmet Orasson oli omakorda kirjutanud lihtsa operatsioonisüsteemi. Meie ülesanne oli masinkoodis erinevaid arvutusülesandeid teostada.
- Neljanda ülesandena tuli trigerite, loogikaväravate ja ümberlülitajate abil valmis teha lihtne riistvaralise loenduri simulaator, mis ühte lülitit vajutades loendaks 16ndsüsteemis üles, teist lülitit vajutades loendaks allapoole ning kolmandat lülitit vajutades nulliks loenduri.
- Viiendaks ülesandeks oli meisterdada lihtsaid aritmeetikatehteid sooritava riistvaralise kalkulaatori simulatsioon.
Kursus oli võimalik läbida kahe eksamiarvestlusliku kontrolltööga. Mõlemad tunniajalised Moodle’i testid. Neist esimene oli riistvara baasteadmiste kohta. Teises tuli tunda arvutite sügavamat hingeelu. “IAX0043 Arvutid” õppeaine tegemisel oli üsna oluliseks eelduseks diskreetse matemaatika põhiteadmisi omada, sest enamike ülesannete koostamise juures oli tarvis joonistada tõeväärtustabeleid, Karnaugh’ kaarte, panna kokku loogikafunktsioone.
Minu jaoks oli selles kursuses päris mitmeid huvitavaid avastusi. Nimelt selgus erinevaid huvitavaid mustreid – näiteks kui arvude korrutamist teha kümnendsüsteemi asemel kahendsüsteemis, siis mõnede arvude puhul on see operatsioon elegantselt lihtsam kui 10ndsüsteemis. 🙂
Samuti – loogikaskeemide kokku ja lahku tõstmine on natuke nagu mandalate joonistamine. Väga huvitavaid kombinatsioone on võimalik visuaalselt koostada ilma et peaks eelnevalt diskreetse matemaatika keeruliste valemitega üleüldse vaeva nägema.
Kokkuvõtteks – silmaringi laiendas ja riistvaraga möllamine tuletas meelde noorusaega. Samas – tarkvara arendamise seisukohalt uusi teadmisi ei saanud. Niisiis – kui see oleks kas vabaaine, siis vist teda ei valiks… Samas soovitan seda ainet jätkuvalt õppekavas alles hoida, sest üldhariva põhjana on seda ühel arvutiteadlasel tarvis teada ja osata.
Õppekava seis ja järgmised plaanid
Praeguse seisuga on õppekavast 120 EAP-d käes, 60 EAP-d veel teha. Ehk 2/3 on selja taga. Õppeainete arvu seisukohalt on 22 ainet sooritatud, 7 veel tulemas. Järgmiseks sügiseks kavandan mitu kohustuslikku ainet ja ilmselt 1-2 vabaainet:
- Programmeerimine C# keeles (ICD0008) – Andres Käver, 6 EAP, kohustuslik
- Veebirakendused Java baasil (ICD0011) – Märt Kalmo, 6 EAP, kohustuslik
- Diskreetne matemaatika (IAX0010) – Harry Lensen – 6 EAP, kohustuslik
Õppeinfosüsteemis vaatab moodulite pilt välja alltoodud moel – linnukeste arv on moodulite kõrval pisitasa kasvamas: