C/C++ edasijõudnutele (ICS0025)
PÕHIANDMED
õppeaine register
A - põhiregister
õppeaine kood
ICS0025
õppeaine nimetus eesti k
C/C++ edasijõudnutele
õppeaine nimetus inglise k
Advanced C/C++
õppeaine maht AP
-
õppeaine maht EAP
6.00
deklareeritav
jah
õppeaine täies mahus läbitav e-õppes
ei
kontrollivorm
arvestus
õpetamise semester
kevad
õppekeel
eesti keel
inglise keel
Õppekavad, millesse aine kuulub
kavaversiooni kood
aine kohustuslik
IVSB17/25
ei
Ainet õpetavad struktuuriüksused
IC - IT kolledž
Ainekaardi link
Tunniplaani link
Vaata tunniplaani
Versioon:
VERSIOONIPÕHISED ANDMED
õ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 eesti k
-
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):
loenguid
2.0
loenguid
-
praktikume
2.0
praktikume
-
harjutusi
0.0
harjutusi
-
vastutav õppejõud
-
ÕPPEJÕU AINEKAVA INFO
õppetöö semester
õpetav õppejõud / üksus
õppetöö keel
Laiendatud ainekava
2025/2026 kevad
Anna Kyselova, IC - IT kolledž
inglise keel
    kuva rohkem
    2024/2025 kevad
    Anna Kyselova, IC - IT kolledž
    inglise keel
      ICS0025_hindamiskriteeriumid.pdf 
      2023/2024 kevad
      Viktor Leppikson, IA - arvutisüsteemide instituut
      inglise keel
        2022/2023 kevad
        Viktor Leppikson, IA - arvutisüsteemide instituut
        inglise keel
          2021/2022 kevad
          Viktor Leppikson, IA - arvutisüsteemide instituut
          inglise keel
            ICS0025_hindamiskriteeriumid.pdf 
            2020/2021 kevad
            Viktor Leppikson, IA - arvutisüsteemide instituut
            inglise keel
              ICS0025_hindamiskriteeriumid.pdf 
              2019/2020 kevad
              Viktor Leppikson, IA - arvutisüsteemide instituut
              inglise keel
                ICS0025_hindamiskriteeriumid.pdf 
                2018/2019 kevad
                Viktor Leppikson, IA - arvutisüsteemide instituut
                inglise keel
                  ICS0025_hindamiskriteeriumid.pdf 
                  Ainekaart eesti keeles
                  Ainekaart inglise keeles