Programming II
BASIC DATA
course listing
A - main register
course code
IAX0584
course title in Estonian
Programmeerimine II
course title in English
Programming II
course volume CP
-
ECTS credits
6.00
to be declared
yes
assessment form
Examination
teaching semester
autumn - spring
language of instruction
Estonian
English
Prerequisite(s)
Prerequisite 1
Programming I (IAX0583)
The course is a prerequisite
Programming III (IAX0586)
Study programmes that contain the course
code of the study programme version
course compulsory
EAAB16/25
no
IACB17/25
yes
MVEB14/25
yes
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 programmeerimine (OOP) aluseid.
- tutvustada, praktiliste tööde näitel, C kasutamist mikroprotsessorite programmeerimisel.
- tutvuda keerulisemate algoritmide koostamise strateegiatega, dünaamilise mälujaotamisega, jätkatakse koostatud algoritmi kodeerimisega erinevates algoritmikeeltes C, C++, ja erinevates keskkondades.
- õppida andmete töötlemisel kasutama faile, tekkivate erisituatsioonide töötlemist ja tutvustada rakenduse ühildamist andmebaasiserveriga (näiteks PostgreSQL), andmete pärimine ja redigeerimine C klientrakenduse vahendusel.
course aims in English
- the main objective of this course is to develop both creative and analytical thinking by solving original tasks.
- to explain the principles of OOP (object-oriented programming).
to develop both:
- strategies for constructing complex algorithms, dynamic memory allocation, coding the algorithm in programming languages C, C++ and environments;
- to use files for storing data, exception handling.
learning outcomes in the course in Est.
Aine läbinud üliõpilane:
- tunneb ja oskab kasutada struktuurseid andmetüüpe;
- oskab koostada ülesande lahendamise algoritme lähtudes OO lähenemisest;
- oskab kirjutada algoritmile üks-ühele vastavat programmi C- või C++ keeles, kasutades nii staatilist kui dünaamilist mälujaotust;
- oskab kasutada C-d mikroprotsessorite programmeerimisel;
- oskab töödelda andmeid nii tekstfaili, tüüpfaili kui ka andmebaasiserveri vahendusel;
- oskab dokumenteerida tarkvaraprojekte.
learning outcomes in the course in Eng.
Having finished the study of the subject a student is able:
- to recognize and use structural data types (records);
- to construct an algorithm based on the OO approach to the problem;
- to implement an algorithm in a programming language C,C++ while using either dynamic or static memory allocation scheme;
- to write documentation for software projects.
brief description of the course in Estonian
Ülevaade struktuursetest andmetüüpidest (kirjed, hulgad, failid).
Objekt-orienteeritud lähenemine programmi koostamisel (klass, objekt, meetod). Kirjed, väljad, varieeruvad kirjed.
Deklareerimine ja käsitlemine. 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. Rekursioon: otsene- ja kaudne rekursioon. Rekursiooni eelised ja puudused. Infovahetus rekursiooni puhul. Näidisülesanded. Dünaamiline mälujaotus. Viidad, mälu eraldamine ja vabastamine programmitäitmise käigus. Pinu (stack-i) ja järjekorra struktuur. Dünaamilise struktuuri järjestamise algoritm. Andmebaas. Klient-server rakenduste arhitektuur. Klientrakendus. Andmete pärimine SQL-ga. C kasutamine mikroprotsessorite programmeerimisel.
Programmi silumine: skaneerimine, kontrollpunktid, silurid. Programmi komponeerimine. Programmi dokumenteerimine, tarkvaraprojekti koostamine.
brief description of the course in English
Overview of structural data types (records, sets, files).
Object-oriented approach to programming (classes, objects, methods, attributes).
Records. Fields and subfields of a record, union records.
Declaring and usage. Files. Text files and typed files, sequential and random access files. File buffer. File open (read, write, edit) and close. Reading and writing records to a text file and typed file.
Sorting data in files, exceptions. Sorting text files. Sorting files by using an index. Sorting outside of files. Recursion: direct and indirect recursion. Advantages and disadvantages.
Data exchange. Examples. Dynamic memory allocation. Pointers, allocating and freeing memory. Stack and its types. Sorting a dynamic structure.
Debugging a program: scanning, checkpoints, debuggers. Decomposing a program. Documentation. Managing a software project.
type of assessment in Estonian
Teadmiste kontroll toimub tunniülesannete lahendamise käigus, ühel kontrolltööl ja eksamil. Eksami eelduseks peab üliõpilane esitama ja kaitsma kaks iseseisvat tööd (algoritmid ja programmid, st tarkvaraprojekt) ning vähemalt 3/4 kõikidest praktikumides lahendatud ülesannetest, samuti sooritama kontrolltöö min 51 pallile (100-pallilises süsteemis). Eksam on kirjalik ja koosneb originaaltarkvara koostamisest ning vastamisest teoreetilistele küsimustele. Eksami hinne saadakse kolme osa hindamisel: kodutööde ja tunnitöö ühishinne, eksamil koostatud programm; vastused eksamil teoreetilistele küsimustele .
type of assessment in English
The command of the subject is evaluated based on the ability to solve exercises in the lab and the performance in the test and the exam. The student must solve 2 individual exercises (both an algorithm and a working program are needed) and hand in at least 3/4 of the lab done during the lab lessons, also score of 51 or higher of test is required to pass(the maximum score for the test is 100) to exam. The course ends with a written examination that includes creating a small piece of software and answering a few theoretical questions. The final mark comprises of 3 parts: from solving lab and individual exercises, from the software creation and from the answeres to teoretical questions.
independent study in Estonian
Iseseisev töö seisneb teoreetiliste materjalide läbitöötamises ja laboriteks ning harjutusteks valmistumises (kasutades seejuures e-õppe materjale).
independent study in English
Individual work includes the research of available theoretical resources and prepararations for lab excercises and seminars (including the use of e-study capabilities).
study literature
Põhiõpikud:
http://ati.ttu.ee/wiki/index.php/IAG0582_-_Programmeerimine_II
Viktor Leppikson. Programmeerimine C-keeles. Külim, 1997.
Täiendav kirjandus:
http://www.tud.ttu.ee/im/Vladimir.Viies/materials/IAG0581%2cIAG0582%2cPROGRAMMEERIMINE/
The GNU C LIbrary, http://www.gnu.org/software/libc/manual/html_node/
The GNU C LIbrary, http://www.delorie.com/gnu/docs/glibc/libc_toc.html
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
2025/2026 spring
Vladimir Viies, IA - Department of Computer Systems
English, Estonian
    IAX0584_inglise.pdf 
    Lembit Jürimägi, IA - Department of Computer Systems
    English, Estonian
      IAX0584_inglise.pdf 
      Risto Heinsar, IA - Department of Computer Systems
      English, Estonian
        IAX0584_LAK_EN.pdf 
        IAX0584_hk_inglise.pdf 
        display more
        2024/2025 spring
        Vladimir Viies, IA - Department of Computer Systems
        English, Estonian
          IAX0584 eng5.pdf 
          Risto Heinsar, IA - Department of Computer Systems
          English, Estonian
            IAX0584_hindamiskriteeriumid_inglise.pdf 
            2024/2025 autumn
            Lembit Jürimägi, IA - Department of Computer Systems
            Estonian
              IAX0584_inglise.pdf 
              2023/2024 spring
              Risto Heinsar, IA - Department of Computer Systems
              English, Estonian
                Lembit Jürimägi, IA - Department of Computer Systems
                English, Estonian
                  Vladimir Viies, IA - Department of Computer Systems
                  English, Estonian
                    2023/2024 autumn
                    Lembit Jürimägi, IA - Department of Computer Systems
                    Estonian
                      2022/2023 spring
                      Risto Heinsar, IA - Department of Computer Systems
                      English, Estonian
                        Vladimir Viies, IA - Department of Computer Systems
                        English, Estonian
                          2022/2023 autumn
                          Lembit Jürimägi, IA - Department of Computer Systems
                          Estonian
                            2021/2022 spring
                            Lembit Jürimägi, IA - Department of Computer Systems
                            English, Estonian
                              IAX0584_inglise.pdf 
                              Vladimir Viies, IA - Department of Computer Systems
                              Estonian
                                IAX0584_inglise.pdf 
                                Risto Heinsar, IA - Department of Computer Systems
                                English
                                  IAX0584_inglise.pdf 
                                  2021/2022 autumn
                                  Vladimir Viies, IA - Department of Computer Systems
                                  English, Estonian
                                    IAX0584_inglise.pdf 
                                    2020/2021 spring
                                    Risto Heinsar, IA - Department of Computer Systems
                                    English
                                      IAX0584_inglise.pdf 
                                      Vladimir Viies, IA - Department of Computer Systems
                                      Estonian
                                        IAX0584_inglise.pdf 
                                        Lembit Jürimägi, IA - Department of Computer Systems
                                        Estonian
                                          IAX0584_inglise.pdf 
                                          2020/2021 autumn
                                          Vladimir Viies, IA - Department of Computer Systems
                                          English, Estonian
                                            IAX0584_inglise.pdf 
                                            2019/2020 spring
                                            Vladimir Viies, IA - Department of Computer Systems
                                            English, Estonian
                                              IAX0584_inglise.pdf 
                                              Risto Heinsar, IA - Department of Computer Systems
                                              English
                                                IAX0584_inglise.pdf 
                                                2019/2020 autumn
                                                Lembit Jürimägi, IA - Department of Computer Systems
                                                English, Estonian
                                                  IAX0584_inglise.pdf 
                                                  Vladimir Viies, IA - Department of Computer Systems
                                                  English, Estonian
                                                    IAX0584_inglise.pdf 
                                                    Risto Heinsar, IA - Department of Computer Systems
                                                    English, Estonian
                                                      IAX0584_inglise.pdf 
                                                      2018/2019 spring
                                                      Vladimir Viies, IA - Department of Computer Systems
                                                      English, Estonian
                                                        IAX0584_inglise.pdf 
                                                        2018/2019 autumn
                                                        Risto Heinsar, IA - Department of Computer Systems
                                                        English
                                                          IAX0584_inglise.pdf 
                                                          Vladimir Viies, IA - Department of Computer Systems
                                                          English, Estonian
                                                            IAX0584_inglise.pdf 
                                                            2017/2018 spring
                                                            Vladimir Viies, IA - Department of Computer Systems
                                                            Estonian
                                                              IAX0584_inglise.pdf 
                                                              Course description in Estonian
                                                              Course description in English