Fejlett programozás

(Advanced Programming)


  • 2 óra előadás (kollokvium), 2 laboratoriumi gyakolat (aláírás)
  • 5 kredit, őszi félév

Tantárgyleírás

A tárgy oktatásának célja (kialakítandó kompetenciák): A programozási munkához szükséges, széles körben alkalmazható C++ programozási nyelv, a hozzá tartozó szabványos sablonkönyvtár, a generikus programozási paradigma és különféle problémamegoldó technikák ismertetése.

Tematika

Objektum orientált programozás C++-ban (ismétlés)
Osztályok - új típusok létrehozása, mezők, metódusok, kiterjesztés (overloading)
Implementáció elrejtése, névterek
Újrafelhasználhatóság - kompozíció, aggregáció, öröklődés
Felüldefiniálás (overriding), polimorfizmus, kései kötés
Absztrakt és interfész osztályok, többszörös öröklődés, virtuális öröklődés
Hibakezelés kivételekkel
Generikus programozás
Sablonok (template-k)
Generikus programozási idiómák (traits, policy, curiously recurring template pattern)
Metaprogramozás
Kifejezés sablonok (expression templates)
A Standard Template Library (STL) megvalósítása és használata
STL alapok
Sztringek, adatfolyamok
Manipulatorok, effektorok
Generikus algoritmusok, predikátumok
Függvény objektumok, függvény objektum és pointer adapterek
Iterátorok, rendezés, keresés, módosítás
Generikus konténerek és adapterek

Ajánlott irodalom

1. FERENC RUDOLF: FEJLETT PROGRAMOZÁS, EGYETEMI TANANYAG
(http://tananyagfejlesztes.mik.uni-pannon.hu)
2. BRUCE ECKEL: THINKING IN C++ (http://mindview.net/Books/TICPP/ThinkingInCPP2e.html)
3. MATTHEW H. AUSTERN: GENERIC PROGRAMMING AND THE STL
4. BJARNE STROUSTRUP: A C++ PROGRAMOZÁSI NYELV

Tantárgy felelőse

Ferenc Rudolf adjunktus, PhD