Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Matematică
Programul de studii: Matematică informatică - linia de studiu maghiară
Limba de predare: Maghiară

SYLLABUS

I. Általános adatok
Kód	Tantárgy neve	
MID0004	Haladó szintű programozási módszerek
(Metode avansate de programare)	

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

II. Foá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.	Lect.	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 egységesített eljárás használatával továbbfejleszteni a szoftverrendszerek elemzésére és tervezésére vonatkozó ismereteket;
- az UML modellező nyelv alapvető elemeinek elsajátítása;
- egyes tervezési minták elsajátítása annak érdekében, hogy az alkalmazásokat ésszerűen tudjuk strukturálni;
- az objektumok felelősségére vonatkozó szabványos minták alkalmazása;
- a Java és C# programozási nyelvek alapjainak megtanulása;
- olyan tervezési módszerek módszerek elsajátítása, amelyeket sikerrel alkalmaztak Java és .NET könyvtárak tervezésében;
- grafikus felhasználói felülettel rendelkező, eseményvezérelt alkalmazások készítése Java nyelvben.	

IV. A tantárgy tartalma
1. A Java nyelv és platform. A .NET keretrendszer
2. A Java nyelv alapvető elemei és egyes UML jelölések
3. Interfészek és kivételkezelés
4. Bemeneti/kiviteli műveletek a Javaban
5. Grafikus felhasználói felület
6. A Model-View-Controller és egyéb tervezési minták
7. A programfejlesztés munkafázisai
8. GRASP tervezési minták
9. A konstrukció munkafázisa
10. Az alkalmazások logikai szerkesztése rétegek szerint. Perzisztens objektumok.
11. A C# programozási nyelv alapjai	

V. Könyvészet
1. Eckel, B., Thinking in Java (3rd ed.), New York: Prentice Hall, 2002.
2. Eckel, B., Thinking in Patterns with Java, MindView Inc, 2004.
3. Gamma, E., Helm, R., Johnson, R., Vlissides, J., Programtervezési minták. Újrahasznosítható elemek objektumközpontú programokhoz, Kiskapu, Addison-Wesley, 2004.
4. The Java Tutorial, SUN Microsystems, Inc, 2004.	

VI. Az oktatói tevékenység heti tematikája
(E1-E14 előadások, Sz1-Sz14 szemináriumok, L1-L14 laboratóriumok)

1. A Java nyelv és platform. A .NET keretrendszer. (E1)
- A Java nyelv általános jellemzői.
- A Java virtuális gép.
- Összehasonlítás a C++-al.

2. A Java nyelv alapvető elemei és egyes UML jelölések (E2+E3)
- osztályokra és közöttük lévő kapcsolatokra vonatkozó UML jelölések
- Java nyelv:
	- primitív és referencia típusok, tömbök
	- utasítások
	- osztályok és objektumok
	- alosztályok és öröklés
	- csomagok
	- Garbage Collector

3. Interfészek és kivételkezelés (E4)
- absztrakt osztályok
- interfészek
- a Template Method tervezési minta
- kivételkezelés Javaban

4. Bemeneti/kiviteli műveletek a Javaban (E5)
- adatfolyamok
- szerializáció
- a Decorator tervezési minta

5. Grafikus felhasználói felület (E6+E7)
-  AWT és Swing osztályhierarchia
- elrendezésmenedzserek
- eseményvezérelt programozás
- Swing-komponensek

6. A Model-View-Controller és egyéb tervezési minták (E8)
 - Az Observer tervezési minta
- A Strategy tervezési minta

7. A programfejlesztés munkafázisai (E9+E10)
- A felmérés és kidolgozás 
- Követelményfeltárás, használati esetek
- Analízis
- Tervezés

8. GRASP tervezési minták (E11)
- Expert
- Creator
- Low coupling
- High cohesion
- Controller

9. A konstrukció munkafázisa (E12)
- Osztályok, metódusok, jellemzők megvalósítása a tervezési diagramok alapján
- Csomagok, komponensek

10. Az alkalmazások logikai szerkesztése rétegek szerint. Perzisztens objektumok. (E13)
- Egy alkalmazás rétegei
- A Command tervezési minta
- A Broker és Bridge tervezési minták
- A Virtual Proxy tervezési minta

11. A C# programozási nyelv alapjai (E14)
- A Java és a C# összehasonlítása

Laboratóriumok:

L1: Absztrakt adattípus (tároló) – C++ megvalósítás
L2: Absztrakt adattípus megvalósítása Javaban
L3: Interfész alapú programozás
L4: Kivételkezelés – verem és várakozási sor megvalósítása
L5: B/k műveletek. Szerializáció.
L6: Egyszerű GUI alkalmazás.
L7: A Decorator tervezési minta – grafikus felület.
L8: Az Observer tervezési minta.
L9-L14: Projekt – az összes munkafázis megadása.	

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 = 40%
      Ebből :
         - laboratórium 25%
         - ellenőrző kérdések előadáson 15% 
J2. Írásbeli vizsga = 40%
J3. Gyakorlat = 20%
A gyakorlati vizsgara az utolsó tanítási héten, az írásbelire 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.
A J1 jegy a tanítási időszakban véglegesítődik. Későbbi módosításra nincs lehetőség. A vizsgára való jelentkezés feltétele J1 >= 5, a pótvizsgára pedig J1 >= 3.
A gyakorlati vizsga (J3) a pótvizsga időszakban megismételhető.
Végleges jegy: JEGY = (J1 * 40 + J2 * 40 + J3 * 20) / 100
Sikeres a vizsga, ha az összes jegy >= 5.	

IX. Kiegészíto könyvészet
1. Angster E. Objektumorientált tervezés és programozás. Java. I. és II. kötet, 4KÖR Bt., 2003, 2004.
2. Fowler, M., Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.
3. Larman, C.: Applying UML and Design Patterns: An Introduction to OO Analysis
and Design, Berlin: Prentice Hall, 2000.	

	Dátum,						Eloadás felelose,
		2007.05.12						Lect. Dr. DARVAY Zsolt