Õppekava
Kogemus näitab, et uute programmeerimiskeele õppimine võtab aega ning ainult põgus teoreetiline ülevaade keelte konstruktsioonidest ei anna tudengile juurde oskusi. Seepärast keskendume ainult kahele keelele.
Kursus jaguneb kaheks praktiliseks osaks: Haskelli osa ja Scala osa. Esimene pool kursuse sisust on Haskell ja teine pool Scala.
Motivatsioon (Haskell)
Väga paljud laiatarbe programmeerimiskeeled võtavad üle funktsionaalse paradigma (FP) konstruktsioone. Praktiliselt kasutatavatest keeltest on just Haskell kõige ekstreemsem keel -- tõenäoliselt FP kõige ehedam vorm.
Haskell sunnib meid palju sügavamalt mõtlema, mida me tegelikult teha tahame. Näiteks puhas funktsioon Haskellis garanteerib, et seal ei tehta kõrvalefekte -- suhtlus kasutaja või võrguga jne. Seetõttu on programmeerijal võimalik otsustada, millist kõrvalefektide süsteemi kasutada. Nii juhitakse programmeerija mõtlema tema töö tähtsatele detailidele.
Saades aru Haskellist on palju lihtsam kasutada funktsionaalset programmeerimist peavoolu programeerimiskeeltes.
Motivatsioon (Scala)
Scala ühendab endas väga palju erinevaid kasutusmustreid. Selles keeles saavad tudengid aimu, kuidas ühendada protseduraalne, objekt-orienteeritud ja funktsionaalne programeerimine.
Kuna OOP on meie tudengitele varasemast tuttav, keskendume keele sellele osale, mis on võimalikult erinev Javast.
Hindamine
Positiivse hinde saamiseks tuleb (perfektse tulemusega) läbida mõlema keele baastestid. Kumbagi testi saab teha kolmel korral, kus ülesande lahendamiseks on aega ~20 minutit.
Keelte oskust hinnatakse punktidega järgnevalt:
- Kontrolltööd -- 25p+25p
- Kodutööd -- 40p
- Loengutestid -- 10p
Hinne kujuneb niimoodi:
- 91p .. 100p -- A; 81p .. 90p -- B; 71p .. 80p -- C; 61p .. 70p -- D; 51p .. 60p -- E; 0p .. 50p -- F
Baastest
Baastest on keele omandamise absoluutne miimimumtase (kohati isegi alla miinimumtaseme).
Baastesti lahendamine toimub Moodle-i kaudu. Aega lahendamiseks on ~20 min. Ülesanded on individuaalseks lahendamiseks s.t. suhtlus teiste inimestega on keelatud. Arvuti kasutamine on lubatud.
Kontrolltööd
Kontrolltööde ülesannetes tuleb rakendada kursuses õpitud oskusi probleemide lahendamiseks. Esimene võimalus kontrolltööd teha on kursuse jooksul (nimetame ka vahel proovieksamiks). Teine võimalus on jaanuaris teie valitud eksami ajal.
Kodutöö
Kursuse jooksul antakse 5 + 5 kodutööd. Mõlema keele jaoks on neli väikest (2p+2p+3p+3p) ja üks suurem kodutöö (10p).
Loengutestid
Enamasti tuleb iga loengu kohta üks Moodle-test, mida on loengu kuulajal väga lihtne lahendada.