Programozás

Tantárgy célja:

Típus központú alkalmazások tervezése osztályokkal és felsorolóra kiterjesztett programozási tételek felhasználásával.

Objektum elvű alkalmazások tervezése UML diagramokkal, és ezen tervek objektum orientált nyelven történő implementálása és tesztelése.

Tantárgyi tematika:

A típus fogalma, felhasználói típus megvalósítása C++ nyelven osztállyal. Az objektum és az osztály fogalma. Objektum-orientált programozás ismérvei. Objektumok példányosítása, és másolása (sekély és mély másolás).

Típusok osztályozása a szerkezetük szerint. Gyűjtemények és azok feldolgozása. Felsorolók fogalma, típusa. Nevezetes felsorolók. Programozási tételek általánosítása felsorolókra. Feladatok megoldása felsorolókra fogalmazott programozási tételekre történő visszavezetéssel. Programozási tételekkel alkotott algoritmusok tesztelése. Egyedi felsorolók megvalósítása. Összefuttatás.

Objektumok közötti kapcsolatok ábrázolása objektum- és osztály diagrammal. A függőség, az asszociáció, az aggregáció, a kompozíció, és a származtatás és ezek C++ nyelvű megvalósítása. Feladatok megoldásának tervezése osztálydiagramokkal. Néhány nevezetes tervezési minta, mint például a sablonfüggvény, összetétel, egyke, stratégia, a híd, a bejáró, gyártófüggvény, elvont gyár.

Kód-újrafelhasználás objektum orientált eszközei. Programozási tételekkel alkotott algoritmusok implementálása egy osztály-sablon könyvtár kódjának felhasználásával

Objektumok viselkedésének tervezése együttműködési diagrammok, szekvencia diagrammok és állapot diagrammok segítségével. Párhuzamosan tevékenykedő objektumok C++ nyelvű megvalósítása. Aszinkron üzenetek és események kezelése.

 

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.

- 2 darab zárthelyi: 0-5-ig értékelt, egyiket lehet javítani.

- 3 darab beadandó feladat: mindhárom beadandó legalább 2-es. A követelményeknek megfelelő, és határidőre bemutatott beadandó ér 5-öst, ami késés esetén hetente eggyel csökken.

- 2 darab három fokozatú (1,3,5) minősítésű géptermi zárthelyi, egyiket lehet javítani.

Előfeltétel:

Programozási alapismeretek

Óraszám:

2 óra előadás; 2 óra táblásgyakorlat, 1 óra laborgyakorlat, 1 óra laborba beosztott konzultáció.

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.

Sike S., Varga L.: Szoftvertechnológia és UML. ELTE Eötvös Kiadó, 2003.

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.