Institute of Computer Science
  1. Courses
  2. 2020/21 fall
  3. Programming Languages (MTAT.03.006)
ET
Log in

Programming Languages 2020/21 fall

  • 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:

  • 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).

  • Haskelli näide
  • Scala näide

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.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment