course aims in Estonian
Kursuse eesmärk on viia üliõpilased sellisele tasemele, et nad suudaksid:
- täiel määral osaleda projektides, kus töövahendiks on C++ versioon 11 / 14;
- täita lihtsamaid projekte Qt arenduskeskkonnas.
course aims in English
The course aims to lead the students to a level of skills sufficient for:
- participating in software projects basing on C++ versions 11 / 14;
- implementing simpler Qt applications.
learning outcomes in the course in Est.
Kursuse edukalt lõpetanu:
- valdab umbes 80% ulatuses programmeerimiskeelt C++ versioon 11 / 14;
- suudab täita lihtsamaid projekte Qt keskkonnas;
- oskab praktiliselt koostada keerulisi C++-keelseid programme alates algoritmi koostamisest kuni koodi veavabaks silumiseni.
learning outcomes in the course in Eng.
After successfully completing this course the student:
- possesses in practise about 80% of features and tools implemented in C++ version 11 / 14;
- is able to write simpler applications in Qt environment;
- is able to write complicated programs in C++ starting from designing the algorithm and ending with debugging and testing the code.
brief description of the course in Estonian
- C++ täiendavad vahendid: klasside ja funktsioonide mallid, uued andmetüübid (bool, nullptr, auto, decltype, etc.), tüüpide teisendus, konstantsed objektid, initsialiseerimise meetodid, viidad funktsioonidele, lambda avaldised, funktorid, objektide kopeerimine ja liigutamine, intelligentsed viidad, kellaga töötamise standardsed klassid, juhuslike arvudega töötamise standardsed klassid;
- STL konteinerid: vektor, iteraatorid, ühe- ja kahesuunaline loend, initsialiseeriv loend, vahemikul baseeriv for-silmus, rivi, pinu, prioriteetidega rivi, paar, sõnastikud, hulgad, paisksalvestus, järjestamata sõnastikud ja hulgad;
- STL algoritmid konteineritega töötamiseks: otsimine, võrdlemine, loendamine, genereerimine, teisendamine, kopeerimine, asendamine, eemaldamine, sortimine;
- Lõimtöötlus: lõimede käivitamine ja lõpetamine, sünkroniseerimise probleem, vastastikune välistamine, tingmuutujad, atomaarsed muutujad, ainult üks kord kutsutavad funktsioonid, asünkroonselt täidetavad tegumid, andmete edastamine ühest lõimust teise;
- Qt raamistik: Qt Creator arenduskeskkond, Qt põhimõisted (signaal, pesa, vidin), Qt vahendid töötamiseks tekstidega ja failidega, Qt konteinerid, Qt lõimtöötlus, Qt vahendid töötamiseks TCP/IP ühendustega ja järjestikportidega, QML.
brief description of the course in English
- C++ enhanced features: templates for classes and functions, new data types (bool, auto, nullptr, decltype, etc.), casting, run-time type information, constant objects, initialization methods, pointers to functions, lambda expressions, function wrappers, functors, lvalue, rvalue and moving, smart pointers, standard classes for time handling and random numbres generating;
- STL containers: vectors, iterators, lists, initializers, range-based for loops, queues, stacks, priority queues, deques, pairs, maps and multimaps, sets and multisets, hashing, unordered maps and sets;
- STL algorithms: find, find_if and predicates, the other algorithms for searching from containers, algorithms for counting, comparison and filling, algorithm for_each, algorithms for copying, replacing, removing and sorting, algorithm unique;
- Concurrency: threads, launching and terminating, race conditions, mutexes, calling a function just once, atomic variables, conditional variables, consumer / producer problem, asynchronous tasks, futures, promises and packaged tasks;
- Qt framework: Qt Creator development environment, Qt basic ideas (signal, slot, widget), Qt tools for text processing and file handling, Qt containers, Qt threads, Qt tools for reading / writing from / to external devices over serial ports and TCP / IP connection, Qml.
type of assessment in Estonian
-
type of assessment in English
To pass the course, the student has to present the coursework consisting of three applications: two with console user interface and one with Qt-based graphical user interface.
independent study in Estonian
Koduseid töid otseselt ei ole, kuid need, kes ei jõua kursusetööd arvutiklassis lõpetada või ei tule tundi, peavad neid lõpetama / tegema kodus.
independent study in English
There is no homework but the students who were not able to finish the coursework in the classroom or did not attend the lesson should finish / perform it at home.
study literature
Sobivad praktiliselt kõik C++ ja Qt õpikud, mis ei ole vanemad kui 10 aastat. Loengutes kasutatavad slaidid (http://www.tud.ttu.ee/im/Viktor.Leppikson/) sisaldavad kogu kursuse materjali.
All the textbooks dealing with programming in C++ and Qt are applicable but they must not be older than 10 years. The slides used in lectures (http://www.tud.ttu.ee/im/Viktor.Leppikson/) cover all the topics.
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):