õppeaine eesmärgid eesti k
- 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.
õppeaine eesmärgid inglise k
- 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.
õppeaine õpiväljundid eesti k.
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.
õppeaine õpiväljundid ingl k.
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.
õppeaine sisu lühikirjeldus eesti k
Ü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.
õppeaine sisu lühikirjeldus ingl k
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.
hindamisviis eesti k
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 .
hindamisviis ingl k
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.
iseseisev töö eesti k
Iseseisev töö seisneb teoreetiliste materjalide läbitöötamises ja laboriteks ning harjutusteks valmistumises (kasutades seejuures e-õppe materjale).
iseseisev töö ingl k
Individual work includes the research of available theoretical resources and prepararations for lab excercises and seminars (including the use of e-study capabilities).
õppekirjandus
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
õppevormid ja mahud
päevaõpe: nädalatunnid
4.0
sessioonõppe töömahud (semestris):