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	Kategória	Típus	
1	2+0+2	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	Programozási nyelvek és módszerek	*		*	

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ó alapismeretek.
-	A Java programozási nyelv.
-	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, L1-L14 laboratóriumok)

1. Az objektumorientált programozás alapjai.(E1+L1)
-	Bevezető.
-	Történeti áttenkités.
-	Programozási módszerek.
-	Adatvédelem. 
2. Java alapok. (E2+L2)
-	Adattípusok és változók.
-	Kifejezések és utasítások.
-	Alapvető utasítások.
-	Tömbök a Javaban. 
3. Objektumorientált alapfogalmak (E3+L3)
-	Osztályok. Absztrakt osztályok.
-	Interfészek.
-	Metódusok.
4. Öröklés és polimorfizmus. (E4+L4)
-	Öröklés.
-	A tagokhoz való hozzáférés.
-	A super kulcsszó.
-	Polimorfizmus.
5. Tárolók és kivételek. (E5+L5)
-	Tárolók.
-	Kivételek kiváltása.
-	A try, catch és finally blokkok. 
6. Állományok és folyamok. (E6+L6)
-	Folyamok.
-	Bemeneti/kiviteli műveletekre vonatkozó osztályok.
-	Objektumok szerializációja.
7. Grafikus interfészek (E7+L7).
-	AWT.
-	Swing komponensek.
-	Elrendezésmenedzserek.
8. Többszálú végrehajtás. (E8+L8)
-	Szálak létrehozása.
-	Prioritás. Szinkronizáció.
-	Szálak közötti kommunikáció.
9. A tervezési minta fogalma. (E9+L9)
-	Bevezető.
-	Leírás.
-	Katalógus.
-	Osztályozás. 
10. Esettanulmány. (E10+L10)
-	Tervezési minták bevezetése egy konkrét feladaton keresztül.
11. Létrehozó tervezési minták. (E11+L11)
-	Abstract Factory (Elvont gyár)
-	Builder (Építő)
-	Factory Method (Gyártófüggvény)
-	Prototype (Prototípus)
-	Singleton (Egyke)
12. Szerkezeti tervezési minták. (E12+L12)
-	Adapter (Illesztő)
-	Bridge (Híd)
-	Composite (Összetétel)
-	Decorator (Díszítő)
-	Facade (Homlokzat)
-	Flyweight (Pehelysúlyú)
-	Proxy (Helyettes)
13. Viselkedési tervezési minták. (E13+L13)
-	Chain of Responsibility (Felelősséglánc)
-	Command (Parancs)
-	Interpreter (Értelmező)
-	Iterator (Bejáró)
-	Mediator (Közvetítő)
-	Memento (Emlékeztető)
14. Viselkedési tervezési minták. (E14+L14)
-	Observer (Megfigyelő)
-	State (Állapot)
-	Strategy (Stratégia)
-	Template Method (Sablonfüggvény)
-	Visitor (Látogató)	

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 (laboratórium, ellenőrző kérdések előadáson) = 25% 
J2. Projekt (határidő a 14. hét) = 25%
J3. Gyakorlati vizsga = 25%
J4. Írásbeli vizsga = 25%
A gyakorlati vizsgára a 14. héten, az írásbeli vizsgára pedig 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, J2 >= 5 és J3 >= 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, illetve az egyetem FTP szerverén találhatók.	

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,
		2008.09.25						Dr. DARVAY Zsolt adjunktus