Tarkvaratehnoloogiad

Allikas: Lambda

Ainekood: ITO8020
Link: http://www.lambda.ee/wiki/tarkvaratehnoloogiad
Link ÕISi https://ois.ttu.ee/aine/ito8020
Õppejõud: Tanel Tammet
Kontakt: tanel.tammet@ttu.ee, 6203457, ICT 426
Varasemast: Tarkvaratehnoloogiad 2019 aasta arhiiv

Eksamid ja hindamine

Eksamid toimuvad sel aastal ainult kaugtööna ja kirjalikult: eksami algusajaks paneb õppejõud küsimused/ülesanded siia wikilehele ning kolme tunni jooksul tuleb saata emailiga vastused. Eksamile registeeruda ei ole vaja.

Eksamiajad on järgmised:

Igaüks võib osaleda kas ühel või kahel eksamil oma valitud päevadel. Täiendavaid päevi ehk hilisemaid järeleksameid ei ole.

Nagu algselt planeeritud, annavad praktikumid 40% tulemusest ja eksam 60% (ehk, punktid liidetakse kokku) ja hindeskaalad on 50-59 punkti 1, ..., 90-100 punkti 5.

Eksami sisu erineb veidi algselt planeeritust. Küsimused jagunevad nelja liigi vahel:

  • Mikroesseed/seletused a la pool lehekülge õppejõu valitud konkreetsetel teemadel/küsimustel õppematerjalide või kohustusliku kirjanduse seast.
  • Ülesanne pakkuda välja arhitektuuriline ja tehnoloogiline lahendus mingile suhteliselt väikesele tarkvara-loomise probleemile, seda lahendust põhjendada ja tuua välja orienteeruv töömaht lahenduse eri osadele ja võimalikud riski- ning keerukuskohad.
  • Etteantud programmi/päringu/veebilehe jupi toimimise seletamine: siin tulevad ainult praktikumides või kursusematerjalides pikemalt läbikäidud keeltes kirjutatud jupid.
  • Pisiülesanded: veebijupi tegemine ja pisiprogrammi kirjutamine. Õppejõud neid käima ei pane ja vead on lubatud.

Eksamil võib kasutada materjale, arvutit ja googlit. Teiste tudengite või muude inimestega konsulteerimine ei ole lubatud (see on nüüd puhtalt aususe peale).

Praktikumi hinded

kood hinne
191887IADM 35
191886IADM 35
191830IADM 31
191845IADM 36
191893IADM 36
191902IADM 34
191882IADM 34
191869IADM 42
191793IADM 42
191852IADM 34
191816IADM 32
191898IADM 32
191889IADM 33
191897IADM 33
191908IADM 40
191788IADM 40
191811IADM 40
191894IADM 34
191934IADM 34
191836IADM 38
191844IADM 38
191835IADM 40
191770IADM 40
191850IADM 38
191822IADM 38
191840IADM 33
191896IADM 40
191891IADM 40
191904IADM 40
191806IADM 31
191832IADM 31
191795IADM 36
191847IADM 36
191901IADM 38
191826IADM 38
191853IADM 37
191818IADM 37
191865IADM 33
191877IADM 33
191782IADM 39
191817IADM 39
191789IADM 40
191864IADM 40
191905IADM 37
191781IADM 34
191885IADM 34
200607IADM 38
191787IADM 31
191809IADM 32
191823IADM 32
191849IADM 34
191876IADM 34
191825IADM 33
191831IADM 40
191794IADM 40
191858IADM 40
191777IADM 35


Slacki kanal

Liituge Slack jututoaga:

Kursuse eesmärk ja põhimõtted

Mõista IT-süsteemide tehnoloogilist konstruktsiooni, arendusvahendeid ja arendusprotsesse.

Saada aru riistvara, tarkvara ja kommunikatsiooniprotokollide ehituse põhiideedest.

Mõista

  • tarkvara peamisi arhitektuurivariante,
  • erinevate programmeerimiskeelte olemust,
  • teekide ja raamistike kasutamise üldisi põhimõtteid,
  • erinevate arendusprotsesside ideid.

Kursuse raames ülikoolis kohapeal loenguid ei toimu: kõik loengud on varasemalt salvestatud videosse, ja lisatud presentatsioon, vaata siin lehel allpool.

Kohapealne töö (praktikum/konsultatsioon) on mõeldud eeskätt praktilise arenduskogemuse saamiseks, eesmärgiga omaenda katsetuste najal tekitada arusaamine, mismoodi praktiline arendusprotsess toimub, mida ja kuidas standardtehnoloogiatega teha saab, mis on keeruline ja mis lihtne.

Kohapealne praktiline töö eeldab varasemat tutvumist osade allpool toodud teemadega.

Esimeseks praktikumiks oleks väga soovitav vaadata/lugeda läbi allpool materjalid teemadel

  • Veebilehed (tingimata)
  • Programmeerimise sissejuhatus Pythonis (soovitav)

Praktikumi/konsultatsiooni ajad

Eri rühmadel neljapäeviti ja reedeti ruumis ICT-501:

B-rühm (IADM20B) neljapäeviti:

  • 30.01.2020 kl 16-20.30
  • 13.02.2020 kl 16-20.30
  • 27.02.2020 kl 16-20.30
  • 12.03.2020 kl 16-20.30
  • 26.03.2020 kl 16-20.30

A-rühm (IADM20A) reedeti:

  • 31.01.2020 kl 15-19.30
  • 14.02.2020 kl 15-19.30
  • 28.02.2020 kl 15-19.30
  • 13.03.2020 kl 15-19.30
  • 27.03.2020 kl 15-19.30

Praktiline ülesanne

Kursuse kodu-või-praktikumiülesandeks on (a) reaalse rakenduse planeerimine ja ehitamine, mis kuvab kasutajale veebis mõistetavalt ja otsitavalt ja/või sorteeritavalt mingit reaalset andmestikku, mis on soovitavalt teie enda töökohast pärit. Kui sa sobivat andmestikku oma töökohast ei leia, vali mõni töödeldav ja huvitav andmestik eesti avaandmete portaalist, (b) edasiarenduse planeerimine hüpoteetiliseks tellimiseks.

Soovitav on tulemus panna üles avalikku pilveserverisse (soovitus: digitalocean) ja kood avalikku koodihoidlasse (soovitus: github). Alternatiiv on panna tulemus dijkstra serverisse Taltechis.

Github on tasuta, digitalocean annab alustajatele ca 100 USD krediiti ja lisaks on olemas Github student pack, mis sisaldab ca 50 USD digitaloceani krediiti. Rangelt kohustuslik avaliku veebiserveri ja githubi kasutamine ei ole: väiksema arvu punkte saab praktikumist ka siis, kui realiseerid kõik lihtsalt oma arvutis ja ei pane kuhugi üles.

Praktikumi töökorraldus

Ülesannet võib teha üksi või kahekesi.

Kursuse praktikumipäevadel tegeleme teie projekti realiseerimise etappidega, ning iga etapi/praktikumipäeva lõpuks vaatame üle hetkeseisu ja anname esialgsed hinnangud, kui kaugele on jõutud ja mis on edasised sammud, veidi sarnaselt tüüpiliste agiilse arenduse hetkeseisu-koosolekutega.

Selleks peab iga grupp tegema praktikumipäeva lõpus paariminutise ettekande, kus on öeldud:

  • grupi liikmete nimed
  • mida sel päeval üritati teha ja kuhu jõuti
  • mis on plaan järgmise praktikumikorraga saavutada

Praktikumijuhendaja hindab iga päeva progressi.

Lõpp-presentatsioon viimasel päeval peaks olema pikem, ca viisteist minutit.

Praktikumi kogutulemusest on arvestuslikult ca 50% lõpptulemus ja teine ca 50% esimese nelja päeva tulemused.

Praktikumi etapid

Jagame töö etapiviisi viiele praktikumi päevale: nende jaoks on eraldi wikileht:

tarkvaratehnoloogia praktikumide etapid.

Loengud ja materjalid

Loengud on salvestatud youtube klippidena, iga loenguga on seotud presentatsioon ja soovitavad täiendavad materjalid ja lingid.

Videoloengute youtube üldlisti järjekord on suvaline, kasuta pigem allolevaid linke õiges järjekorras.

Sissejuhatus ja põhimõisted

Kuidas arvuti töötab

Soovitavalt loe veel:

Interneti funktsioneerimine

Programmeerimise sissejuhatus Pythonis

Vajalik Pythoni tarkvara:

Head pikemad õpetused:

Tekstiredaktorid:

Veebilehed

Kõige paremad veebiehituse õpetused algajale on w3schools saidil

Üleüldine peamine küsimuste/vastuste sait on stackoverflow.

Server ja veebirakendus

Flask server:

  • Kasutame Pythoni populaarset micro-frameworki Flask
  • Sul peab olema Windowsil käsurealt käivitatav python ja pip. pip on levinuim Pythoni moodulite installeerimise-programm.
  • Ütle käsurealt: pip install flask
  • Flask veel ise käima ei lähe: loe presentatsioonist edasi.
  • NB! Kui paned oma flaski abil tehtud serveriprogrammi serverisse tööle, siis viimase asjana kirjuta app.run(debug=True, port=5000, host='0.0.0.0') kus on näidetega võrreldes lisaks host=... : see lubab väljapoolt serverit ligi pääseda.

Andmebaasiga serverirakenduse ehitamine

Tehisintellekt

Soovitavalt vaata ja loe lisaks:

Arendusvahendid, programmeerimiskeeled ja arhitektuur

Arendusprotsess

Loe (pikemad sirvi) need arendusprotsessiga seotud artiklid kursuse käigus läbi. Nende kõigi kohta võidakse eksamil küsida lugemiskontrolli-küsimusi.

Tarkvaratehnoloogiad eksam 20 mai 2020 Tarkvaratehnoloogiad eksam 28 mai 2020 -