Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: 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+1+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	*	*		
SIMON Károly	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élkitűzé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 programozási nyelvek alapjainak megtanulása;
- olyan tervezési módszerek elsajátítása, amelyeket sikerrel alkalmaztak Java 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
2. A Java nyelv alapvető elemei 
3. Osztályok és objektumok 
4. Származtatott osztályok 
5. Interfészek és kivételkezelés 
6. Osztálykönyvtárak és tervezési minták 
7. Bemeneti/kiviteli műveletek a Javaban 
8. Grafikus felhasználói felület 
9. Eseményvezérelt programozás
10. A Model-View-Controller és egyéb tervezési minták
11. A programfejlesztés munkafázisai
12. GRASP tervezési minták
13. A konstrukció munkafázisa
14. Az alkalmazások logikai szerkesztése rétegek szerint	

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 (E1)
- a Java nyelv általános jellemzői
- a Java virtuális gép
- csomagok a Javaban
- összehasonlítás a C++-al

2. A Java nyelv alapvető elemei (E2)
- primitív és referencia típusok, tömbök
- típuskonverzió
- kifejezések és utasítások
- paraméterátadás

3. Osztályok és objektumok (E3)
- osztályokra és közöttük lévő kapcsolatokra vonatkozó UML jelölések
- osztálysablonok
- belső osztályok
- inicializátor blokkok
- automatikus szemétgyűjtés

4. Származtatott osztályok (E4)
- alosztályok és öröklés
- metódus elfedés és felülírás
- kovariáns visszatérési érték

5. Interfészek és kivételkezelés (E5)
- absztrakt osztályok
- interfészek
- kivételkezelés a Javaban

6. Osztálykönyvtárak és tervezési minták (E6)
- a parancs és díszítő tervezési minták
- burkoló osztályok
- a lista adatszerkezet
- keresési és rendezési algoritmusok

7. Bemeneti/kiviteli műveletek a Javaban (E7)
- bináris adatfolyamok
- karakter alapú adatfolyamok
- szerializáció
- az illesztő tervezési minta
- perzisztens objektumok

8. Grafikus felhasználói felület (E8)
-  AWT és Swing osztályhierarchia
- elrendezésmenedzserek
- Swing-komponensek

9. Eseményvezérelt programozás (E9)
- eseményosztályok
- eseménydelegációs modell

10. A Model-View-Controller és egyéb tervezési minták (E10)
- a megfigyelő tervezési minta
- a stratégia tervezési minta

11. A programfejlesztés munkafázisai (E11)
- a felmérés és kidolgozás 
- követelményfeltárás, használati esetek
- analízis
- tervezés

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

13. A konstrukció munkafázisa (E13)
- osztályok, metódusok, jellemzők megvalósítása a tervezési diagramok alapján
- csomagok, komponensek

14. Az alkalmazások logikai szerkesztése rétegek szerint (E14)
- egy alkalmazás rétegei
- egyéb tervezési minták

Szemináriumok:

Sz1: Polimorfizmus.
Sz2: Egyszerű Java programok.
Sz3: Interfészek.
Sz4: Kivételkezelés.
Sz5: Az Observer tervezési minta.
Példa olyan alkalmazásra, amelyre az összes munkafázist tárgyaljuk:
Sz6: Követelményfeltárás, használati esetek, analízis.
Sz7: Tervezés, implementáció.

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 :
         - szeminárium 10%,
         - laboratórium 15%
         - 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.
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. 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ékán,						Tanszékvezető,

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