Advanced Programming
BASIC DATA
course listing
A - main register
course code
ITT8060
course title in Estonian
Programmeerimise erikursus
course title in English
Advanced Programming
course volume CP
4.00
ECTS credits
6.00
to be declared
yes
fully online course
not
assessment form
Examination
teaching semester
autumn
language of instruction
Estonian
English
Study programmes that contain the course
code of the study programme version
course compulsory
IAPM02/25
no
Structural units teaching the course
IT - Department of Software Science
Course description link
Timetable link
View the timetable
Version:
VERSION SPECIFIC DATA
course aims in Estonian
* Ü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.
course aims in English
* 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.
learning outcomes in the course in Est.
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.
learning outcomes in the course in Eng.
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.
brief description of the course in Estonian
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
brief description of the course in English
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)
type of assessment in Estonian
Eksam 50%, kodutööd 50%.
type of assessment in English
Exam 50%, homework 50%.
independent study in Estonian
Programmeerimisülesanded, kodulugemine.
independent study in English
Programming exercises, home reading.
study literature
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

study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):
lectures
2.0
lectures
-
practices
2.0
practices
-
exercises
0.0
exercises
-
lecturer in charge
-
LECTURER SYLLABUS INFO
semester of studies
teaching lecturer / unit
language of instruction
Extended syllabus or link to Moodle or to home page
2025/2026 autumn
Juhan-Peep Ernits, IT - Department of Software Science
English
    assessment_criteria.pdf 
    display more
    2024/2025 autumn
    Juhan-Peep Ernits, IT - Department of Software Science
    English
      2023/2024 autumn
      Juhan-Peep Ernits, IT - Department of Software Science
      English
        2022/2023 autumn
        Juhan-Peep Ernits, IT - Department of Software Science
        English
          2021/2022 spring
          Juhan-Peep Ernits, IT - Department of Software Science
          English
            2021/2022 autumn
            Juhan-Peep Ernits, IT - Department of Software Science
            English, Estonian
              2020/2021 autumn
              Juhan-Peep Ernits, IT - Department of Software Science
              English
                2019/2020 autumn
                Juhan-Peep Ernits, IT - Department of Software Science
                English
                  2018/2019 autumn
                  Juhan-Peep Ernits, IT - Department of Software Science
                  English
                    2017/2018 autumn
                    Juhan-Peep Ernits, IT - Department of Software Science
                    English, Estonian
                      2016/2017 spring
                      Juhan-Peep Ernits, IT - Department of Software Science
                      English
                        2016/2017 autumn
                        Juhan-Peep Ernits, IT - Department of Software Science
                        English
                          2015/2016 autumn
                          Juhan-Peep Ernits, IT - Department of Software Science
                          English
                            2014/2015 autumn
                            Juhan-Peep Ernits, IT - Department of Software Science
                            English
                              2013/2014 autumn
                              Juhan-Peep Ernits, IT - Department of Software Science
                              English
                                Course description in Estonian
                                Course description in English