Fundamentals of C/C++ Programming
BASIC DATA
course listing
A - main register
course code
ICS0017
course title in Estonian
C/C++ alused
course title in English
Fundamentals of C/C++ Programming
course volume CP
-
ECTS credits
6.00
to be declared
yes
fully online course
not
assessment form
Pass/fail assessment
teaching semester
autumn - spring
language of instruction
Estonian
English
Study programmes that contain the course
code of the study programme version
course compulsory
IAFM21/24
no
IVSB17/25
no
Structural units teaching the course
IC - IT College
Course description link
Timetable link
View the timetable
Version:
VERSION SPECIFIC DATA
course aims in Estonian
- Tutvustada tarkvara objekt-orienteeritud projekteerimise ja programmeerimise meetodite põhimõtteid.
- Õpetada programeerimist keeles C++.
- Treenida üliõpilasi et nad omandaksid teatud praktlise programmeerimise oskuse.
course aims in English
- Introduce the paradigms and methods of software object oriented design and implementation.
- Teach programming in C++ programming language.
- Train the students to give them some practical experience in programming.
learning outcomes in the course in Est.
Kursuse edukalt lõpetanu:
- valdab objekt-orienteeritud projekteerimise ja programmeerimise meetodeid;
- tunneb C++ keele põhilisi reegleid ja standardseid vahendeid;
- oskab praktiliselt koostada keskmise raskusastmega C++-keelseid programme alates algoritmi koostamisest kuni koodi veavabaks silumiseni.
learning outcomes in the course in Eng.
After successfully completing this course the student:
- knows the methods of object oriented software development;
- knows the main rules and standard tools of C++;
- is able to write middle difficulty programs in C++ starting from designing the algorithm and ending with debugging and testing the code.
brief description of the course in Estonian
1. C++ kui täiuslikum C: Unicode, viide (reference), funktsiooni parameetrite vaikeväärtused, funktsioonide ülelaadimine (function overloading), tüüp bool, mäluhalduse operaatorid jne.
2. Objekt-orienteeritud lähenemisviisi alused: objekt, klass, atribuut, meetod, kapseldamine, pärimine. polümorfism jne.
3. Objekt-orienteeritud lähenemisviisi realisatsioon C++ vahenditega: klassi deklareerimine; objektide loomise viisid; atribuutide ja meetodite kättesaadavus (accessebility); konstruktor ja destruktor; pärimine; virtuaalsed funktsioonid; abstraktsed klassid.
4. C++ täiendavad vahendid: kopeeriv konstruktor; viit this; konstantsed objektid; klassi sõbrad (friend); operaatorite ülelaadimine (operator overloading); klassi static liikmed; erind (exception); tüübi pööramine (cast); atribuutide initsialiseerimine, mallid (template) jne.
5. C++ standardsed klassid ja mallid ning töö nendega: sisend / väljund; erind; sõne (string), konteinerid; lambda avaldised (lambda expressions) jt.
6. Lõimed ja nende haldamine C++ vahenditega.

Üliõpilane, kes tahab end kursusele registreerida, peab olema edukalt läbinud vähemalt ühe kursuse järgnevast neljast: ICS0004 Programmeerimise alused, IAX0583 Programmeerimine I, IAX0584 Programmeerimine II, IAS0090 Algoritmid ja andmestruktuurid.
brief description of the course in English
1. C++ as enhanced C: Unicode characters, references, default arguments, function overloading, boolean variables, memory allocating operator, etc.
2. Basics of object oriented approach: object, class, attribute, method, encapsulation, inheritance, polymorphism, etc.
3. Object oriented approach in C++: declaration of classes, creation of objects, accessebility of methods and attributes, contructor, destructor, inheritance, virtual functions, abstract classes.
4. C++ additional tools: copying constructor, pointer this, constant objects, friend classes, operator overloading, static members of class, exceptions, casting, initialization of attributes, templates, etc.
5. C++ standard classes and templates and operating with them: input / output, exception, string, containers, lambda expressions, etc.
6. Threads and C++ tools for thread synchronization.

This course is for students who have successfully passed at least one of the folllowing four courses: ICS0004 Fundamentals of Programming, IAX0583 Programming I, IAX0584 Programming II, IAS0090 Algorithms and Data Structures.
type of assessment in Estonian
Arvestuse saamiseks tuleb esitada ja kaitsta kursusetöö, mis koosneb kolmest C++ keeles kirjutatud korrektselt töötavast programmist.
type of assessment in English
To pass the course, the student has to present the coursework consisting of three correctly running applications in C++.
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
All the textbooks dealing with programming in C++ beginners are applicable but they must not be older than 15 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):
lectures
2.0
lectures
-
practices
2.0
practices
-
exercises
0.0
exercises
-
lecturer in charge
-
LECTURER SYLLABUS INFO
semester of studies
teaching lecturer / unit
language of instruction
Extended syllabus
2025/2026 spring
Anna Kyselova, IC - IT College
English
    display more
    2025/2026 autumn
    Anna Kyselova, IC - IT College
    English
      ICS0017_assessment_criteria.pdf 
      2024/2025 autumn
      Anna Kyselova, IC - IT College
      English
        2023/2024 autumn
        Viktor Leppikson, IA - Department of Computer Systems
        English
          2022/2023 autumn
          Viktor Leppikson, IA - Department of Computer Systems
          English
            2021/2022 autumn
            Viktor Leppikson, IA - Department of Computer Systems
            English
              ICS0017_assessment_criteria.pdf 
              2020/2021 autumn
              Viktor Leppikson, IA - Department of Computer Systems
              English
                ICS0017_assessment_criteria.pdf 
                2019/2020 autumn
                Viktor Leppikson, IA - Department of Computer Systems
                English
                  ICS0017_assessment_criteria.pdf 
                  2018/2019 autumn
                  Viktor Leppikson, IA - Department of Computer Systems
                  English
                    ICS0017_assessment_criteria.pdf 
                    Course description in Estonian
                    Course description in English