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
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 
      display more
      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
                Vladimir Viies, IA - Department of Computer Systems
                English, Estonian
                  Risto Heinsar, IA - Department of Computer Systems
                  English, Estonian
                    2022/2023 autumn
                    Lembit Jürimägi, IA - Department of Computer Systems
                    Estonian
                      2021/2022 spring
                      Vladimir Viies, IA - Department of Computer Systems
                      Estonian
                        IAX0584_inglise.pdf 
                        Risto Heinsar, IA - Department of Computer Systems
                        English
                          IAX0584_inglise.pdf 
                          Lembit Jürimägi, IA - Department of Computer Systems
                          English, Estonian
                            IAX0584_inglise.pdf 
                            2021/2022 autumn
                            Vladimir Viies, IA - Department of Computer Systems
                            English, Estonian
                              IAX0584_inglise.pdf 
                              2020/2021 spring
                              Vladimir Viies, IA - Department of Computer Systems
                              Estonian
                                IAX0584_inglise.pdf 
                                Risto Heinsar, IA - Department of Computer Systems
                                English
                                  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
                                      Risto Heinsar, IA - Department of Computer Systems
                                      English
                                        IAX0584_inglise.pdf 
                                        Vladimir Viies, IA - Department of Computer Systems
                                        English, Estonian
                                          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