õppeaine eesmärgid eesti k
* Üldistada programmeerimismeetodeid.
* Luua arusaam, kuidas funktsionaalselt mõelda ja programmeerida ning omandada
uusi teadmisi hästistruktureeritud programmide kirjutamiseks.
* Õppida ära tundma ülesandeid ja rakendusvaldkondi, mida on loomulik lahendada funktsionaalse
lähenemisega.
* Funktsionaalsed võtted ja võimalused on kasutusel kõigis enamlevinud programmeerimiskeeltes. Kursus laiendab arusaama ning annab võtted ja osksused selliste struktuuride kasutama õppimiseks hea kvaliteediga koodi saavutamiseks.
* Näidata, et mitmed päriselulised programmeerimisülesanded äri- ja teadusrakendustes
on funktsionaalse struktuuriga ja on seetõttu funktsionaalse lähenemisega elegantselt ning efektiivselt lahendatavad.
* Õppida funktsionaaseid programme testima.
* Anda ülevaade mitmetest rakenduslikest meetoditest, nagu näiteks asünkroonsest ja paralleelsest programmeerimisest funktsionaalses kontekstis.
õppeaine eesmärgid inglise k
* To give a generalised perspective to programming.
* To give an undestanding how to think and program functionally and achieve new skills for
writing well structured code.
* To identify problems and domains that lend themselves to be thought about in functional ways.
* Functional techniques are now commonplace in mainstream programming languages.
The course will broaden the understanding and give the ability to notice and
make use of such structures in order to achieve good quality code.
* To show that real world business and scientific computing tasks often
have a natural functional structure that lends itself to being solved elegantly and
efficiently by functional tools.
* To show how to test functional programs.
* To give an overview of various applied techniques, such as asynchronous and parallel programming
in the functional context.
õppeaine õpiväljundid eesti k.
Kursuse läbinu:
* Omab selget ettekujutust funktsionaalse programmeerimise põhimõtetest, mis on rakendatav
igas programmeerimiskeeles.
* Oskab kirjutada puhast ja hästi struktureeritud koodi.
* Oskab funktsionaalses programmeerimiskeeles teste kirjutada.
* Oskab ära tunda ja eristada funktsionaalset ja imperatiivset programmeerimisstiili.
* Oskab kasutada funktsionaalseid põhimõtteid igas funktsionaalses/imperatiivses programmeerimiskeeles.
* On tuttav rakendusvaldkondadega, kus funktsioonaalne lähenemine on kõige loomulikum ning
suudab otsustada, millal on mõistlik kasutada funktsionaalset programmeerimist.
* Oskab otsustada, milliseid probleeme saab kõige paremini lahendada asünkroonse või reaktiivse lähenemisega.
* Oskab kirjutada programme, kus andmetöötlus toimub paralleelselt.
õppeaine õpiväljundid ingl k.
A student who has completed the course:
* Has clear understanding of functional programming concepts that are
applicable in any programming language.
* Can write clean and well structured code.
* Knows how to test functional programs.
* Can identify/contrast functional programming and imperative programming.
* Can use functional concepts in any functional/imperative programming language.
* Is familiar with the application domains where functional programming is a natural fit and can decide when to use FP.
* Can decide which problems are best solved with asynchronous or reactive approach.
* Knows how to write data parallel programs.
õppeaine sisu lühikirjeldus eesti k
Kursus eeldab programmeerimisoskust ja põhiteadmisi algoritmidest
ja andmestruktuuridest.
Kursus keskendub järgmistele teemadele:
* Ülevaade funktsionaalsest ja imperatiivsest programmeerimisest.
* Tüüpide ja funktsioonide mõistmine.
* Objektidega programmeerimine.
* Programmikoodi organiseerimine.
* Andmete programne käsitlemine (nii tekstiandmete kui struktuuriga andmete puhul).
* Reaktiivne ja asünkroonne programmeerimine ja programmide kirjutamine mitmetuumalistele arvutitele.
* Väliste andmete ja teenuste integreerimine.
Ülalnimetatud põhimõtteid illustreeritakse rakendustega järgmistes valdkondades:
* Andmete visualiseerimine
* Teadusarvutused ja numbrilised meetodid
* Finantsarvutused
* Töö suurte andmemahtudega
õppeaine sisu lühikirjeldus ingl k
The course assumes programming skills and basic knowledge of
algorithms and data structures.
The course will focus on the following topics:
* Overview functional and imperative programming
* Understanding types and functions
* Programming with objects
* Code organisation
* Working with data (textual and structured)
* Reactive, asynchronous and parallel programming
* Integrating external data and services
The above mentioned topics will be illustrated with applications in the
following domains:
* Data visualisation
* Scientific and numerical computing
* Financial computing
* Data science (big data)
hindamisviis eesti k
Eksam 50%, kodutööd 50%.
hindamisviis ingl k
Exam 50%, homework 50%.
iseseisev töö eesti k
Programmeerimisülesanded, kodulugemine.
iseseisev töö ingl k
Programming exercises, home reading.
õppekirjandus
Tomas Petricek: Real World Functional Programming: With Examples in F# and C#
Don Syme, Adam Granicz, Antonio Cisternino: Expert F# 3.0 3rd New edition
http://cs.ttu.ee/courses/itt8060
õppevormid ja mahud
päevaõpe: nädalatunnid
4.0
sessioonõppe töömahud (semestris):