Arvutiteaduse instituut
  1. Kursused
  2. 2019/20 sügis
  3. Programmeerimiskeeled (MTAT.03.006)
EN
Logi sisse

Programmeerimiskeeled 2019/20 sügis

  • Info
  • Õppekava
  • Moodle
  • Loengud & Praksid
  • Lisamaterjalid
  • Küsi abi! (Fleep)

Õ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)


Haskelli logo

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 logo

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:

  • Baastestid -- 20p
  • Eksam -- 40p
  • Kodutööd -- 30p
  • 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).

  • Haskelli näide
  • Scala näide

Baastest antakse ette paberil ning ka lahendust saab esitada paberil või läbi Moodle-i. Aega lahendamiseks on ~20 min. Ülesanded on individuaalseks lahendamiseks s.t. suhtlus teiste inimestega on keelatud. Arvuti kasutamine on lubatud.

Eksam

Eksami ülesannetes tuleb rakendada kursuses õpitud oskusi probleemide lahendamiseks.

Kodutöö

Kursuse jooksul antakse 5 + 5 kodutööd. Mõlema keele jaoks on neli väikest (8*2p) ja üks suurem kodutöö (2*7p).

Loengutestid

Enamasti tuleb iga loengu kohta üks moodle-test, mida on loengu kuulajal väga lihtne lahendada.

  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused