Programozás

Tantárgy célja:

Egyszerű, több ciklusos, függvényekre, osztályokra bontott alkalmazások készítése.

A programkészítésen belül a tervezés és a megvalósítás éles szétválasztása. Programozási minták (specifikációs-, algoritmus-, kód-, implementációs-, stb. minták) szerinti probléma megoldás megtanítása.

Tantárgyi tematika:

Algoritmus mintákra (programozási tételekre) történő visszavezetés, mint programtervezési módszer. Egész számok intervallumára megfogalmazott programozási tételek. Feladatok megoldásának visszavezetése programozási tételekre és azok implementálása C++ nyelven. Beágyazott visszavezetésssel (tétel a tételben) előállított megoldás alprogramokra bontása, majd ennek implementálása függvények és modulokra bontás segítségével, kivételkezeléssel. Rekurzív függvények kibontása (gyakorlaton csak az A, B és T szakirányon). Adattípus fogalma, típus megvalósítás és annak kódolása osztály segítségével. Nevezetes típus-szerkezetek. A felsoroló típus fogalma, nevezetes felsoroló típusok. Programozási tételek általánosítása felsoroló típusokra. Feladatok megoldása egyedi felsorolókkal (gyakorlaton csak az A, B és T szakirányon).

Követelmény:

A gyakorlaton megszerezhető összevont számonkérésű jegy, amely az előírt feltételek teljesítése esetén a félévközben megszerzett jegyek átlaga (A B és T szakirányon a papíros zárthelyi eredménye duplán számít).

B, T szakirány:

- hetente plusz-mínusz minősítésű kisdolgozat, amelynek nem lehet az összesített eredménye negatív

- 3 darab zárthelyi (a 3. évfolyam szintű): 0-5-ig értékelt (a gyakorlati jegybe kétszeres súllyal számítanak bele). A 2. és 3. zárthelyinek legalább 2-esnek kell lenni, 1 zárthelyit lehet javítani.

- 3 darab beadandó feladat: mindhárom beadandó legalább 2-es. A minőségi követelményeknek megfelelő, és határidőre bemutatott beadandó ér 5-öst, ami késés esetén hetente eggyel csökken. A feladat része a részleges fejlesztői dokumentáció is.

- 1 darab három fokozatú (1,3,5) minősítésű félév végi géptermi zárthelyi (nem lehet 1-es), 1 javítási lehetőséggel

A, C, E szakirány:

- hetente plusz-mínusz: nem lehet a végeredmény negatív

- 3 darab zárthelyi (a 3. évfolyam szintű): 0-5-ig értékelt. A 2. és 3. zárthelyinek legalább 2-esnek kell lenni, 1 zárthelyit lehet javítani.

- 2 darab beadandó feladat: mindkét beadandó legalább 2-es. A minőségi követelményeknek megfelelő, és határidőre bemutatott beadandó ér 5-öst, ami késés esetén hetente eggyel csökken. A feladat része a részleges fejlesztői dokumentáció is.

- 2 darab géptermi zárthelyi: első 0-5-ig értékelt, a második háromfokozatú (1,3,5) minősítésű félév végi géptermi zárthelyi (nem lehet 1-es), 1 javítási lehetőséggel

Előfeltétel:

Programozási alapismeretek

B és T1 szakirányon a Diszkrét Matematika I.

Óraszám:

2 óra előadás; 2 óra táblásgyakorlat, az A, C és E szakirányon további 2 óra laborgyakorlat, valamint mindenhol heti 1 óra konzultációs gyakorlat a házi feladatok bemutatására.

 

Egyetemi jegyzet:

Gregorics, T.: Programozás 1. kötet Tervezés. ELTE Eötvös Kiadó, 2013.

Gregorics, T.: Programozás 2. kötet Megvalósítás. ELTE Eötvös Kiadó, 2013.

 

Ajánlott irodalom:

Bjarne Stroustrup: A C++ programozási nyelv (Kiskapu)

Herbert Schildt: C/C++ Referenciakönyv (Panem Kft.) 1998.

Andrei Alexandrescu, Herb Sutter: C++ kódolási szabályok. Kiskapu Kft. 2005.

Kent Beck: Implementációs minták. Panem 2008.

Fóthi Ákos: Bevezetés a programozáshoz. ELTE Eötvös Kiadó. 2005.