Peegeldan kolmandat korda TalTech IT süsteemide arenduse õppekava. Tagasivaates aastatagused kogemused esimesest semestrist ja samuti teisest semestrist.
Sel semestril vaid 18 EAP-d. Kui esimesel semestril tegin aineid 32 EAP väärtuses ja teisel semestril saavutasin 24 EAP-d, siis paistab, et olen praegu liikumas matemaatiliselt kahaneva jada tingimustes 32 -> 24 -> 18. Kui loetelu täpselt samal moel jätkata, siis järgmisel semestril peaks sihiks seadma 14 EAP? 🙂 Eks paista – praegu igal juhul kaalun päris tõsiselt akadeemilise puhkuse võtmist, sest patarei on üsna tühi.
Kolmas semester oli senistest suurim väljakutse. Pere ja töö kõrval oli keeruline õpingutega tegeleda. Lisaks nõudsid viirused sügisest mitu nädalat omale.
Esimest korda hakkasin kaaluma, et kas õppetöösse panustatud aeg on ka tegelikult väärt sellest saadud tulemust. Semestri lõpus olen niisiis nii enda õpingute kui ka õppekava suhtes kriitilisem kui varem.
Sel semestril kukkus kõvasti mu sisemine motivatsioon õpingutega tegeleda. Kui mõlemal varasemal semestril õnnestus mul oma senised kodutööd ja rühmatööd siduda jooksvalt endale tööalaselt oluliste teemadega, siis praeguse semestri vältel keskendusid kõik ained kas mingitele üldistele teoreetiliste kontseptsioonidele või ühel puhul arvutimängu koostamisele, mis otseselt mu enda sihtidega kokku ei lähe. Huvi õpingute vastu langes.
Teine väljakutse oli õppe-metoodiline. Suur osa stuudiumist toimub distantsilt. Distantsõppes ei ole aga TalTech kvaliteet kuidagi võrreldav paremate MOOC-idega. Ainukesed plussid on eesti keel ja salvestatud video. Paraku on mõlemad hügieenifaktorid. Minu jaoks on tõhusaks õppimiseks oluline aktiivne suhtlus. Sel semestril oli ainult üks aine, kus toimus aktiivne koostöö ja üksteiselt õppimine – “Algoritmid ja andmestruktuurid”. Pisut oli suhtlemist ka veebihalduskeskkondade aines. Ülejäänud nügisid omaette nokitsema.
18 EAP-d, palju või vähe?
Kuigi iga semestri õppimise nominaal peaks olema 30 EAP väärtuses ainete sooritamine, siis minu puhul oli selle semestri lõplik saak 4 ainet ja 18 EAPd. Üks ette võetud aine jäi mul pooleli ja lükkub aasta võrra edasi:
- Algoritmid ja andmestruktuurid (ICD0001) – Jaanus Pöial – 6EAP, kohustuslik
- Veebihalduskeskkonnad (ICD0020) – Meelis Antoi – 6EAP, valikaine
- Keskkonnakaitse ja säästev areng (YTG0060) – Üllar Rammul – 3EAP, kohustuslik
- Füüsika mittefüüsikutele (NSO0160) – Sirje Keevallik – 3EAP, kohustuslik
Programmeerimine C# keeles (ICD0008) – Andres Käver – 6EAP, kohustuslik
Neljast sooritatud ainest kaks olid silmaringi avardavad kohustuslikud üldained. Üks aine – veebihalduskeskkonnad oli pigem olemasolevate teadmiste kinnistamiseks. Tarvkaraarenduses otseselt kasutatavaid oskusi sai kahest – algoritmide ja C# programmeerimise ainest.
Aga nüüd siis allpool selle semestri tulemustest põhjalikumalt.
Algoritmid ja andmestruktuurid
Tegemist on kohustusliku põhiõppe mooduli ainega, mis nõuab põhjalikku süvenemist ja kaasa töötamist.
Eelduseks Java programmeerimise oskused
Vast seni kõige õpetlikum aine kogu stuudiumi algusest peale. Juhendajaks kogenud IT Kolledži dotsent Jaanus Pöial. Osalemise eelduseks kas Märt Kalmo Java kursus või Java oskuste test. Tagasivaates võib öelda, et kursusel tuli tunda Java baassüntaksit, mõista massiivi (array), listi, linkedlisti, hashmapi, rekursiooni, üksuste testimist ja OOP põhialuseid. Java süntaksi mõistes baasteadmistes piisas – ehk nt Helsingi Ülikooli Java Programming I MOOC – baaskursus oli minu jaoks küllaldane ettevalmistus.
Algoritmid ja andmestruktuurid on ilmselt kogu senise stuudiumi käigus mõtlemist enim laiendanud aine. Ülesanded sundisid mõtlema abstraktsel tasemel. Tuli iga kord peatuda, probleem tükkideks lahti võtta ja selle aspektid üldistada süsteemi tasandile ja seejärel süsteemile sobilik lahenduskäik kujundada. Igale probleemile esimest korda otsa vaadates kukkus suu esimese hooga lahti: “Pole aimugi, mida tegema peaks!” Aine nõudis taustatööd. Samas oli raskusastme kasv väga hea. Alustasime lihtsamatest teemadest ja iga järgmine tugines eelmises omandatud oskustel.
Tööriistana kasutasime taas juba eelmisel semestril käepäraseks saanud IntelliJ IDEA Ultimate IDE-t, mille litsents on TalTechi tudengitele tasuta kasutada. Rakenduse häälestamisel võtsime kasutusele pigem suhteliselt antiikse 2014. aastal välja tulnud Java Development Kit versiooni 8. Põhjus oli üsna proosaline – kuna õppejõud kasutas tudengite poolt valmistatud ülesannete testimiseks Moodle’i keskkonda, siis selles eksisteerib üpris ammune testimismoodul. Sellest tulenevalt tuli Java süntaksis tugineda ka pigem klassikalistel meetoditel.
Ülesannete sisu
Õppejõud Jaanus Pöial on otsustanud oma kursuse materjalid hoida valdavalt avalikult väljas: https://enos.itcollege.ee/~jpoial/algoritmid/index.html Seal on nii taustamaterjalid, näited, videod kui ülesannete kirjeldused. Ülesanded algasid kõigepealt lihtsatest sortimistest, seejärel võtsime ette otsimisalgoritmid (binary search), puude meisterdamise, graafi loomise ja lõpuks keerulisemad ülesanded tekstiga – näiteks kuidas luua algoritm, mille abil kasvõi täna populaarse Wordle mängu tulemusi vähima proovimiste arvuga ära mõistatada.
Kõikide ülesannete puhul oli õppejõud ette andnud testifailid (vt siit kataloogist “…Test.Java” – sisuga faile), mille põhjal võisid kontrollida, et mis väljundi peaks su ülesannete lahendus välja pakkuma. Ülesannete lähteülesannete sisu on TalTech Moodle’is lukus – seetõttu panen siia ühe näidise. Kolmandas ülesandes oli näiteks tarvis meisterdada sulgudeta postfikskuju kalkulaator:
Valmista sulgudeta LIFO pinu kasutavat postfikskuju kalkulaator (Reverse Polish Notation calculator), mille abil on võimalik arvutada selliseid tehteid:
"2. 15. -" // vastuseks: -13.0 Selgitus: 15-2 = 13.0
"35. 10. -3. + /" // vastuseks: 5.0. Selgitus: 35 / (-3 + 10) = 5.0
Paarisprogrammeerimine
Peale lahenduste valmimist kogunesime IT kolledžisse kord kahe nädala jooksul 2-tunniseks seminariks, kus iga kord jagati meid juhuslikkusele alusel uutesse paaridesse. Näitasime paarilisele, kuidas ette antud ülesande lahendasime ja vajadusel täiendasime ja parandasime üksteise koodi. Seejärel alustasime paarisprogrammeerimise ülesandega, kus kodus valmistatud ülesannet veel omakorda täiendasime. Ehk näiteks ülaltoodud ülesandes tuli lisada kalkulaatorile lisafunktsioonid:
Lisa oma LIFO-pinu kasutavale kalkulaatorile lisafunktsioonid:
"DUP" - dubleerib viimase arvu magasinis
"SWAP" - vahetab kaks viimast arvu magasinis
"ROT" - pöörab magasini tervikuna tagurpidi - esimene viimaseks, teine esimeseks jne, et teha selliseid tehteid:
"3 DUP *" // vastuseks: 9.0. Selgitus 3 -> 3 3 ja seejärel 3 * 3 = 9.0
"2 5 SWAP -" // vastuseks: 3.0 Selgitus 2 5 -> 5 2 ja seejärel: 5 - 2 = 3.0
"2 5 9 ROT - +" // vastuseks: 12.0 Selgitus 2 5 9 -> 5 9 2 ja seejärel: 5 + 9 - 2 = 12.00
Nimetatud paarisprogrammeerimise ülesanded olid TalTech IT Kolledžis esimene võimalus teha koodi kirjutamisel tiimitööd.
Iseseisev töö
Eraldi väljakutseks oli algoritmide kursusel graafi teemadest iseseisva töö valimine, mille põhjal lahendada mingi praktikas eksisteeriv probleem. Mina otsustasin keskenduda Dijkstra klassikalisele algoritmile ja üritasin kasutada seda lennunduse näitel – juhul kui Läänemere piirkonnas tuleks leida lühim tee ühest lennujaamast teise sellises olukorras kus otseühendustega võib olla kehvasti.
Antud ülesande lahendamiseks koostasin 16-leheküljelise raporti, üle 500 rea koodi ja kuna õppeaine lõpuks olime läinud distantsõppele, siis ka lühivideo, kus oma probleemi ja lahendust tuli demonstreerida:
Algoritmide eksam
Õppeaine lõpuks toimus 2-tunnine eksam, mille käigus tuli alustuseks vastata ca 30le küsimusele, mis puudutasid kogu õppeaine materjale. Seejärel tuli koostada lihtne programm, millega lahendada puu-tüüpi algoritmi rakendust, kus sisendiks tuli võtta kommide arv ja laste suhe kujul: “A(B,C(D,F(K,L,M),P))”, kus iga sulgude välja jääv osapool saab võrdse osa kommidest. Ehk antud näites jaguneb 144 kommi nii:
144 kommi -> "A(B,C(D,F(K,L,M),P))"
Laps A: 72 kommi (pooled)
Laps B: 36 kommi
Laps C: 18 kommi
Laps D: 6 kommi
Laps F: 3 kommi
Lapsed K, L ja M: kõik 1 komm
Laps P: 6 kommi
Õppurid ja väljalangejad
Varasematel semestritel olen rantinud paljude väljakukkunute teemal. Võtan teemaks ka siin. Tegemist ei ole just lihtsamate killast kursusega. Kui esimesed ülesanded lahendasin vast 3-4 tunniga, siis iseseisva töö tegemiseks läks lõpuks ca 1.5 nädalat.
Õppeaine deklareeris 98 tudengit. Veel viienda kodutöö tegi ära 92 osalejat. Kuuendaga jõudis lõpule 72. Kuna seitsmes töö polnud kohustuslik, siis ilmselt jäi aines lõpetajate arv umbes 56-72 vahele, mis räägib taas sellest, et umbes 1/3 tudengitest ei jõua tulemuseni:
Kuidas veel paremini saaks algoritme õppida?
Kogu semestrile tagasi vaadates olen selle aine eduka läbimise puhul väga rahul. Pilt on läinud laiemaks ja täiendav arusaam on tekkinud keerulisemate probleemide lahendamise võimalustest. Samas – kui oleksin piirdnunud ainult Eestist pärit materjalidega, siis poleks ilmselt ka ise suutnud positiivse tulemuseni jõuda. Seda enam, et osalise distantsõppe tingimustes polnud just kõige lihtsam leida võimalusi õppejõult abi küsida. Niisiis – mul endal oli kõige rohkem abi kui ühel hektel avastasin veebiavarustest University of Washington Paul G. Allen School of Computer Science and Engingeering teaduskonna kursuse CSE373 – Data Structures and Algorithms.
Seal on kursust erinevad õppejõud õpetanud 2-3 korda aastas alates 1990ndate keskpaigast ja kursuse arhiivist on võimalik õppematerjale kõikidest nendest aastatest. Viimastel aastatel on seal õppejõud Kasey Champion ja Kevin Lin sisuliselt ja visuaalselt mitmed keerulised teemad lihtsalt praktiliste näidete varal lahti selgitanud. Panen siia näiteks ühe ekraanipildi Breath-First Search ja Depth-First Search ning Dijkstra algoritmi kirjeldavate slaidide juurest, mis aitasid mul selle aine iseseisva tööga hakkama saada:
Iga inimese viis uusi teemasid omandada on ilmselt pisut erinev. Ise aga leidsin kinnitust, et ka üsna matemaatilise ja abstraktse teema omandamist saab lihtsustada igapäevaelust näidete toomine ja käega katsutavate ülesannete läbimine.
Veebihalduskeskkonnad
Meelis Antoi juhendatav veebihalduskeskkondade õppeaine oli mu varasematele teadmistele tuginedes pigem lihtne. Aine raames õppisime PhPs loodud populaarsemate veebi sisuhalduskeskkondade – WordPress, Drupal ja Joomla püsti panemist oma arvutis loodavasse arenduskeskkonda ja seejärel selle eksportimist välisesse serverisse. Lisaks tuli teha üks väike test, mis käsitles veebirakende toimivust. Samuti koostada mõningaid materjale, mis kirjeldaksid teenustaseme lepingute haldust ning turvalisuse ja käideldavuse tagamist.
Rakenduste koostamiseks tuli püsti panna lihtne LAMP server (Linux – Apache – MySQL – PhP). Kohalikus masinas püsti panna XAMPP abil arenduskeskkond, teha rakendused valmis ning lõpuks migreerida need FTP abil virtuaalsesse privaatsesse serverisse.
Lähteülesandeks oli teha võimalikult sarnase välimusega lihtne koduleht kolmes sisuhalduskeskkonnas ning lisada sellele interaktsiooni võimalused – foorumid, galeriid ja lihtne veebipood ning teha see avalikult kättesaadavaks. Õppeaines tuli nimetatud lehtede toimivust seejärel kaasõppuritele demoda, kes said selle kohta esitada täpsustavaid küsimusi ja soovitusi.
Õppetöö toimus Teamsi keskkonnas, kus õppejõud esimeses faasis andis näpunäited kuidas sisuhaldussüsteemidega toimetada ja seejärel hakkasime kord nädalas Teamsi keskkonnas kohtuma, kus sai kas õppejõult või kaastudengitelt nõu küsida.
Tunnistan, et olles kõikide ülaltoodud sisuhalduskeskkondadega juba paarkümmend aastat toimetanud, ei omandanud selles õppeaines enda jaoks eriti uusi teadmisi. Lihtsalt sain võimaluse meelde tuletada, mida kunagi on tehtud. Antud juhul otsustasin teha õppeaine raames uuenduskuuri oma firma veebilehele ja analüüsida, et kas edaspidi oleks põhjust WordPress vahetada Joomla või Drupali vastu. Lõplik otsus on jätkata WordPressiga, sest Joomla või Drupali täiendav paindlikus ei kaalu jätkuvalt kuidagi üles WordPressi lihtsust ja kiirust.
Kui mõelda, et mille võrra veel õppeainet paremaks saaks timmida, siis endale oleks pakkunud huvi ka rohkem LAMP serveri kapoti alla piiluda – millistest komponentidest koosnevalt oleks võimalik sisuhalduskeskkondade elemente kohandada.
Keskkonnakaitse ja säästev areng
Lektor Üllar Rammuli poolt õpetatav 3 EAP mahus kohustuslik üldaine oli pigem silmaringi avardamiseks. IT arendamise teadmisi selle kursuse raames ei saanud. Küll aga mõistmist, et millised aspektid ökoloogias millegi muuga seotud on. Õppeaine läbimisel toob õppejõud väga lahedaid näiteid oma isiklikust varasalvest. Õppejõud on mõnusa huumorimeelega ja rikkalike teadmistega.
Õppeaine läbimiseks tuli lihtsalt loenguvideod läbi vaadata ja teha lõpetuseks lihtne test, kus tuli meenutada mõningaid fakte looduskaitse praktikatest ja regulatsioonist – nii Eestist kui globaalselt.
Mõeldes õppeaine sisu arendamisele, on tegemist väga olulise potentsiaaliga teemaga. Nimelt IT arenduses on üksjagu aspekte, mille mõju keskkonnale on äärmiselt suur, aga millele arendajad enanasti ei mõtle. Näiteks – millist mõju omab krüptokaevanduste kasv energiakasutusele ja seeläbi meie süsinikutarbele. Kuidas optimeerida algoritme selliselt, et vähendada kasutatavaid andmemahte. Kuidas vähendada raiskamist erinevate süsteemide vahel aastast aastasse liikuvate päringutega, mille jaoks on vajadus kadunud, aga mis on unustatud ära kustutada.
Füüsika mittefüüsikutele
Selle õppeaine inglisekeelseks nimetuseks on “Physics for Poets” ja õpikusoovitusena oli ette antud sama pealkirjaga Robert Marchi teos “Physics for Poets”. Samalaadselt eelmise keskkonna ainega on emeriitprofessor Sirje Keevalliku poolt juhendatav 3 EAP mahus kohustuslik üldaine samuti arendaja silmaringi jaoks oluline.
Sirje Keevallik on päris nutikalt sidunud omavahel erinevad ajaloolised ajajärgud. Kursusel kirjeldas ta avastusi füüsikas ja näitas, mis toimus samal ajaperioodil kunstis, muusikas ja riigivalitsemises. Alustasime antiikfüüsika, Kepleri, Newtoni ja Galilei teemadest kuni Einsteini, Schrödingeri ja Plancki saavutusteni. Oma sisult oligi seetõttu tegemist peaasjalikult “füüsika ajaloo” kursusega. Alltoodult üks näide tema ette valmistatud ajateljest.
Taas ei saanud kursusel otseselt midagi uut teada IT arendamise kohta. Samas andis ta võimaluse omandada teadmisi, mis lubavad füüsikat paremini mõista ja seeläbi aru saada tehniliste süsteemide tehnoloogilistest võimalustest ja piirangutest. Ühtlasi sai korrata olulisemaid gümnaasiumis õpitud valemeid liikumise, mehhaanika, jõu, soojuse, elektri ning magnetismi osas. Samuti omandada uusi aspekte osakeste ja astrofüüsika kohta.
Kursuse läbimiseks tuli läbi vaadata loenguvideod ja sooritamisel oli kaks võimalust – kas õpingute vältel toimuva kahe kontrolltöö või lõpus aset leidva hindelise arvestuse vormis. Mõlemad koosnesid hulgast valikvastustega küsimustest ja paarist lihtsast ülesandest. Näide eksamiküsimusest all:
Koordinaadistik O' liigub ühtlaselt koordinaadistiku O suhtes x-telje positiivses suunas ja koordinaadistik O'' ühtlaselt x-telje negatiivses suunas. Süsteemis O toimub sündmus, mille kestus on:
* süsteemis O'' mõõdetuna lühem kui süsteemis O mõõdetuna
* süsteemis O' mõõdetuna pikem kui süsteemis O mõõdetuna
* süsteemis O' mõõdetuna lühem kui süsteemis O mõõdetuna
* süsteemis O'' mõõdetuna sama, mis süsteemis O' mõõdetuna
Mitu kilovatt-tundi elektrit kulub 30 päeva jooksul, et hoida põlemas 50 vatist pirni?
Velma on raketis, mis liigub itta ja möödub Mortist kiirusega 0.25c (c on valguse kiirus). Ta saadab ida suunas välja laserkiire. Morti hinnangul liigub kiire tipp kiirusega:
* 0.75c
* c
* 1.25c
* 0.25c
Programmeerimine C# keeles
Andres Käveri poolt loetud 6 EAP mahus aine jäi mul sedapuhku sooritamata. Õppeaine raames õpiti programmeerimist .NET raamistikus kasutades selleks C# programmeerimiskeelt. Kui Java põhi on all, siis C# omandamine käib iseenesest kiirelt.
C# kursuse sisu ja nõuded
Õppejõud on teinud õppeaine sisu veebis avalikult nähtavaks. Sellest võib näha nii olulisemaid teemasid, mille põhjal on kirjeldatud olulisemaid aspekte C# keele sisust ja süntaksist. Samuti kirjeldatud ära, et õppeaine raames tuli teha 5 kodutööd, millel olid konkreetsed tähtajad, aga millele tagasisidet anti kaitsmise käigus alles semestri lõpus.
Õppeaine alguses paigaldasime endale oma kohalikku masinasse arendusvahendiks Jetbrains Rider IDE. Jällegi – litsents on TalTechi tudengitele tasuta kättesaadav. Õppeaine käigus toimusid igal reedel 3-tunnised loengud, kus Andres Käver sissejuhatuseks rääkis alati pisut teoreetilistest teemadest ja C# süntaksist. Peale seda võtsid kõik oma arvuti lahti ja hakkasid õppejõu järgi kollektiivselt sama koodi kirjutama. Õppejõud kirjeldas oma tegevust ja õppetöös osalejad said jooksvalt küsimusi või kommentaare esitada.
Kodutööd ja tulemused
Kodutöödeks oli 5 ülesannet:
- Lihtsa konsoolirakenduse ettevalmistamine – kalkulaator, mis küsib kasutajalt sisendit ja arvutab tulemusi.
- “Laevade pommitamise” mängu konsoolirakenduse meisterdamine, mis võimaldab mängijatel valida mänguvälja suurust, valida erineva pikkuse ja laiusega laevu, asetada neid mänguväljale kas ükshaaval või juhusliku valiku alusel, muuta mängu reegleid (kas laevad võivad olla omavahel kokku puutuda või mitte, kas peale vastase laevale pihta saamist saab uuesti tulistada või mitte) salvestada ja laadida mängu sätteid ja konkreetse mängu seisu. Ühtlasi tuli selleks pidada järge mängu kõikidest mängus tehtud käikudest – kas pomm sai laevale pihta või mõtte, kui mitu laeva on juba põhja lastud ja kui mitu laeva on veel alles.
- Eeltoodud laevade pommitamise mängu tulemuste kõvakettale salvestamise ja laadimise funktsionaalsuse lisamise.
- Eeltoodud mängu võrku paigutamine ja tulemuste andmebaasi salvestamise ja laadimise funktsionaalsuse lisamine.
- Eeltoodud mängu teostamine Razor Pages abil ja seeläbi mängu teostamine veebis kasutatava rakendusena. Seejuures mängule täiesti uue visuaalse interface’i koostamine, et laevu saaks ekraanil paigutada hiirega või sõrmega puutetundlikul ekraanil.
Tagasivaates – esimese ülesande sain tähtajaks tehtud, aga juba teise tähtaeg langes kokku 2 nädalaga kus ma koroonaga maas olin. Semestri lõpus hakkasin küll järele võtma ja sain nii 2. kui ka 3. kodutööga valmis, aga viimase kahe ülesandeni ei jõudnudki. Niisiis – see õppeaine läheb järgmisel aastal uuesti kordamisele.
Kui kodutööd oleksin saanud kaitstud, siis oleks järgnenud aines veel 24h toimuv eksam. Selle käigus oli esimeseks ülesandeks teha tunnine teoreetiline test C# süntaksi kohta. Seejärel tuli järgneva 23 tunni jooksul teha valmis .NET raamistikus toimiv lihtne veebirakendus, milles oli olemas nii andmebaas, andmebaasiliides, äriloogika kui eesrakendus. Eksami lähteülesandena sai valida kas lihtne todo-rakendus või retseptiraamat.
Mis võiks olla paremini?
Andres Käver on hinnatud õppejõud ja pean temast kui valdkonna asjatundjast lugu. Samas pakun välja mõne mõtte, mida võiks minusugusel tudengil olla sooritamiseks tarvis.
Lähtekohaks taas lõpetajate statistikast. Kuigi tegemist on kohustusliku ainega, siis valdav osa tudengeid ei saa valmis. Kui võrrelda näiteks sel semestril toimunud “Algoritmide” ainega, mida ülalpool kirjeldasin, siis C# on lihtsam aine, aga õppeainest kukub välja proportsionaalselt rohkem tudengeid: positiivse tulemusega lõpetajate arv jääb 40-45% vahemikku.
Niisiis tuleks mõelda, et kuidas tudengite võimet teadmisi omandada ja tulemusi saavutada toetada. Kui ennast analüüsin – miks mul aine tegemata jäi, siis põhjuseid ilmselt mitmeid.
- Esimene kodutöö oli lihtne. Kolmas ja neljas olid samuti samuti lihtsad. Aga nende vahel – järjekorras teine kodutöö nõudis väga mahukat taustatööd. Kui niivõrd põhjaliku sisuga konsoolirakendust hakata tegema ilma varasema kogemusega, siis ületab see lähima arengu tsooni piiranguid. Tõsi, mul langes see kokku ka haigestumisega. Saan aru, et päris paljud ei saanud just teise ülesandega ette antud aja jooksul valmis. Soovitus: järgmine kord sama kursust õpetades võiks teha ülesannete raskusastmete kasvamise pigem järk-järgult.
- Õppetöös sai tagasisidet oma töödele alles semestri lõpus – kodutööde kaitsmised ja kommenteerimised leidsid aset alles detsembris, mistõttu raske oli hinnata, et kas seniste pingutuste käigus sai juba liikuda õigel teel või mitte. Soovitus: teadmiste kontrolliks ja motivatsiooni säilitamiseks oleks oluline regulaarne tagasiside, mis lubaks vajadusel olukorraga kohaneda.
- Keeruline oli leida sisemist motivatsiooni laevade pommitamise mängu koostamiseks. Kuigi mul pole miskit sisukate õpimängude loomise ja mängimise vastu, siis mul oli raske leida seoseid oma igapäevatöö, tuleviku plaanide ja C# õppeaines tehtava vahel – pealegi kui see ülesanne on oma mahukuselt nii suur, et võtab enda alla valdava osa kogu semestri töömahust. Juhul kui see vähegi oleks võimalik, siis annaksin õppuritele mõnevõrra vabamad käed teha ülesandeid, mis paremini seonduksid nende endi huvide ja eesmärkidega.
Kokkuvõtteks
Tagasivaade semestrile
Tänaseks on 3 semestrit kuueks möödunud ja olen koos VÕTA taotlustega täitnud õppekavast 92/180 EAP-d, ehk napilt pisut üle poole on sooritatud. Teisisõnu – õpingute mahulises arvestuses olen kenasti järje peal.
Niisiis võiks olla üldiselt progressiga rahul. Olen tänaseks saanud suurel hulgal olulisi teadmisi tarkvaraarenduse vallas, et lihtsamaid rakendusi koostada. Samuti olen saanud laiendada oma insenertehnilist silmaringi üldistes teemades, mis lubavad süsteemsemalt mõelda.
Samas on patarei üpris tühi. Samuti kippusid viimase semestri õppeained olema otsestest huvidest väljaspool. Seetõttu olen varasemalt üksjagu kriitilisema pilguga vaatamas ka järgmisele semestrile.
Plaanid kevadsemestriks
Praeguse seisuga kavatsen tempo alla võtta, esitada avaldus akadeemilisele puhkusele jäämiseks ja piirduda osa-ajaliselt ainult kolm ainet – kokku 15 EAP. Siin olen kirjutanud 4. semestri kogemustest põhjalikumalt.
- Java (ICD0019) – Märt Kalmo – 6EAP. See õppeaine jäi mul eelmisel aastal sooritamata, kuna mu Java baasteadmised polnud piisavalt küpsed, et kursuse tempoga sammu pidada. Vahepealse aja jooksul olen läbinud Helsingi Ülikooli Java MOOC‘i, mis oli väga hea vundament süntaksiga Sina-peale saamiseks. MOOCi puhul kasutati JetBrains IDEA asemel küll pisut ebamugavamat NetBeans TMC-nimelist Java IDE’t. Samas võimaldas see lihtsamini mõista OOP-põhimõtteid, kuna kogu modulaarsus oli selgemalt ehitatud Java klasside ümber.
- Python edasijõudnutele(ICS0019) – Einari Kivisalu – 3EAP. Tegemist on vabaainega, mis kestab poolsemestri ja mille käigus saab omandada pisut keerukamat Pythoni süntaksit võrreldes 1. semestri programmeerimise baaskursusega. Selle kursuse eesmärgiks on omandada Pythoni pakettide meisterdamist, kasutada Pythoni andmeanalüüsi ja visualiseerimise tööriistu ning ehitada üks veebiämblik.
- Operatsioonisüsteemid ja nende haldamine (ICA0001) – Edmund Laugasson – 6EAP. Tegu kohustusliku ainega, kus saab õppida Linuxi ja Windowsi operatsioonisüsteemi sügavamat hingeelu. Nimetatud kursuse materjalid, nõuded ja tähtajad on avalikult veebis väljas, mistõttu suvaline huviline võib hakata.