Programming in C and C++
BASIC DATA
course listing
A - main register
course code
IAX0585
course title in Estonian
Programmeerimine keeltes C ja C++
course title in English
Programming in C and C++
course volume CP
-
ECTS credits
6.00
to be declared
yes
assessment form
Examination
teaching semester
spring
language of instruction
Estonian
English
Study programmes that contain the course
Structural units teaching the course
IA - Department of Computer Systems
Course description link
Timetable link
View the timetable
Version:
VERSION SPECIFIC DATA
course aims in Estonian
- loogilise ja loomingulise mõtlemise arendamine originaalsete ülesannete lahendamise kaudu.
- selgitada objekt-orienteeritud programmeerimise (OOP) aluseid.
- tutvuda keerulisemate algoritmide koostamise strateegiatega, dünaamilise mälujaotamisega, algoritmikeeltes C, C++ ja erinevates keskkondades.
- õppida andmete töötlemisel kasutama faile ja tekkivate erisituatsioonide töötlemist.
- tutvuda paralleeltöötluse võimalustega C-s,OpenCL ja CUDA baasil.
- süvendada üliõpilastel praktilise programmeerimise oskust.
course aims in English
- to develop both creative and logical thinking thru solving excercises in programming;
- to explain the basics of object oriented programming (OOP);
- to familiarize students with ways to construct algorithms, including strategies for using both static and dynamic memory space in languages C and C++;
- to show how to use files and how to handle exceptions;
- to introduce parallel processing capabilities in C using OpenCL and CUDA;
- to give students skills for solving practical programming tasks.
learning outcomes in the course in Est.
Eksami edukalt sooritanud üliõpilane :
1. tunneb ja oskab kasutada struktuurseid andmetüüpe;
2. oskab kirjutada algoritmile üks-ühele vastavat programmi C- või C++ keeles, kasutades nii staatilist kui dünaamilist mälujaotust;
3. oskab koostada ülesande lahendamise algoritme lähtudes OO lähenemisest;
4. saab aru protsesside paralleeltöötlusest ja oskab seda kasutada;
5. oskab dokumenteerida tarkvaraprojekte.
learning outcomes in the course in Eng.
Having successfully passed the exam a students has to be able:
1. to recognize and use structural datatypes and classes;
2. to construct a program in C or C++ using dynamic memory allocation scheme when given an algorithm;
3. to construct an algorithm for solving a task based on OOP approach;
4. to understand parallel processing and use it for solving complex tasks
5. to document a software project
brief description of the course in Estonian
1. Ülevaade struktuursetest andmetüüpidest (kirjed, hulgad, failid)
2. Kirjed, väljad, varieeruvad kirjed. Deklareerimine ja käsitlemine.
3. Failid. Tekstifailid ja tüüpfailid, järjestikulised ja otsepöördumisega failid. Faili puhver. Faili avamine (sisestamiseks, väljastamiseks või täiendamiseks) ja sulgemine. Kirjete väljastamine/sisestamine faili/-st.Faili elementide järjestamine, reageerimine tekkivatele erisituatsioonidele. Tekstifaili järjestamise algoritm. Faili järjestamine indeksfaili abil. Faili väline sorteerimine.
4. Dünaamiline mälujaotus. Rekursioon: otsene- ja kaudne rekursioon. Rekursiooni eelised ja puudused. Infovahetus rekursiooni puhul. Näidisülesanded. Viidad, mälu eraldamine ja vabastamine programmitäitmise käigus. Pinu (stack-i) ja järjekorra struktuur. Dünaamilise struktuuri järjestamise algoritm.
5. Objekt-orienteeritud analüüs ja programmeerimine: põhilised printsiibid ja nende realiseerimine C++ vahenditega (klass, objekt, meetod).
6. Paralleeltöötlus C-s , kasutades välisseadet, kas graafikakaarti või FPGA-d ja toetudes OpenCL-le, CUDA-le.
brief description of the course in English
1. Overview of structural datatypes (records, sets, files)
2. Records, fields, variable length records, unions. Declaration and use.
3. Files. Text files and typed (binary) files. Sequential and direct access files. File buffer. Opening and closing files (for reading, writing and modifying). Reading and writing records from/to a file. Sorting data in file, exception handling. Algorithm for sorting data in text file. Sorting data with the help of index file. External sort methods.
4. Dynamic memory allocation. Recursion, direct and indirect recursion. Pros and cons of recursion. Data exchange during recursion. Examples. Pointers, memory allocation and freeing memory. Stack. Linked list. Algorithm for sorting dynamic structures.
5. Object oriented approach and programming: basic principles and implementing those with C++ (class, object, method).
6. Parallel processing in C with OpenCL. Using external devices like GPU or FPGA for offloading parts of the program.
type of assessment in Estonian
Eksam
type of assessment in English
Exam
independent study in Estonian
xx
independent study in English
xx
study literature
www.tud.ttu.ee/im/Vladimir.Viies/materials/CeriPar/
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):
lectures
1.0
lectures
-
practices
3.0
practices
-
exercises
0.0
exercises
-
lecturer in charge
-
LECTURER SYLLABUS INFO
semester of studies
teaching lecturer / unit
language of instruction
Extended syllabus or link to Moodle or to home page
2019/2020 spring
Vladimir Viies, IA - Department of Computer Systems
Estonian
    IAX0585_inglise.pdf 
    Course description in Estonian
    Course description in English