A tantárgy adatlapja
1. A képzési program adatai
1.1 Felsőoktatási intézmény	Babeș-Bolyai Tudományegyetem	
1.2 Kar 	Matematika és Informatika	
1.3  Intézet	Magyar Matematika és Informatika	
1.4 Szakterület	informatika	
1.5 Képzési szint	mesteri	
1.6 Szak / Képesítés	Informatikai modellek optimalizálása	

2. A tantárgy adatai
2.1 A tantárgy neve	Tervezési minták Javaban	
2.2 Az előadásért felelős tanár neve	Darvay Zsolt	
2.3 A szemináriumért felelős tanár neve	Darvay Zsolt	
2.4 Tanulmányi év	1	2.5 Félév	1	2.6. Értékelés módja	vizsga	2.7 Tantárgy típusa	kötelező –szak	

3. Teljes becsült idő (az oktatási tevékenység féléves óraszáma)
3.1 Heti óraszám	3	melyből: 3.2 előadás	2	3.3 szeminárium/labor	1	
3.4 Tantervben szereplő össz-óraszám	42	melyből: 3.5 előadás	28	3.6 szeminárium/labor	14	
A tanulmányi idő elosztása:	óra	
A tankönyv, a jegyzet, a szakirodalom vagy saját jegyzetek tanulmányozása	70	
Könyvtárban, elektronikus adatbázisokban vagy terepen való további tájékozódás	7	
Szemináriumok / laborok, házi feladatok, portofóliók, referátumok, esszék kidolgozása	70	
Egyéni készségfejlesztés (tutorálás)	7	
Vizsgák	4	
Más tevékenységek: ..................		
3.7 Egyéni munka össz-óraszáma	158	
3.8 A félév össz-óraszáma	200	
3.9 Kreditszám	8	

4. Előfeltételek (ha vannak)
4.1 Tantervi	•	Nincs.	
4.2 Kompetenciabeli	•	Az objektumorientált programozás alapvető fogalmainak ismerete.
•	Osztályok és objektumok a Java programozási nyelvben.	

5. Feltételek (ha vannak)
5.1 Az előadás lebonyolításának feltételei	•	Táblával és videoprojektorral felszerelt előadóterem.	
5.2 A szeminárium / labor lebonyolításának feltételei	•	Számítógépes terem, Java.	

6. Elsajátítandó jellemző kompetenciák
Szakmai kompetenciák	•	Nagyobb méretű feladatokat megoldása Javaban objektumorientált tervezéssel.
•	A tervezési minták használatának megértése, újrafelhasználható kód fejlesztése érdekében.
•	Annak felismerése, hogy egy gyakorlati feladatra melyik tervezési minta alkalmazható, és a probléma megoldása ennek segítségével.
•	Mások által megírt Java kódrészleteket felhasználása egy adott feladat megoldására.	
Transzverzális kompetenciák 	•	A szoftverrendszerek tervezése és az építészetben fellelhető minták közötti hasonlóság felismerése.
•	Matematikai problémák objektumorientált megoldása.	

7. A tantárgy célkitűzései (az elsajátítandó jellemző kompetenciák alapján)
7.1 A tantárgy általános célkitűzése	•	Az objektumorientált programozás és tervezés elmélyítése a Java programozási nyelv, és az alapvető tervezési minták segítségével.	
7.2 A tantárgy sajátos célkitűzései

	•	Az objektumorientált tervezésére vonatkozó képesség fejlesztése tervezési mintákkal.
•	A Java programozási nyelv használata a tervezési feladatok megoldására.	

8. A tantárgy tartalma
8.1 Előadás	Didaktikai módszerek	Megjegyzések	
1. A tervezési minta fogalma.
- Bevezető.
- Leírás.
- Katalógus.
- Osztályozás.	Előadás
		
2. A tervezési minták minták alapjai.
- Objektumorientált szoftverfejlesztési módszertanok
- A tervezési minták elméleti megközelítése
- Példa tervezési mintára. Az Abstract Factory (Elvont gyár)	Előadás		
3. Esettanulmány (szövegszerkesztő tervezése).
- Tervezési problémák
- Dokumentumszerkezet
- Formázás	Előadás		
4. Esettanulmány (szövegszerkesztő tervezése).
- A felhasználói felület finomítása
- Több megjelenítési szabvány támogatása
- Több ablakkezelő rendszer támogatása	Előadás		
5. Esettanulmány (szövegszerkesztő tervezése).
- Felhasználói műveletek
- Helyesírás-ellenőrzés és elválasztás	Előadás		
6. Létrehozó tervezési minták.
- Abstract Factory (Elvont gyár)
- Builder (Építő)	Előadás		
7. Létrehozó tervezési minták.
- Factory Method (Gyártófüggvény)
- Prototype (Prototípus)
- Singleton (Egyke)	Előadás		
8. Szerkezeti tervezési minták.
- Adapter (Illesztő)
- Bridge (Híd)
- Composite (Összetétel)	Előadás		
9. Szerkezeti tervezési minták.
- Decorator (Díszítő)
- Facade (Homlokzat)	Előadás		
10. Szerkezeti tervezési minták.
- Flyweight (Pehelysúlyú)
- Proxy (Helyettes)	Előadás		
11. Viselkedési tervezési minták.
- Chain of Responsibility (Felelősséglánc)
- Command (Parancs)
- Interpreter (Értelmező)	Előadás		
12. Viselkedési tervezési minták.
- Iterator (Bejáró)
- Mediator (Közvetítő)
- Memento (Emlékeztető)	Előadás		
13. Viselkedési tervezési minták.
- Observer (Megfigyelő)
- State (Állapot)
- Strategy (Stratégia)	Előadás		
14. Viselkedési tervezési minták.
- Template Method (Sablonfüggvény)
- Visitor (Látogató)	Előadás		
Könyvészet
1. ***:Data and Object Factory Patterns, (http://www.dofactory.com/patterns/Patterns.aspx).
2. Cooper J.W.: The Design Patterns Java Companion, Addison-Wesley, 1998, (http://www.patterndepot.com/put/8/JavaPatterns.htm). 
3. Eckel, B.: Thinking in Java (3rd ed.), New York: Prentice Hall, 2002 (http://www.bruceeckel.com).
4. Eckel, B.: Thinking in Patterns. Problem-Solving  Techniques using Java (http://www.bruceeckel.com). 
5. Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995 (könyvtár).	
8.2 Szeminárium / Labor	Didaktikai módszerek	Megjegyzések	
Sz1. Az Abstract Factory tervezési minta alkalmazása (labirintus létrehozása)	feladat, egyéni munka, párbeszéd		
Sz2. A Decorator tervezési minta alkalmazása (festmény díszítése kétféle képpen)	feladat, egyéni munka, párbeszéd		
Sz3. A Command tervezési minta alkalmazás (visszavonási művelet is)	feladat, egyéni munka, párbeszéd		
Sz4. Különböző tervezési minták alkalmazhatóságának felismerése az adott feladat alapján	feladat, egyéni munka, párbeszéd		
Sz5. Projekt (tervezési rész) 	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
Sz6. Projekt (megvalósítási rész)	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
Sz7. Projekt kiértékelése	feladat, egyéni munka, párbeszéd, gyakorlati projekt		
Könyvészet
1. Angster E.: Objektumorientált tervezés és programozás. Java. Vol. I-II, 4KÖR Bt, 2001-2002.
2. Keogh, J.: Java demystified, McGraw-Hill Osborne Media, 2004.
3. Stelting S., Maassen, O.: Applied Java Patterns, Prentice Hall, 2001.	

9. A tárgy tartalmának összhangba hozása az episztemikus közösségek képviselői, a szakmai egyesületek és a szakterület reprezentatív munkáltatói elvárásaival.
•	A tantárgy tartalma összhangban van a fontosabb egyetemeken oktatott tervezési mintákra vonatkozó előadásokkal. 

10. Értékelés
Tevékenység típusa	10.1 Értékelési kritériumok	10.2 Értékelési módszerek	10.3 Aránya a végső jegyben	
10.4 Előadás 	Az előadás tartalmának folyamatos elsajátítása	Prezentáció készítése	15%	
	Az elméleti anyag ismerete	Írásbeli vizsga	25%	
10.5 Szeminárium / Labor	Szemináriumi tevékenység	Szemináriumi gyakorlatok és házi feladatok	15%	
	Egy összetett alkalmazás készítése	Projekt	20%	
	A gyakorlati anyag elsajátítása	Gyakorlati vizsga	25%	
10.6 A teljesítmény minimumkövetelményei	
•	Az alapvető tervezési minták alkalmazása objektumorientált tervezési feladatokra.
•	 Az egyes tervezési mintáknak megfelelő Java kód megírása.
•	Egy adott feladat esetén, az alkalmazható tervezési minta felismerése.

Kitöltés dátuma			Előadás felelőse			Szeminárium felelőse
					Dr. Darvay Zsolt, adjunktus	          Dr. Darvay Zsolt, adjunktus
2012. szept. 25.			...............................			...................................

Az intézeti jóváhagyás dátuma				Intézetigazgató	
2012. szept. 28.						Dr. Szenkovits Ferenc, egyet. docens
..........................