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):