.st0{fill:#FFFFFF;}

IT õppimine – eeltöö ja 1. semester 

 January 10, 2021

By  Marko Rillo

Hakkasin 2020.a. septembris õppima progemist. Alustasin Tallinna Tehnikaülikooli IT Kolledži bakaõppes IT süsteemide arenduse tudengina. Et mitmed sõbrad on küsinud, et mis keskealist võib koolis kohata, siis otsustasin peegeldada oma esimese semestri kogemust ja mõningaid koomilisi intsidente, mis sellega on kaasnenud.

Alltoodu on isiklik peegeldus. See pole mõeldud kellelegi otseseks soovituseks, pigem iseendale meenutuseks ja võib-olla kui keegi teine kaalub midagi sarnast – äkki mõtteaineks.


Kokkuvõte: olen oma esimese semestriga Taltech süsteemiarenduses valdavalt rahul.

  • Hea on see, et on olnud võimalust õppida programmeerimist väga rakenduslikult. Enamikest ainetest on vahetu kasu – olen saanud teha kodutöid, mida enda igapäevatööga vahetult siduda.
  • Imestama paneb mõnede õppejõudude pühendumus – mõnel sissejuhataval kursusel on 500 tudengit, aga suudetakse isiklikult ja empaatiliselt tagasisidet anda.
  • Head on ka mõned üldised tudengi staatusega kaasnevad aspektid: ülikooli poolt tuleb tasuta kaasa hulganisti vinget tarkvara. Samuti on teatripiletid poole hinnaga – mitte et koroona-aastal sellest eriti kasu oleks olnud. 🙂
  • Arenguruumi on ka – kuigi läksin formaalselt kooli õppima selleks, et teha tiimitööd, siis Taltechis nõutakse enamasti ainult individuaalset panust: “Meil on plagiaadikontroll – mitte mingil juhul ei tühi üksteisele oma koodi näidata!” 🙂
  • Jah, märkimisväärne osa inseneri tööst on individuaalne. Aga üha enam oodatakse arendajatelt tiimitööd. Saab juurutada paarisprogrammeerimist, probleemide lahendamist tiimides, tunnustada üksteise abistamise ja kaasamõtlemise eest.
  • Parem võiks olla ka mahajääjate aitamine. Enamik kursuseid on rohkearvulised. Ja enamikel juhtudel kukub ca 1/3 enne lõppu välja. Niisiis – mida teha?

Eeltöö

Online kursused – Harvardi CS50

Alustuseks paar sõna õpingute taasalustamisele eelnenust. Aasta tagasi otsustasin, et soovin IT vallas teadmisi täiendada, mistõttu hakkasin võimalusi kaardistama. Esialgu ei mõelnud üldse “formaalse haridussüsteemi” peale. Selle asemel lappasin läbi hulga veebikursuseid – MOOCe. Selgus, et häid variante on mitmeid.

Professor David Malan, Harvard University CS50 - Introduction to Computer Science

Harvardi EDX CS50 – Introductory Computer Science oli leitutest ilmselt üks sisukamaid. Sellel on erinevaid harusid: tehnoloogia ABC laiemale publikule ja äriinimestele, veebirakenduste arendus (Python, Flask, Django, Javascript), mobiilirakenduste arendus (React Native) ja mängude arendus (LÖVE 2D).

Harvardi kursustest tegin algusest lõpuni läbi tehnoloogia ABC. Ülejäänud kursustest olen vaadanud tükikesi. Nende kursuste pluss on eestvedajad. Geniaalse energiaga professor David Malan suudab enamik keerulisi kontseptsioone väga kenasti visualiseerida ja on koondanud enese ümber väga laheda kamba noori kes oskavad sama.

Tegemist on nii vinge asjaga, et hiljuti teadas Yale, et loobub enda sissejuhatavast IT kursusest ja selle asemel hakkab koostööd Harvardiga tegema.

Teised online kursused

Ülejäänutest põgusamalt

  • Kõige asjalikum koht tippülikoolidelt IT õppimiseks ongi EDX.org, mis koondab mitmeid ülikoole ja selle sõsar MIT-s OpenCourseware. MIT’l on kümnete kaupa ägedaid arvutiteaduste kursuseid alates sissejuhatusest kuni päris teravate pliiatsite jaoks mõeldud andmeteaduse või algoritmide kursusteni: https://ocw.mit.edu/courses/intro-programming/
  • Udemy.com on täis lühikesi väga rakenduslikke kursusi – üksikud neist on tasuta, aga enamike hinnad vahemikus 9.99 kuni 24.99. Õppurite tagasiside põhjal saab endale valida sobiva valiku.
  • Udacity.com pakub välja erinevaid nanokraade, aga nende hinnad on juba kallimad. Näiteks Full Stack Web Development eest küsitakse 360 EUR kuus. Endale sobivat ei leidnud, mis sellises suurusjärgus investeeringut oleks õigustanud.
  • Soomes on Helsingi Ülikool püsti pannud tasuta keskkonna mooc.fi, millest võib leida sissejuhatava kursuse tehnoloogia, tehisintellekti (nende “Elements of AI” kursus tõlgiti hiljuti ka eesti keelde), tehisintellekti eetika, Java programmeerimiskeele ja Full Stack Open (Typescript, React, Redux, Node.js, MongoDB ja GraphQL) veebiprogrammeerimise õppimiseks. Päris hea.
  • Eestis on parim tasuta käepärast vahend Tartu Ülikoolis välja töötatud Pythoni õppimiseks mõeldud kolmeosaline MOOC: Programmeerimine maalähedaselt ja selle jätkukursused programmeerimise alused I ja II.

Nimetatutest käisin algusest lõpuni läbi Tartu Ülikooli MOOCid.

Tausta loomiseks oli päris hea, aga MOOCide puhul jääb puudu õlg-õla tundest. Ekstroverdina olen mõistnud, et asjade süvitsi mõistmiseks on mul tarvis teemad kellegagi pidevalt peegeldada. Ilmselt see on ka põhjus, miks olen ise osa-ajalt õppejõuna tegutsemas, et valjusti asju välja öeldes saan lõpuks paremini aru, et mida ma mõtlen. 🙂

Formaalne IT haridus Eestis

Seetõttu otsustasin formaalse hariduse kasuks. Kõigepealt lappasin läbi erinevate Eesti õppeasutuste programeerimist käsitlevad õppekavad ja kaalusin päris tõsiselt mitut alternatiivi.

  • Magistrikraadi saamiseks võib ilma eelneva IT hariduseta astuda Tartu Ülikooli ja valida seal Infotehnoloogia mitteinformaatikutele, TTÜs on Digimuutused ettevõttes ja Infosüsteemide analüüs ja kavandamine. On olemas mõningaid magistriprogramme, kus on eelduseks kas 24 EAP raames programmeerimise ainete läbimine, nt Tartu ja Taltechi ühisprogramm Software Engineering või 60 EAP eeldusega andmeteaduse õppekava. Ülejäänud eeldavad informaatika, matemaatika või tehnikateaduste bakalaureust.
  • Bakalaureuse- ja rakendusõpet pakuvad väga erinevatel erialadel: Tartu Ülikool, Tallinna Ülikool, Virumaa Kolledž, Haapsalu Kolledž, TKTK, THK. Seejuures on tõsiselt kaalumist väärt ka matemaatikaõpetaja erialad.

Selgub, et IT vallas on valik päris tõsine ja lai. On päevaõppes, õhtuõppes, sessiooniõppes õppimise võimalusi. On maksumaksja toel tasuta variante. On tasulisi – mis lisab loetellu ka Mainori.

Teadliku valiku jaoks on otstarbekas ette võtta SAIS ja lapata seal erinevad erialad läbi: https://sais.ee/AdmissionSearch Nüüd – aasta hiljem on kaalumist väärt võimalusi veelgi lisandunud. Näiteks Jõhvi loodav uus tehnoloogiakool on hea potentsiaaliga kontseptsioon. Samuti Vali IT programm, mille käigus saab hea motivatsiooniga osaleja kiire ja praktilise ettevalmistuse.

Ettevalmistav aasta Tallinna Ülikoolis ja Taltechis

Lõpuks otsustasin käia avatud ülikooli kaudu mõnda kursust võtmas Tallinna Ülikooli Informaatika erialalt ja Taltechis, et tekiks parem tunnetus. Niisiis – 2019. aasta jooksul võtsin Taltechist avatud ülikooli raames neli kursust:

  • ITI0102 – Programmeerimise algkursus Pythonis (Ago Luberg)
  • ICS0004 – Programmeerimise alused C-s (Viktor Leppikson)
  • ITI0205 – Veebirakendused (Martin Verrev)
  • ICD0006 – Javascript (Andres Käver)

Ja Tallinna Ülikoolist kaks:

  • IFI6442 Mobiilirakenduste arendamine (Roman Gorislavski)
  • IFI6211 Eesrakenduste arendamine (Tauri Kirsipuu)

Ma ei käinud ühtegi kursust läbi kuni hindelise arvestuseni. Otsustasin osaleda ennekõike vabakuulajana, et tekiks parem arusaam valdkonnast, didaktikast ja enda eelistustest.

Tore kogemus oli kohe alguses kui Taltechis läksin oma kodutööd kaitsma abiõppejõule kelleks osutus mu tütre iidol, kes oli aasta enne seda jõudnud Rakett69 saates finaali. Tütre imestus oli suur kui ta kuulis, et vaid aasta varem gümnaasiumi lõpetanud Viktoria Siigur sattus olema tema isa programmeerimise algkursuse õpetajaks. 🙂

Peale aastast kogemust võis järeldada, et:

Kahel ülikoolil on selge vahe

Taltechis on bakalaureuste seas süsteemsem ja professionaalsem õpetamine, mida soodustavad suuremad vastuvõtuarvud – igal aastal võetakse vastu bakalaureuseõppes kuuel ITga seotud erialal ca 500 tudengit. Sellest tulenevalt on enamike ainete õpetamiseks loodud põhjalik infrastruktuur – üpris korralikud veebikursused, abiõpetajate süsteem.

Samas on õppurite rohkuse tõttu õppejõud tudengite jaoks vähem kättesaadavad ja tudengitel omavahel üksteiselt õppimist praktiliselt pole. Enamik aineid eeldavad individuaalset tööd ja iga ainet alustatakse pika tiraadiga sellest, millised karistused järgnevad kui keegi jääb vahele plagiaadiga.

Taltech tudengite arv infotehnoloogia teaduskonnas 01.09.2020 seisuga
Taltech tudengite arv infotehnoloogia teaduskonnas 01.09.2020 seisuga

Tallinna Ülikooli informaatika õpetamine on rohkem kodune. Rühmad on väiksemad – enamikes seminarides oli kohal 15-20 tudengit. Õppejõud on tudengite jaoks rohkem olemas. Kui probleeme tekkis, siis võis kohe küsida. Õppetöö toimus aktiivõppena grupitööde vormis – ülesandeid ei täidetud mitte üksinda vaid koos tiimikaaslastega, kus tekkis võimalus ka üksteiselt õppida.

Sellest tulenevalt oli Tallinna Ülikooli informaatika mulle iseenesest sümpaatsem alternatiiv, kuna mulle sobib rühmatööde kaudu õppimine rohkem kui individuaalne ponnistamine.

Sisseastumine Taltechi

Paberibürokraatia vs tehnoloogia?

Hoolimata kaldumisest Tallinna Ülikooli kasuks valisin lõpuks siiski Taltechi IT süsteemide arendamise sessiooniõppe. Otsustavaks sai praktiline kaalutlus – Tallinna Ülikool nõudis uuesti riigieksamite tegemist. Taltech päevaõpe samuti. Uus lõpukirjand ja matemaatika riigieksam oleks olnud liigne vaev. Muuseas – hiljem selgus, et Taltechis pole mingit vahet kas olla päevases või sessiooniõppes – kohal võid käia vabalt kummal ajal ise soovid.

Sisseastumiseks tuli esitada SAISis avaldus ja riigieelarvelisele kohale saamiseks näidata, et viimasest bakalaureusekraadist on juba piisavalt aega möödunud. Võis arvata et sellest piisab? Selgus, et mitte!

Nimelt keskealisena jääb minu keskhariduse saamine 1994. aastasse. Ja kuigi Taltechi andmebaasis on olemas informatsioon selle kohta, et olen saanud nende juures magistrikraadi, õppinud doktorantuuris, et olen nende juures olnud ligi kümmekond aastat ise koosseisuline õppejõud, siis formaalselt puudus neil igasugune paber, et mul tegelikult keskharidus käes oli, mis on teatavasti bakalaureuseõppesse astumise eelduseks.

Selgus, et kohas kus süsteemide piirangud algasid lõppes ka TTÜ kui Eesti juhtiva tehnoloogiaasutuse süsteemi valmidus eranditega hakkama saada. Vastuvõtuosakonda manusena skaneeritud tunnistuse e-kirja teel saatmine ega helistamine ei aidanud. Tuli füüsiliselt kohale minna asju klattima.

Pidin vanadest kaustatest välja otsima oma keskkooli lõputunnistuse, minema vastuvõtuosakonda füüsiliselt kohale, lasta teha seal sellest koopia, maksta koopiate tegemise eest sularahas 20 senti, lasta see tembeldada ja allkirjastada, kausta lisada ning kõige lõpuks oli võimalik süsteemi lisada “linnuke” selle kohta, et ma olen sisseastumiseksamitele oodatud. Igal juhul lõbus vahepala. 🙂

Taltech dokumentide vastuvõtt
Taltech dokumentide vastuvõtt

Sisseastumine – test

IT süsteemide arenduse erialale sisse astumiseks oli mõeldud EUCIP arenduse moodulil põhinev erialane EUCIP test. Et selleks õppida tuli välja otsida vastava standardi põhised õppematerjalid. Võtsin õppimiseks umbes 2 nädalat, mille raames käisin iga päev mingi hulga erinevatest teemadest läbi. Tegemist oli igava lugemisega, kuna seal kirjeldati väga tehnilisel moel European Certificate of Informatics Professionals kompetentsimudelite elemente. Lõpuks selgus, et testis ei tulnud vastata mitte ainult kitsalt EUCIP arenduse mooduli küsimustele:

Tegemist oli ca tunniajase valikvastustega testiga. Minu tulemus 80p, mis oli üle 75p alampiiri, mistõttu arvuti tagant püsti tõustes oli juba teada, et sügisel saan õpingutega alustada. Kellel tulemused olid piirist allpool, pidid veel ootama kuni selgus lõplik vastuvõetute arv.


Sügissemester – standardvalik

Standardne õppekava Taltechi IT süsteemide arendamise õppekavas nägi ette alltoodud ained. Üks mu sõber kes sama õppekava kaalus kurtis, et liiga palju kipub olema selles “filosoofiat”. 🙂 Käisin küll mitmel kursusel kohal, aga lõpuks otsustasin keskenduda sissejuhatuseks pigem käsitööliste oskuste omandamisele, mille abil saan kohe igapäevatöös võimalikult palju tehnoloogilisi valikuid teha. Seetõttu said esimese kursuse standardvalikust kohe kolm maha kriipsutatud:

  • IAX0010 – Diskreetne matemaatika
  • ITI0101 – Sissejuhatus infotehnoloogiasse
  • ITI0102 – Programmeerimise algkursus
  • ICA0002 – Operatsioonisüsteemid ja nende haldamine
  • ICY0024 – Hulgad, seosed, süsteemid (vabaaine)

Sügissemester – endale sobivaks kohandatud

Õnneks ei ole Taltechis eriti palju piiranguid õppeainete järjekorra osas. On küll mõned loogilised eeldusained – enne kui õppida Androidi mobiilirakenduste või Java Spring Boot veebitehnoloogiaid tuleb omandada Java programmeerimiskeele põhialused. Samas lubavad isegi nendel puhkudel enamik õppejõude siiski kursust valida.

Niisiis võtsin ise samuti mõned kursused hoopis 2. või 3. kursuse õppekavast. Esimene semester oli seega 32 EAP-d:

  • ITI0002 – Programmeerimise täiendusõpe (Ago Luberg) – 2 EAP
  • ITI0102 – Programmeerimise algkursus (Ago Luberg) – 6 EAP
  • ITI0101 – Sissejuhatus infotehnoloogiasse (Tanel Tammet ja külalisõppejõud) – 6 EAP
  • ICD0007 – Veebitehnoloogiad (Märt Kalmo ja Indrek Ots) – 6 EAP (2. kursus)
  • ICA0005 – Andmebaasisüsteemide alused (Priit Raspel) – 6 EAP (2. kursus)
  • ICY0012 – Infosüsteemide analüüs ja projekteerimine (Nadežda Furs-Nižnikova) – 6 EAP (3. kursus)

Käin need alltoodult põhjalikumalt läbi.

ITI0002 – Programmeerimise täiendusõpe

See oli 4 nädalane kiire lühike sissejuhatus programmeerimise põhialustesse, mis selgitas Pythoni abil kõige olulisemaid kontseptsioone. Sisuliselt samaväärne Tartu Ülikooli MOOCi Programmeerimine maalähedaselt ja Programmeerimine I-ga. Võrreldes MOOCiga on parem see, et Tartus välja arendatud vahva pisikese algajatele mõeldud IDE Thonny asemel võtsime kohe kasutusele Pycharmi, häälestasime ära Taltechi Git-keskkonna https://gitlab.cs.ttu.ee/ ja seejärel hakkasime lahendama erinevaid ülesandeid.

Siinkohal oluline kõrvalmärkus: tudengistaatusel on plusse. Pycharm on väga vinge IDE ja tudengina saad endale enamik arendustööriistu ülikooli e-posti aadressi abil tasuta. 🙂

Taltech Moodle testkeskkond Pythoni ulesannetele
Taltech Moodle testkeskkond Pythoni ulesannetele

Ülesannete lahendamisel on Moodle’i õppekeskkond ühendatud backendi testkeskkonnaga, mistõttu peale iga valmis saamist ja üles laadimist laekub kohene tagasiside. Testide põhjal saad kohe teada, et kui mitu punkti sinu kood täis sai või kas mõni test jäi läbimata.

Sisuliselt on selle raames probleemide lahendamine kohe mängustatud – kui mõni ülesanne jäi poolikult lahendatud, siis testi ei läbi ja näed viivitamatult, et midati tuleb parandada ja uuesti pakkuda.

Leidsin ennas mitmeid kordi hilistel öötundidel üleval istumas kuna mingis ülesandes on mul veel pool punkti puudu, et saada maksimumtulemus, mistõttu istusin pead murdes või koodi ümber kirjutades.

ITI0102 – Programmeerimise algkursus

Ago Lubergi poolt veetav programmeerimise algkursus on tihedalt seotud eelmise kursusega. Kui täiendkursus lõppeb neljanda õppenädalaga, siis ühineb õpe nende kahe kursuse vahel. Samad on töövahendid, põhimõtted ja reeglid. See keskendus samuti Pythoni abil programmeerimise olulisemate kontseptsioonide läbikäimisele.

Kui tahad teada, et mida tegime, siis Ago peab Youtube’is Taltech Coding kanalit, kuhu ta enamik ülesandeid on lahti selgitanud.

Youtube Taltech Coding

Algkursuse töömaht oli tappev

Selle kursuse kohta tuleks kohe öelda, et nimetus on petlik. Tegemist on ühe kõige töömahukama kursusega sel semestril, mille panus oli vabalt võrreldav mistahes kahe kursuse panusega kokku. 6 EAP panust oli ainult esimese 5-6 nädala vältel. Tegelikult võiks selle aine eest jagada ca 12 EAP-d, sest alates seitsmendast õppenädalast nõudis ta igal nädalal ca 2-3 päeva täisajaga panustamist. Seejuures sellist panustamist, et ärkasid varahommikul üles ja panid hiliste õhtutundideni välja.

Igal nädalal anti kaks ülesannet. Neist üks oli lühem ja lihtsam, mille käigus lahendati mingit programmeerimise kontseptsiooni puudutavat ülesannet. Teine vajas põhjalikumat süvenemist, tööd andmetega, APIde lisamist, et liidestada kood nt. Google’i teenustega. Kursuse teises pooles tuli juba ise oma projektidele ka ühiktestid ja näidata, et programm teeb kõike seda mida peab.

Ülesanne esitati kõigepealt lühikese kirjeldusena:

OOP ülesande kirjeldus - loo lihtne panga infosüsteem

Seejärel on enamikel juhtudel ette antud mall, kus on kirjeldatud olulisemaid klasse ja funktsioone:

OOP ülesande mall - hakka siit pihta

Seejärel tuli kirjutada valmis oma kood ning jõuda tulemuseni, kus kõigepealt sai läbi automaattestidest. Seejuures kontrollis tester nii koodi tulemust kui ka stiili:

OOP ülesande testide vastused - sul on vead nii stiilis kui sisus!

Peale koodi toimimasaamist tuli ülesanne ka õppejõu ees kaitsta, kus tuli selgitada, et miks sa just ühte või teist meetodit kasutasid ja õppejõud andis selle käigus vihjeid, mida saaks teha lihtsamini või paremini.

Lisaks 38 koduülesandele oli selles aines tunnikontroll, kontrolltöö ja lõpus 5-tunnine eksam, kus tuli piiratud aja vältel vastata küsimsutele ja kirjutada erinevat liiki koodi. Näidata, et suudad teha algoritmilisi ülesandeid, funktsionaalset programmeerimist ja kirjutada objekt-orienteeritud programme. Maksimumtulemuse soovijatele anti veel võimalus teha antud 10 pisut kõvemat pähklit, mis nõudsid süvendatud taustatööd.

Ülesannete lahendamiseks oli taustaks lisaks ülaltoodud videotele koolis koha peal valmistatud Pythoni õppematerjal nimega PyDoc. Aga praktikas kippus olema nii, et igaüks istus ninapidi Stackoverflow foorumites või vaatas erinevaid YouTube’ist leitud tutoriale, et probleeme lahendada.

Töömaht läks nii suureks, et lõpuks lappama

Tunnistan siiralt, et minu jaoks läks selle aine töömaht kusagil 7. õppenädala paiku lappama. Mul oli paika pandud selge rutiin, et igal nädalal tegelen konkreetsetel päevadel oma töö kõrvalt kooliasjadega. Programmeerimise algkursuse kasvav maht lihtsalt ei mahtunud sellesse piiratud aega enam ära. Jõulude ja aastavahetuse järgsel ajal tegin küll mitmeid kodutöid järele, kuid lõpuks jäigi 38st koduülesandest 12 tegemata, sest kursuse lõpp jõudis enne kätte. 🙂

Selle õppeaine ülesanded ja muud materjalid on peidetud Moodle’i kaitsva seina taha, mis nõuab sisse logimist TalTech kasutajanimega: https://moodle.taltech.ee/course/view.php?id=30651 ()

Samuti on peitu pandud igaühe ülesannete lahendused, mis tuleb lisada selleks tarbeks loodud privaatsesse reposse. Niisiis siia lingile saab juurde ainult TalTech loal: https://gitlab.cs.ttu.ee/marill/iti0102-2020 ()

Paar ägedat näidet, mis mulle kursuse käigus eriti meeldisid:

  • Kui kirjutasime valmis Google teenuste API, mille abil sai luua backend seos Google Sheetiga – niisiis on see eelduseks, et sinu tarkvara hostingu eest ei pea sa kellelegi maksma vaid et see “andmebaas” on istub täiesti tasuta kättesaadavas Google tabelis sinu Google’i drive’is.
  • YouTube’i API õppimine, et importida Pythoni abil YouTube’st playliste, tükeldada playlistis paiknevad videod osadeks ja eksportida need veebi, mille abil luua nt loengute veebikatalooge – väga mõnus vahend, et teha nt veebikoolituste kogumikke.
  • Django abil tervikliku veebiraamistiku loomine – sai luua esimese veebirakenduse, mille kõik komponendid olid kohandatavad.
  • Pimedate robotite juhtimise – kui oli teada, et kusagil pimedas ruumis liikus robot mööda joont, siis kuidas katse-eksituse meetodil panna teda finišisse jõudma.
Pimeda roboti programmeerimine. Kuidas seda teha kui ise koordinaate ei tea ja joont ei näe

Kõige lõpuks kiidusõnad õppejõule – Ago Lubergile. Täiesti mega energiaga mees. Uskumatu vaadata, et mis patareide peal ta sõidab. Ta on igal aastal tudengite jaoks välja mõelnud uued ülesanded, kirjutanud neile automaattestid, koostanud videod. Ta istub peaaegu hinge tõmbamata õppeaine Discord vestlusserveris, kus ta vastab koos kampa haaratud abiõppejõududega tudengite mistahes küsimustele, annab neile soovitusi koodi timmimise osas.

Osalejate statistikast

Nimetatud aine näitel peatuks korraks TTÜ IT valdkonna vastuvõtu temaatikal, mis kirjeldab pisut suure vastuvõtu upu-või-uju olukorda. Laias laastus kipub olema nii, et ca 1/3 TTÜs IT õppimisega alustanutest ei jõua lõpuni. Programmeerimise algkursusel oli võimalik seda kohe näha. Tõsi – siinne statistika ei peegelda lõplikku olukorda, kuna semestri lõpuni on veel pisut aega jäänud, mistõttu mõned jõuavad vist veel sihile, kes praegu pole sellega veel hakkama saanud (sh ma ise – mul on veel eksam ees 😉 ).

Õppeaine deklareeris 495 tudengit. Moodle’isse registreerus 470. Esimese ülesandega said nad kõik hakkama. Teise ülesandega juba 456. Tunnikontrolli jõudsid positiivse tulemusega ära teha (ehk esimesed 6 nädalat lõpuni) 364 tudengit. Kontrolltööni (ehk esimesed 10 nädalat) 322 tudengit ja eksami eeldused täitsid detsembri lõpuga ära 209 tudengit (see viimane arv täpsustub veel edaspidi).

ITI0101 – Sissejuhatus infotehnoloogiasse

Tanel Tammeti poolt loetud sissejuhatus infotehnoloogiasse on suure pildi aine. Praktilist kasu ainest oli vähe. Pigem andis võimaluse mõista, et miks mingid tehnoloogiad just sellised on nagu nad on.

Tanel Tammeti lai silmaring, lugemus ja võime teemasid huvitavalt jutustada meenutab Turovskit, kes loomade asemel jutustab tehnoloogiast.

Alustatakse ajaloost, käiakse läbi erinevad saavutused, olulisemad läbimurded IT vallas ja peale seda on aine kiirkokkuvõte tehnoloogiaga seotud arendustest, mille käigus saab põgusalt sisse vaadata kõikidesse olulisematesse IT-ga seotud valdkondadesse – kuidas toimivad IT riistvara ja tarkvara, kuidas on arenenud programmeerimiskeeled, kuidas on üles ehitatud andmebaasid, tehisintellekt, arvutimängud, graafika, turvalisus, krüptograafia, masinõpe, internet, arendusprotsessid, jne.jne.jne.

Selle õppeaine materjalid on veebist kõigile lugeda soovijatele vabalt kättesaadavad http://www.lambda.ee/wiki/Sissejuhatus_infotehnoloogiasse nii et iga õppeainest huvitatu võib lapata vabalt slaide, vaadata videosid ja teha soovi korral teste. Loenguid on kutsutud pidama mõned olulisemad praktikud.

Tanel Tammet - Sissejuhatus infotehnoloogiasse
Tanel Tammet – Sissejuhatus infotehnoloogiasse

Kuigi samuti 6 EAP aine, siis töömaht ei olnud päris võrreldav programmeerimise sissejuhatusega. Peamiselt oli tegu passiivse info omandamise kursusega, kus oli võimalik loenguid järelkuulata.

Aktiivne panus nõudis igal nädalal loengud läbi kuulata, lugeda paari lingi alt toodud artikleid, teha mõningasi eksperimente – kirjutada lühikesi programmijuppe, veebilehekülgi või arvutusülesandeid ja omandatud teadmiste põhal teha läbi kord nädalas kaks lühikest kontrolltööd, kus tuli vastata 6-8 küsimusele nädala käigus omandatud teemade kohta. Praktikas nõudis see igal nädalal pigem 4-5-tunnist panust ja vahetult enne eksamit 2-3 päeva asjade meelde tuletamist. Eksamil tuli vähem kui tunni aja jooksul vastata 10le küsimusele, mis käsitles kogu kursust, mistõttu oli see oma laadilt üsna mahukas ülesanne.

Darknet – kas valitsuse või kurjategijate oma?

Üks fun fact ka sellelt kursuselt, mida tahaks jagada. Olete ilmselt kuulnud Darknetist, kus toimub seadusandja silmade eest peidus kuritegelikke ja hämaraid asju. Minu jaoks tuli üllatusena, et Darkneti rajajaks on ARPANET, mis on USA Department of Defence haldusalas toimiv arvutivõrk.

Osalejate ja väljakukkujate statistikast

Taas pisut statistikat alustajate ja lõpetajate kohta. Peale seda kui kontrolltöödega oli valmis saadud, siis postitas õppejõud info tulemuste kohta. Õppeaines hakkas iganädalaseid kontrolltöösid tegema 460 tudengit. Neist ca 300 jõudsid minimaalselt 0-nivoo tulemuseni – st 160 tudengit ei suutnud kas kontrolltöödes piisavalt osaleda või ei olnud nende vastused piisavalt adekvaatsed ja nad said nii piisavalt miinuspunkte, et neil on keeruline eksamit positiivse tulemusega läbida.

ITI0101 kontrolltoode tulemus
ITI0101 kontrolltoode tulemus

Kursuse lõpuks jõudis eksamil positiivse tulemuseni 282 tudengit. Alltoodud graafikul on toodud jaotus hinnete ja õppeaine punktide osas:

ITI0101 eksamite tulemus

ICD0007 – Veebitehnoloogiad

Märt Kalmo ja Indrek Otsa poolt jagatud kursus keskendus kõige lihtsamatele veebitehnoloogia komponentidele. HTML, CSS, Javascript ja PHP – kuidas panna püsti lihtne veebiserver ja tekitada sinna dünaamiline sisu. Kursuse lõpu projekt oli üpris lihtne – tuli luua veebipõhine virtuaalne raamatukogu andmebaas, millesse sai sisestada andmed erinevate autorite ja raamatute kohta. Neid raamatuid pidi saama lisada, muuta ja kustutada.

ICD0007 Veebitehnoloogiad Marko Rillo naidisrakendus - virtuaalne raamatukogu
ICD0007 Veebitehnoloogiad naidisrakendus – virtuaalne raamatukogu

Kursus koosnes loengutest ja seminaridest. Seminaride käigus harjutasime konkreetsete tehnoloogiate käigus rakenduse erinevate komponentide loomist.

Alguses tegime valmis veebirakenduse olulisemad baaskomponendid HTMLis ja sinna kohe juurde visuaalne pool CSS-ga. Lisasime funktsionaalsuse raamatute infot salvestada serveris paiknevasse faili – selleks kirjutasime PhP koodi. Seejärel juurde lihtne PDO abil toimiv MySQL andmebaas. Siis lisasime andmeloogika, mille põhjal oli võimalik iga raamatuga siduda mitmeid autoreid – selleks tuli luua andmeklassid ja lõpuks lisasime veebilehele Front Controlleri ning eristasime turvakaalutlustel ees- ja tagakülje süsteemi elemendid (Frontend-Backend). Kokku tuli aine käigus valmis teha 8 kodutööd, millest esimesed said valmis paari-kolme tunniga, aga viimaseid nuputasin ma ise teha küll päris mitu päeva.

Põhiliseks tööriistaks oli PhPstorm – taas tudengilitsents tuli tasuta. Lisaks katsetasime serverite päringute tegemist ja APIde loomist Postmani abil. Valdav osa arendusest võis teha omaenda arvutis ja soovi korral võis rakendused testimiseks püsti panna kas Taltech ENOS serverisse või enda soovitud kohta. Ülesannete ja lahenduste lähtekoodi hoidsime BitBucketis ja andmebaasiks oli õppejõud püsti pannud omaenda MySQL keskkonna. Õppeaine enda materjalid pole Taltechist väljapoole saadaval Moodle’i keskkonnas, aga soovi korral võib taas vaadata õppeaines tehtud Mart Kalmo videosid tema YouTube’i kanalilt: https://www.youtube.com/user/mkalmo100/videos

Eksamil tuli vastata mõnele lühikesele teooriaküsimusele ja seejärel teha mõned praktilised ülesanded – luua HTML failidest struktuur, anda CSS elementide välimusele õiged atribuudid, luua lihtne kahe väljaga eesrakendus ja lihtne andmebaasipäringut kasutav eesrakendus.

Lõpetuseks taas kiidusõnad õppejõududele. Paaril korral kui oma ülesannetega puntras olin läksin seminarile koha peale, näitasin oma koodi ette ja nad aitasid mõne lihtsa soovitusega edasi liikuda.

Väljalangemise statistikast

Esimese kodutööga sai õppejõu andmetel detsembri alguses õigeaegselt valmis 268 tudengit. Seitsmendaga 169 (ilmselt see arv on praeguseks paranenud).

ICA0005 – Andmebaasisüsteemide alused

Priit Raspel on värvikas kuju. 2019. aastal valiti ta IT tudengite poolt parimaks õppejõuks. Kui kaastudengitega vestelda, siis ega külmaks ei jätnud ta eriti kedagi. Tegemist on reljeefsete väljaütlemistega mehega – seetõttu mõned jumaldavad teda. Mõned risti vastupidi. Mõlemad sama intensiivselt. Raspel on praktik – teab, mida räägib. Kui soovitusi jagab, siis kirjeldab oma kogemusi aastakümnete lõikes.

Õppeaine raames oli ülesandeks teha terve hulk praktilisi harjutusi, mille käigus tuli kirjeldada erinevaid andmebaase. Alustati lihtsamatest ja liiguti samm-sammult keerulisemateni. Kõigepealt joonistati valmis ainult kontseptuaalsed andmemudelid olemi-suhte diagrammidena, mida laiem üldsus tunneb ERD (Entity-Relationship Diagram) nime all. Selle käigus tuli mõistma hakata erinevate olemite (objektid, subjektid, nähtused, nende üldistused) ning sündmuste ja suhete olemust. Oma esimesed kodutööd tegin valmis visuaalsemat laadi Lucidchart abiga, millega oli lihtsam teha ERD visuaalset modelleerimist.

ICA0005 - Andmebaasisysteemide alused - Marko Rillo kodutoo lucidchartis
ICA0005 – Andmebaasisysteemide alused – kodutoo lucidchartis

Seejärel tuli luua järgmine hulk kodutöid, mille raames tuli lisada diagrammidele olemite detailsed kirjeldused, et andmemudelite sisu elemendid kirjeldada. Kõige viimaseks osaks oli nende andmemudelite realisatsioon praktikas – SQL käskluste kirjeldamine, mille abil luua andmebaasid, täita need näidisandmetega ja teha neisse päringud.

Kogu Priit Raspeli õppematerjalide komplekt aegade algusest peale on täies mahus kättesaadav kõigile soovijatele aadressil: https://enos.itcollege.ee/~priit/1.%20Andmebaasid/ – lihtsalt peab teadma, et millise kataloogi alla tuleks vaadata.

Enamik kodutöid oli kummalise huumorisoonega palistatud praktilisi ülesandeid: “Munakanala”, “Hobune hipodroomil”, “Booking.com broneerimissüsteem”, “TaxIT – Bolti jaoks taksode broneerimissüsteemi loomine”, “Seis, kes tuleb! Piirivalve infosüsteem”. Iga rakenduse lahendamise puhul tuli mõelda konkreetse organisatsiooni juhina, kliendina, töötajana ja IT süsteemi looja üheaegselt ning selle teadmise baasil mõelda välja sobivaim võimalikest infosüsteemidest, mis sobiks nii konkreetse organisatsiooni hetkevajadustesse ja rahuldaks ka tulevasi võimalusi.

Selle õppeaine kõige huvitavam osa oli iseenda individuaalse lõputöö tegemine. Selle käigus sai keskenduda omaenda jaoks vajaliku infosüsteemi kirjeldamisele ja koostamisele. Müts maha siinjuures õppejõu ees, kes suutis stuudiumi vältel üle 200le tudengile anda isiklikult tagasisidet. Kõigepealt harjutuseks mõeldud kodutööde kohta ja seejärel ka individuaalselt valminud lõputööle. Seejuures oli semestri vältel võimalik käia tema juures konsultatsioonides, et saada pooleliolevale tööle tagasisidet.

Õppeaine käigus oli taas võimalik tudengi litsentsiga saada piiramatu juurdepääs Vertabelo modelleerimiskeskkonnale, mis lubab lisaks struktuuri visuaalsele loomisele genereerida SQL skriptid, millega on võimalik kohe genereerida andmebaasi olemid ja seosed valmis.

ICA0005 - Andmebaasisysteemide alused - Marko Rillo kodutoo vertabelos
ICA0005 – Andmebaasisysteemide alused – kodutoo vertabelos

ICY0012 – Infosüsteemide analüüs ja projekteerimine

Oma selle semestri loetelu lõpetan Nadja Fursi kursusega, milleks on infosüsteemide analüüs ja projekteerimine. Tegemist on sissejuhatava kursusega, mis õpetab kliendi nõuete kogumist ja selle põhjal infosüsteemi projekti koostamist. Aine käigus käisime omandasime valiku erinevaid metoodikaid ja tööriistu, mille abil kas Waterfall või Agile tarkvaraarendusprojekte ette valmistada ja läbi viia.

Ka selle kursuse materjalid on Moodle’is kaitsva luku taga, mistõttu kiire loetelu teemadest millega sai tegeleda:

  • Olukorra kaardistamisel suhteliselt tuttavad vahendid: SWOT, 5F, väärtusahela kirjeldus, organisatsiooni riskide kaardistamine;
  • Loodava infosüsteemi eesmärkide kirjeldamisel: User Stories, User Prototyping, User Journeys;
  • Nõuete prioritiseerimine: FURPS+, MoSCoW kategooriad;
  • Kasutusmallide koostamine: Use Case’id nii klassikaliselt kui ka agiilselt;
  • Konseptuaalsete andmemudelite loomine: ERD (osaline kattuvus andmebaaside ainega) – nii üldiselt kui ka klasside tasandil;
  • Kontseptuaalsete andmevoogude loomine: DFD (data flow diagram – kontekstuaalselt ja Lvl.0 tasemel),
  • Detailsete mudelite loomine infosüsteemi kirjeldamisel: objektide ja klasside kirjeldamine, süsteemi sisendite ja väljundite kirjeldamine.
  • Tulevikuperspektiivi loomine – kuidas infosüsteem edaspidi võiks areneda.
  • Lõpetuseks kogu süsteemi osas retrospektiiv (DAKI – Drop, Add, Keep, Improve).

Tegemist oli sel semestril ainukese ainega, kus tuli teha algusest peale rühmatööd. Moodustasime grupid, valisime organisatsioonid ja seejärel hakkasime kaardistama praegust ärilist ja infosüsteemide olukorda, tulevikuvajadusi ja koostasime lähteülesanded süsteemide uuendamiseks.

Ühe kasutusmalli näide
Ühe kasutusmalli näide

Oma sisult oli see ennekõike konseptuaalne kursus, mille raames sai tööriistakastiga eksperimenteerida – vaadata, et milline neist võiks tunduda edaspidi sobivaim. Hea oli, et ka selle kursuse raames õnnestus teha praktilist tööd just enda tööalase probleemi lahendamiseks.

Lõpetuseks samuti kiidusõnad 2018. aasta IT valdkonna parimale õppejõule Nadjale – tema energia, aktiivne kaasamõtlemine ja positiivsus hoidsid kõigi osalejate tuju kursuse käigus üleval ja aitasid tulemusteni liikuda.

Kokkuvõtteks

Ei kirjutaks rohkem kui et teekond jätkub. Maratoni joostakse samm korraga. Selja taga on alles esimesed 32 EAP-d. Jäänud veel 148 …

Kui jõudsid juba siiani, siis võid lugeda edasi kuidas järgmiseks läks 2. semester , siis 3. semester ja lisaks ka 4. semester. 🙂

Autorist ...

Marko Rillo on juhtimiskonsultant, koolitaja ja executive coach. Temaga saab ühendust siit

Blogipostitused:

Leave a Reply:

Your email address will not be published. Required fields are marked

  1. Tere Marko!

    Aitäh selle väga põhjaliku postituse eest! Hetkel väga kasulik lugemine, kuna valmistun just EUCIP testiks, et sessioonõppesse sisse saada.

  2. Tere! Aitäh selle eest, väga suureks abiks ka mulle. 1 küsimus seoses testis olevate koodijuppidega, kas võiksid natuke neist rääkida? Kas koodiga mitte kokku puutunud inimeste jaoks võib see otsustavaks saada?

    Parimat

    stuxnet

    1. Täpselt neid koodijuppe ei mäleta, aga need olid mingid suhteliselt lihtsad ja loogilised asjad, mille puhul on tarvis pisut arvutusoskust ja elementaarseid teadmisi tsüklitest. Umbes sellised lühikesed JavaScripti koodijupid, kus pidid vastama, et millise tulemuse nt selline süntaks võiks anda:
      var a = 5;
      var b = 11;
      for (var i = 0; i < 5; i++) { a = a + b; } console.log(a);

  3. Tere
    Suur tänu Teile põhjaliku info eest! Kas ma õigesti sain aru, et kui testi tulemus on alampiirist madalam, siis ikka on võimalik sisse astuda? Kahjuks natuke punkte ei piisanud 🙁 Ja staatus SAISis on "Konkurentist väljas". Ootan Teie vastust. Püsige terve!

    1. Jah, see sõltub vastuvõtuarvudest. Kõigepealt oodatakse ära, et kui suur hulk vastu võetud tudengitest kinnitab oma õppima asumist (mõni võib loobuda kuna sai mitmele erialale korraga sisse) ja seejärel avatakse veel teatud hulgale, kes jäid lävendipiirist alla. Kui ka sellega ei vea välja, siis kolmas võimalus on veel – alustada õpingutega avatud ülikooli raames ja kui esimese semestri lõpuks õnnestub saada vähemalt 30 EAPd, siis vabade kohtade tekkimisel saab esitada dekanaati taotluse tasuta õppima asumiseks.

  4. Tere!

    Kuna alustan see aasta sama eriala õppimist, siis sooviks teada, et mismoodi Te saite kohustuslikud ained välja vahetada?

    Praegu näen mina ainekavast, et kohustuslikeks aineteks on järgnevad:

    ITI0101 Sissejuhatus infotehnoloogiasse
    ITI0102 Programmeerimise algkursus
    YTG0060 Keskkonnakaitse ja säästev areng
    ICA0001 Operatsioonisüsteemid ja nende haldamine
    NSO0160 Füüsika mittefüüsikutele
    IAX0010 Diskreetne matemaatika

    Heameelega võtaks diskreetse matemaatika välja. Ei tunne ennast just kõige tugevamalt sellistes ainetes. 🙂

    1. "Välja vahetamine" tähendab antud juhul lihtsalt seda, et juhul kui on soov õppekava lõpuni läbida, siis jääb selle aine sooritamine mõnele hilisemale semestrile, sest ilma kõiki kohustuslikke aineid läbimata õppekava sooritatud ei saa.

      Kuna mul on juba kraadid käes, siis minu jaoks ei juhtu sellest ka midagi kui IT süsteemide arenduse õppekava ka lõpuks lõpetamata jääb, mistõttu mulle on tundunud motiveerivam panna esmajärjekorras põhiraskus nende ainete õppimisele, mis huvi pakuvad. Kohustuslikke üldaineid kaalun võtta pigem millalgi stuudiumi lõpus juhul kui otsustan kogu õppekava lõpuni läbi teha.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}