Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
Domeniul: Informatica
Programul de studii: Optimizarea modelelor informatice - în limba maghiară
Limba de predare: Maghiară

SYLLABUS

I. Általános adatok
Kód	Tantárgy neve	
MID1032	Tervezési minták Javaban 
(Sabloane de proiectare în Java)	

Félév	Órák: C+S+L+P	Kategória	Típus	
1	2+1+0+1	szaktárgy	kötelezö	

II. Főállásban az  Egyetem  oktatói
Név	Tudományos	Oktatói	Tanszék	Tevékenység	
	fokozat	státus		E	Sz	L	
DARVAY Zsolt	Dr. 	adjunktus	Magyar Matematika és Informatika	*	*		
Társult oktatók
Név	Tudományos	Intézmény	Állás	Tevékenység 	
	Fokozat		típusa	E	Sz	L	

III. A tantárgy célkituzései
-	Az objektumorientált programozás alapvető fogalmainak és elveinek elmélyítése.
-	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.
A tárgy sikeres teljesítése esetén a diákok képesek kell legyenek arra hogy:
-	nagyobb méretű feladatokat oldjanak meg Javaban objektumorientált tervezéssel;
-	megértsék a tervezési minták használatát, újrafelhasználható kód fejlesztése érdekében;
-	felismerjék, hogy egy gyakorlati feladatra melyik tervezési minta alkalmazható és ennek segítségével oldják meg a problémát;
-	mások által megírt Java kódrészleteket használjanak fel egy feladat megoldására.	

IV. A tantárgy tartalma
-	Az objektumorientált programozásra vonatkozó ismeretek elmélyítése.
-	A Java programozási nyelv használata.
-	Tervezési minták bevezetése egy konkrét feladaton keresztül.
-	Klasszikus programtervezési minták (GOF).	

V. 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). 	

VI. Az oktatói tevékenység heti tematikája
(E1-E14 előadások, Sz1-Sz7 szemináriumok, P1-P7 projekt)

1. A tervezési minta fogalma. (E1)
-	Bevezető.
-	Leírás.
-	Katalógus.
-	Osztályozás. 

2. A tervezési minták minták alapjai. (E2 + Sz1)
-	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)

3. Esettanulmány (szövegszerkesztő tervezése). (E3)
-	Tervezési problémák
-	Dokumentumszerkezet
-	Formázás

4. Esettanulmány (szövegszerkesztő tervezése). (E4 +Sz2)
-	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

5. Esettanulmány (szövegszerkesztő tervezése). (E5)
-	Felhasználói műveletek
-	Helyesírás-ellenőrzés és elválasztás

6. Létrehozó tervezési minták. (E6 + Sz3)
-	Abstract Factory (Elvont gyár)
-	Builder (Építő)

7. Létrehozó tervezési minták. (E7)
-	Factory Method (Gyártófüggvény)
-	Prototype (Prototípus)
-	Singleton (Egyke)

8. Szerkezeti tervezési minták. (E8 + Sz4)
-	Adapter (Illesztő)
-	Bridge (Híd)
-	Composite (Összetétel)

9. Szerkezeti tervezési minták. (E9)
-	Decorator (Díszítő)
-	Facade (Homlokzat)

10. Szerkezeti tervezési minták. (E10 + Sz5)
-	Flyweight (Pehelysúlyú)
-	Proxy (Helyettes)

11. Viselkedési tervezési minták. (E11)
-	Chain of Responsibility (Felelősséglánc)
-	Command (Parancs)
-	Interpreter (Értelmező)

12. Viselkedési tervezési minták. (E12 + Sz6)
-	Iterator (Bejáró)
-	Mediator (Közvetítő)
-	Memento (Emlékeztető)

13. Viselkedési tervezési minták. (E13)
-	Observer (Megfigyelő)
-	State (Állapot)
-	Strategy (Stratégia)

14. Viselkedési tervezési minták. (E14 + Sz7)
-	Template Method (Sablonfüggvény)
-	Visitor (Látogató)

P1-P7: projekt: egy nagyobb méretű alkalmazás készítése, amely egy gyakorlati feladat megoldására irányul, és amelyben több különböző tervezési mintát használunk fel.	

VII. Alkalmazott didaktikai módszerek
előadás, gyakorlati projekt, feladat, egyéni munka, párbeszéd.	

VIII. Értékelés
A végleges jegyet az alábbi összetevők alapján határozzuk meg:
J1: Tevékenység az órákon (szeminárium, ellenőrző kérdések előadáson) = 25% 
J2. Projekt (az utolsó szemináriumi óra, a 13. vagy 14. hét) = 25%
J3. Gyakorlati vizsga = 25%
J4. Írásbeli vizsga = 25%
A gyakorlati és az írásbeli vizsgára a vizsgaidőszakban kerül sor. Az írásbeli alapvetően elméleti jellegű, de feladatrészleteket is tartalmazhat. A gyakorlat megoldása számítógépen történik.
Végleges jegy: JEGY=(J1+J2+J3+J4)/4
A vizsgára való jelentkezés feltétele: J1 >= 5 és J2 >= 5.
Sikeres a vizsga, ha az összes jegy >= 5.
A tantárgyra vonatkozó egyéb információk a lokális hálózaton az L: meghajtón, az egyetem FTP szerverén és a www.infooktatas.ro címen találhatóak.	

IX. Kiegészítő 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.	

	Dékán,						Tanszékvezető,

	Dátum,						Előadás felelőse,
		2011.10.01						Dr. DARVAY Zsolt adjunktus