IT Kolledž

Diplomitöö - Final thesis

Mõtteid ja nägemusi diplomitöödest IT Kolledžis. Jutt rohkem arenduse õppekavale.
Andres Käver
Skype: akaver   akaver_at_akaver.com

Updated - 2017-03-04

Diplomitööst

Minu täiesti isiklik (ja netist siit-sealt kokku laenatud) nägemus, heietus, kriitika ja nõuanded diplomitöödest IT Kolledžis. Kuna olen valdavalt seotud arenduse õppega, siis minu kirjutis on kantud kõigest sellest, mida olen arenduse üliõpilasena ja seejärel õppejõuna, diplomitööde komisjoniliikmena, juhendajana ning retsensendina kogenud.

Kõigepealt, diplomitöö väljundiks on diplomitöö. Mitte selle käigus valminud rakendus või lahendus. See teos, mis jõuab komisjoni ja retsensendi lauale. Sageli kiputakse seda ära unustama ja kogu aeg ning energia suunatakse nn. päris asjale. Arendaja tahaks hirmsasti arendada, mitte pabereid kokku kirjutada. Komisjoni aga enamuses diplomitöö käigus tehtud arendus ja selle valmimine ise suurt ei köida, võibolla hindaks suhtena selline 20% projekt vs 80% paberile kirja pandu ja selle kaitsmine.

Mida diplomitöö peaks näitama?
Töö ja selle kaitsmine peavad tõestama, et sa oled omal õppekaval saanud spetsialistiks. Ja selliseks spetsialistiks, keda tahaks üle võtta iga firma ja panna tegema XYZ eurose eelarvega projekti. Ja et sa teed/juhid projekti selliselt, et tulemus saab parem/odavam/kiiremini valmis, kui alguses arvata võis. Mida see tähendab diplomitöö mõistes? Sa püstitad probleemi, analüüsid seda põhjalikult, analüüsi käigus valid/töötad välja parimad lahendusvariandid ja tööristad, teed mõne parema variandiga valmis prototüübid, võrdled ja analüüsid tulemusi, otsustad, milline on antud hetkel parim võimalik variant, teostad parima valikuga lõpplahenduse. Ükski otsus ega valik ei tohi olla töös põhjendamata. Mingi kogus valikuid õnnestub ära teha teema püstituse või keskkonna piirangutega - kuna firmas kasutatakse või klient nõuab asja X kasutamist, siis nii on. See tuleb ka selgelt välja tuua. Aga selline põhjendamine ei saa olla valdav. Valikute põhjendamine - siin peab olema metoodika, valem vmt. Tabel kaalude ja punktidega vmt.
Näiteks: ei piisa üksnes kirjeldamisest, et olemas on keeled A, B ja C. Ja ma valin B, sest mulle tundub nii. Ei, tuleb võrrelda, mis on erinevate keelte tugevused ja nõrkused, kuidas need sobiksid antud ülesande lahendamiseks. Mõelda välja mingi metoodika, mis soovitavalt matemaatiliselt näitaks, milline on sobivaim variant. Ka selle, et ma oskan ühte keelt/raamistiku paremini kui teist, saab sõnastada sobivalt:

A B C
Töötunnid lahendamaks probleemi 100 300 150
Töötunnid keele õppimiseks 700 0 300
KOKKU 800 300 450
Ja ongi olemas selge matemaatiline põhjendus, miks ma ei taha lahendada asja Haskellis ja teen veebi ikka Php-ga edasi. Mis sest, et Haskell lahendaks antud probleemi kõige paremini.

Seega, põhirõhk on analüüsil ja põhjendatud järeldustel.

Diplomitöö teema valik ja sõnastamine.
Väga paljud üliõpilased teevad oma diplomitöö praktikal tehtu põhjal. Väga hea. Nii ongi ette nähtud. Aga sageli on probleem töö fookuse seadmisega. Tüüpiline on selline olukord: tegin praktikal/tööl mingi rakenduse. Nüüd kirjutan sellest diplomi. Seda ma nimetan “Mina ka!” diplomitööks. Tulevad umbes sellised pealkirjad/teemad: Android rakenduse arendus liiklustestid.ee näitel. Või: Erply majandustarkvara liidestus mooduli analüüs ja arendus Magento e-kaubanduse platvormile. Ehk siis sellised tööd, kus kirjeldatakse ühe arenduse läbiviimist, tüüpiliselt veel suhteliselt sirgjooneliselt. Ei mingit analüüsi, otsuseid teha asju ühte- või teistmoodi langetatakse puusalt. Sageli on juhendajaks valitud ka veel keegi praktika kohast - inimene, kes sageli oli ise selles rakenduse valmimise protsessis mingil juhtival kohal - vanemarendaja, osakonna juhataja vmt. Aga - nüüd on eesmärgiks diplomitöö, mitte arendus. Ja sellise juhendaja oskus hoida õigel sihil ühte akadeemilist tööd on sageli üsna nõrk.

Diplomitöö üheks eesmärgiks on ka taaskasutatavus - ja sellega kaasneb ka selgelt fokuseeritud teema. Liiklustestid.ee rakendust lahates selgus, et seal on huvi rohkem pakkuv probleem andmete ja piltide laadimine veebiteenusest - millist teeki kasutada, või siis hoopis ise kirjutada. Erinevate teekide omadused - turvalisus, vahemälu, multithreading, vigade haldus, jmt. Uueks teemaks sai: Android restful API suhtlusteegi valik ja rakendamine liiklustestide rakenduse näitel. Töö sisu muutus põhjalikuks teekide võrdluseks, testimiseks ja valikuks, koos selgete põhjendustega millal ja miks ühte või teist lahendust valida. Ja tekkis väga selge taaskasutusväärtus järgmise android rakenduse kirjutamise juures, kus vaja web api-t kasutada.

Diplomitöö sisuline ülesehitus:
Sissejuhatus
Diplomitööd ümbritseva maailma kirjeldus ja töö paiknemine selles. Lahendatava probleemi üldsõnaline püstitamine
Analüüs
Detailne probleemi püstitamine, erinevate võimalike lahenduste, meetodite, vahendite analüüs ja võrdlemine.
Süntees
Otsuste langetamine (metoodika!), parimate variantide põhjalik testimine-võrdlemine.
Teostus
Probleemi lahendamine leitud lahendusega
Järeldus
Mis maailmas paremaks läks? Majanduslik mõõde oleks väga hea. Edasised tegevused.
Kokkuvõte
Lühike teemade uuesti läbikäimine, mineviku vormis. Teostuses, järelduses ja kokkuvõttes enam uusi sisendeid tekkida ei tohiks - ala kui töö tulemused on praktikas negatiivsed, siis ei tohi teostuses valida mingeid uusi teid probleemi lahendamiseks.

 

“Mina ka!” diplomitöö
No kui ikka ei ole mingit sobivat teemat, siis saab hea (harvemini väga hea) töö kirjutada ka lihtsalt ühe rakenduse tegemisest. Kuid siis tuleb näidata, et olete valmis arendaja kogu koolis õpitu spektris - korralik ärianalüüs, rakenduse disain, ui/ux disain, vahendite valik, arendusmeetodite valik, korralik teostus, turvalisus, min 90% valminud prototüüp või lahendus. Ja ikkagi on põhirõhk analüüsil, kuid analüüsi on rohkem - mitme erineva teema suhtes (mitte süvitsi ühe kitsama probleemi uurimine). Kõikvõimalikud olemidiagrammid, uml-id, jmt. Ning hea ja enesekindel kaitsmine.

Vaadake ka kindlasti hindamismaatriksit. Heade tööde juures seda väga ei kasutata. Kuid maatriksis on oluline nn null tulp - kui mingi vastav osa on tööst täiesti puudu, siis on hinne automaatselt null.

Juhendi kirjutamine ei ole diplomitöö! Vähemalt mitte arenduses.

Laias laastus võib teha järgmise tabeli, laenates arhitektuuri näiteid:

teema/teostus lihtne nutikas
kitsas Algeline kuur. Ei sobi diplomitööks. Äge kuur. Eeldab huvi, motivatsiooni, uurimist jmt.
lai Elumaja. Vajab projekti. Katedraal, tark maja
“Mina ka” tüüpi tööd peaksid enamuses asuma lai/lihtne kategoorias. Oluline on näidata sellises töös, et olete koolis õppitust aru saanud ja oskate seda kasutada ning põhjendada - ärianalüüs (mis on probleem, mida asute lahendama), kõikvõimalike vahenidte/meetodite valik, korralik it arhitektuur (uml-id, olekudiagrammid, kasutuslood, olemid, jmt), prototüübi teostus, tulemus. Mis läks paremaks jne.

Kaitsmine
Kõige olulisem on oma teemas/töös “sees” olemine. Tead ja tunned nii oma töös tehtut, kui ka selle ümber olevat maailma põhjalikult. Kui ei tea mingit asja, ütle seda julgelt ja selgelt - ära hakka värisema ja kogelema. Ära vaata pidevalt seinalt slaide ega arvutit - vajadusel heida korraks pilk slaidi vahetusel ekraanile. Vaata komisjonile otsa. Slaididel on märksõnad-laused, sina räägid oluliselt rohkem - mitte ei loe slaide ette.

Juhendaja ja teema leidmine
See on probleem. Eriti, kui kohe mitte midagi endal pähe ei löö teema osas. “Mina ka!” stiilis töid ei taha eriti keegi juhendada - pole huvitav. Vähemalt külalisõppejõud (mina) isiklikult ei taha. Eriti, kui tudengil endal silm ei sära ja soov on kuidagi diplomiga maha saada - no ei paku pinget selline juhendamine. Tööd on niigi palju. Igal õppejõul on tavaliselt paar teemat olemas, mida võiks teha - aga need on enamuses üsna keerulised/mahukad ja sihitult ekslevad tudengid ei saa nendega hakkama.

Probleemid teostusel

Hiline alustamine.
Lõputööd ei ole võimalik kokku panna nädala, paari nädala või kuuga. Hea töö eeldab pikemaajalist ettevalmistust: õige teema valikut, probleemi ja eesmärgi piiritlemist, struktuuri liigendamist, uuringu kavandamist, info otsimist ja allikate läbitöötamist, ajagraafiku koostamist, vormistusnõuetega tutvumist jm. Enamasti ei ole esimene variant lõplik variant. Töö tuleb sisuliselt mitu korda läbi kirjutada (ühel rohkem, teisel vähem), kindlasti läheb päris palju aega lihvimisele, vormistuslike nõuete täitmisele. IT Kolledžis on diplomitöö aine maht üsna väike - see ongi ette nähtud töö kirjutamiseks. Mitte reaalse projekti tegemiseks. Projekti tegemise aeg oli ettevõttepraktikal. Omapäi kirjutamine.
Lõputööle on ette nähtud juhendaja. Üliõpilane peab olema regulaarses kontaktis juhendajaga, kellelt saab nõuandeid, abi, juhiseid, näpunäiteid, soovitusi, ja seda nii sisu kui vormi osas. Seda võimalust on mõttekas kasutada õigeaegselt ja maksimaalselt. Üliõpilasel tuleb olla aktiivne – leppida juhendajaga kokku regulaarsed kohtumised, olla kontaktis silmast-silma, e-posti/skype/telefoni teel, pakkuda töövariante lugemiseks (dropbox vmt), esitada küsimusi, diskuteerida jne. NB! Juhendaja ei pea üliõpilast taga ajama, teda torkima ja tööle sundima. Juhendajat tasub usaldada! Juhendajal on kogemused, tema tajub üldist ja tervikut, ehkki juhendatav võib olla targem, informeeritum mingis üksikküsimuses. Mõneti on olulisem, et juhendajal oleks tugev akadeemiline taust - diplomitöö ise on olulisem, kui diplomitööks oleva projekti valmimine. Kõikvõimalikud ülemused/osakonnajuhatajad on sageli akadeemilise töö kirjutamiseks mitte kõige sobivamad.
Probleemi puudumine.
Mis on mureks, valupunktiks, raskuseks, küsimuseks, mille lahenduseks pole piisavalt teadmisi ja teavet? Üliõpilasel tuleb oma tööga avastada, eristada ja lahendada aktuaalset probleemi. Iga teadust iseloomustab probleemiseade, uurimisobjekt ja metoodika. Probleemist algab kõik, probleem kujundab eesmärgi, ülesanded ja meetodid. “Mina ka” tüüpi töödes ei ole kitsamalt piiritletavat õppekavaga seotud probleemi - seal on probleemiks mingi reaalne ettevõtte vajadus. Seda siis tuleb ka korralikult analüüsida/sõnastada/lahendada.
Referaat või juhend diplomitööna.

Bakalaureusetöö ei ole referaat, kogum teiste autorite tsitaate, arvamusi ega nähtust kirjeldav ülevaade. Lõputöö on loomult uurimuslik ja analüütiline kraaditöö, mis peab vastama teadustöö nõuetele.
Tulemuse puudumine.

Tulemused on kõige olulisem osa lõputööst, sest eelkõige nende järgi hinnatakse, kas töö on vajalikul tasemel. Seega peavad nad esiteks olemas olema ja teiseks olema selgelt esitatud ja töös välja toodud. Tulemused peaksid olema piisavalt põhjendatud, sealhulgas graafilise materjali ja arvulise analüüsiga.


Väljund
Oskab oma seisukohti korrektselt kirjalikult väljendada. Oskab oma seisukohti ja valikuid veenvalt põhjendada, kasutades loogilist arutlust, katseid ja mõõtmisi, viiteid autoriteetsetele allikatele vms.
Probleem

Igas töös peab kindlasti olema selgelt välja toodud, mis probleemi lahendatakse. Probleemi valmisel peaks arvestama sellega, kas on võimalik üldse antud töö raames veenvalt väita, et probleem on lahendatud.
Peaks veenduma, et väga sarnast probleemi pole mõne teise tudengi poolt paari eelneva aasta jooksul lahendatud. Kui on valitud sarnane probleem, siis peaks kindlasti tõestama, et probleemi lahendus on varasemast parem.

Hea töö liigitub enamasti kolme gruppi
On leitud ja lahendatud uudne probleem või leitud teadaolevale probleemile uudne ja parem lahendus. Sellise töö suureks väärtuseks on tudengi leidlikkus või teadmiste sügavaus.

On lahendatud probleem, mis ei nõua uudset lahendust. Sellise töö puhul peab tudengi näitama, et mõistab väga hästi, miks antud lahendus konkreetsel juhul õige on. Oskab vaadata lahendust erinevatest vaatenurkadest. Sellise töö puhul peab tudeng näitama, et oskab einevates ainetes õpitut oma projekti kontekstis kasutada.

On uuritud mingit probleemi põhjalikumalt. Probleemi lahenduse leidmiseks on kasutatud erinevaid kirjandusallikaid või katsetatud erinevaid tehnoloogiaid.

Kahel viimasel juhul peaks välja paistma, et tudeng on vaeva näinud ja aega panustanud, esimesel juhul kompenseerib osaliselt särav idee.

Kõikidel juhtudele peaks olema näha tudengi enda panus. Töö ei tohiks põhineda nö õpikulahendustel. Tudeng peaks suutma sünteesida lahenduse konkreetsest probleemist lähtuvalt ja veenma lugejat, et lahendus pole juhuslikult valitud.