Programming IV
BASIC DATA
course listing
A - main register
course code
IAX0587
course title in Estonian
Programmeerimine IV
course title in English
Programming IV
course volume CP
-
ECTS credits
6.00
to be declared
yes
fully online course
not
assessment form
Examination
teaching semester
spring
language of instruction
Estonian
English
Prerequisite(s)
Prerequisite 1
Programming III (IAX0586)
Study programmes that contain the course
code of the study programme version
course compulsory
IACB17/26
no
Structural units teaching the course
IA - Department of Computer Systems
Course description link
Timetable link
View the timetable
Version:
VERSION SPECIFIC DATA
course aims in Estonian
Õppeaine eesmärk on anda üliõpilastele teadmised ja praktilised oskused, et kandideerida tööle firmadesse, kus nõutakse põhjalikku C++ tundmist.
course aims in English
The aim of this course is to provide students with knowledge and practical skills to be able to apply for jobs in companies that require in-depth knowledge of C++.
learning outcomes in the course in Est.
Õppeaine läbinud üliõpilane:
- projekteerib tarkvara objekt-orienteeritud lähenemisviisi aluseks võttes;
- kirjutab kaasaegses stiilis igasuguse raskusastmega C++ koodi;
- orienteerub C++ dokumentatsioonis ja täiendab vajadusel oma teadmisi ning oskusi;
- on võimeline osalema mistahes ainevaldkonda katvates tarkvaraprojektides.

learning outcomes in the course in Eng.
A student who has completed the subject:
- designs software based on the object-oriented approach;
- writes modern-style C++ code of any difficulty level;
- is familiar with C++ documentation and improves his/her knowledge and skills if necessary;
- is able to participate in software projects covering any application area.
brief description of the course in Estonian
C++ täiendavad omadused: loendid, täiendavad andmetüübid nagu char32_t jt., tüübi välalugemine andmetest (typeid ja decltype), tehted kompleksarvudega, matemaatika funktsioonide teek, class any, C union, C++ mallid variant ja optional, konstruktori detailid, funktorid, andmete liigutamine, nutikad viidad, ratsionaalarvud, juhuslike arvude genereerimine, töö arvuti kellaga C-s ja C++-s.
STL konteinerid: algväärtuste loendid, numbrite massiivid, mall tuple, hulgad, paiskepaigutuse tabelid.
STL algoritmid: standardfunktsioonid andmete kopeerimiseks, muutmisks ja kustutamiseks.
Mitmelõimelisus: kuidas see arvutis töötab, lõime käivitamine ja peatamine, lõimede sünkroniseerimine, klassid mutex ja conditional_variable, atomaarsed muutujad, tootja-tarbija probleem ja selle lahendused, mallid future ja promise.
DLLid: koostamine ja linkimine.
Qt: installeerimine, arenduskeskkond QtCreator, signaalid ja pesad, sündmused, Qt paljulõimelised programmid, sõne Qt-s, konteierid Qt-s, sisend ja väljund Qt-s, graafilise kasutajaliidese konstrueerimie, ülevaade QML-st.
Uuendused C++ versioon 20-s: coroutine tüüpi funktsioonid, moodulid, vahemikud, väljundi formaatimine, täiendavad sünkroniseerimise vahendid.
Uuendused C++ versioon 23-s.
Ülevaade paralleelsest programmeerimisest OpenMP baasil.
Kiirendid CUDA baasil.
brief description of the course in English
C++ advanced tools: enumerations, adiotional data types like char32_t, extracting the type from data (typeid and decltype), operating with complex numbers, numerics library, class any, C union and C++ template variant, template optional, initializing constructors, function objects, moving, smart pointers, rational numbers, generation of random numbers, time handling in C and C++.
STL advanced containers:initializer lists, value arrays, template tuple, sets, hash tables.
STL advanced algorithms: standard functions for copying, modifying and erasing.
Multithreading: how it works, starting and énding of a thread, synchronization of threads, class mutex, class conditional_variable, atomic variables, producer-consumer problem and its solutions, templates future and promise.
DLLs: implementing and linking.
Qt: installation, QtCreater development environment, signals and slots, events, multithreading in Qt, stings in Qt, containers in Qt, input and output in Qt, design of graphical user interface, QML overview.
New tools from C++ version 20: coroutines, modules, ranges, output formatting, advanced tools for thread synchronization.
New tools from C++ version 23..
Parallel programming using Open MP and CUDA.
type of assessment in Estonian
-
type of assessment in English
-
independent study in Estonian
Iseseisev töö seisneb teoreetiliste materjalide läbitöötamises ja kursusetööde tegemises.
independent study in English
Individual work consists of working through the theoretical materials and completing the coursework.
study literature
https://www.tud.ttu.ee/im/Viktor.Leppikson/
https://en.cppreference.com/w/
Nicolai M. Josuttis C++ 20 the Complete Guide ISBN 978-396730920 või vanemad väljaanded
Marc Gregoire Professional C++, 2024, ISBN 978-1394193172 või vanemad väljaanded
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
Viktor Leppikson, lektor (IA - arvutisüsteemide instituut)
LECTURER SYLLABUS INFO
semester of studies
teaching lecturer / unit
language of instruction
Extended syllabus
2025/2026 spring
Viktor Leppikson, IA - Department of Computer Systems
Estonian
    Course description in Estonian
    Course description in English