õppeaine eesmärgid eesti k
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.
õppeaine eesmärgid inglise k
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.
õppeaine õpiväljundid eesti k.
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.
õppeaine õpiväljundid ingl k.
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.
õppeaine sisu lühikirjeldus eesti k
- 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.
õppeaine sisu lühikirjeldus ingl k
- 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.
hindamisviis ingl k
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.
iseseisev töö eesti k
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.
iseseisev töö ingl k
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.
õppekirjandus
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.
õppevormid ja mahud
päevaõpe: nädalatunnid
4.0
sessioonõppe töömahud (semestris):