õppeaine eesmärgid eesti k
Õppeaine eesmärk on anda üliõpilastele teadmised ja praktilised oskused, et kandideerida tööle firmadesse, kus nõutakse põhjalikku C++ tundmist.
õppeaine eesmärgid inglise k
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++.
õppeaine õpiväljundid eesti k.
Õ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.
õppeaine õpiväljundid ingl k.
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.
õppeaine sisu lühikirjeldus eesti k
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.
õppeaine sisu lühikirjeldus ingl k
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.
iseseisev töö eesti k
Iseseisev töö seisneb teoreetiliste materjalide läbitöötamises ja kursusetööde tegemises.
iseseisev töö ingl k
Individual work consists of working through the theoretical materials and completing the coursework.
õppekirjandus
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
õppevormid ja mahud
päevaõpe: nädalatunnid
4.0
sessioonõppe töömahud (semestris):
vastutav õppejõud
Viktor Leppikson, lektor (IA - arvutisüsteemide instituut)