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	Metode avansate de programare	

Félév	Órák: C+S+L	Kategória	Típus	
3	2+1+2	specialitate	obligatorie	

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.	Limbaje şi Metode de Programare	*			

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
* consolidarea deprinderilor de analiza si proiectare a sistemelor soft prin invatarea unui proces liniar simplu de analiza si proiectare orientata obiect
* insusirea unor elemente de baza ale limbajului de modelare UML
* insusirea unor sabloane de proiectare care se folosesc pentru structurarea logica a aplicatiilor
* aplicarea unor sabloane standard privind alocarea responsabilitatilor pentru obiecte (care obiect sa aiba o anumita functie/responsabilitate?)
* invatarea limbajului Java
* insusirea unor metode de proiectare care s-au aplicat in procesul de construire a unor biblioteci Java
* insusirea unor cunostinte de baza pentru crearea programelor Java cu interfete grafice utilizator	

IV. A tantárgy tartalma
1. Limbajul si platforma Java
- Platforme: Java 
- Elemente sintactice de baza
- Prezentare comparativa cu C++

2. Clase si obiecte
- Clase si asocieri
- Diagrame de clase si obiecte
- Structurarea pe pachete/spatii de nume a tipurilor
- Tratarea exceptiilor

3. Relatii intre clase
- Asocieri, agregari si compuneri
- Mostenire
- Interfete si implementarea interfetelor

4. Biblioteci de clase utile
- Sabloane de proiectare: comanda si decorator
- Incapsularea tipurilor primitive in obiecte
- Liste si tabele de corespondenta
- Algoritmi de cautare si sortare

5. Biblioteci pentru intrari-iesiri
- Sabloane de proiectare: adaptare, obiect persistent
- Fluxuri de date binare
- Fluxuri de date orientate pe caractere
- Obiecte serializabile

6. Construirea interfetelor grafice utilizator
- Sabloanele de proiectare: compunere si $metoda sablon$
- Interfete utilizator abstracte awt (java.awt) si swing (javax.swing)
- Ferestre si meniuri swing (javax.swing)
- Componente grafice: buton, cutie de text, eticheta si containere de componente
- Dispunerea si aranjarea componentelor in containere

7. Tratarea evenimentelor
- Sablonul de proiectare observator/publica-subscrie
- Evenimente pentru ferestre
- Evenimente pentru butoane si meniuri

8. Separarea prezentarii de model
- Sabloane de proiectare: separare domeniu-prezentare si model pentru prezentare
- Componente grafice de tip lista si tabel; Decoratori pentru defilarea continutului acestora (javax.swing)
- Modele si evenimente asociate listelor si tabelelor

9. Elemente avansate pentru construirea interfetelor utilizator
- Sabloane de proiectare: model-prezentare-control, control pentru fereastra si control pentru aplicatie
- Desenarea pe interfete grafice utilizator
- Tratarea evenimentelor mouse

10. Un proces liniar de dezvoltare orientat obiect
- Analiza cerinte: cazuri de utilizare, descrierea scenariilor
- Analiza: model conceptual si evenimente sistem
- Proiectare: diagrame de interactiuni intre obiecte, diagrame de clase (rafinarea modelului conceptual)
- Implementare: programe Java

11. Alocarea responsabilitatilor
- Sabloane generale de alocare a responsabilitatilor: expert, creator, control, cuplare slaba, coeziune ridicata
- Folosirea sabloanelor in faza de proiectare
- Alte sabloane de proiectare: polimorfism, indirectare, fabricare obiecte

12. Structurarea logica a aplicatiilor pe straturi/nivele
- Straturile unei aplicatii: prezentare, domeniu si sursa de date
- Sabloane pentru stratul/nivelul domeniu: model procedural si model obiectual
- Surse de date: organizarea tabelara a datelor in fisiere text si corespondenta intre diagrame de obiecte si organizari tabelare a datelor

13. Persistenta obiectelor
- Identitatea obiectelor si sabloane de corespondenta intre domeniu si surse de date
- Acces rapid la obiectele persistente (gestiune in memorie - cache)
- Relatii intre obiecte si incarcarea intarziata a obiectelor si sablonul inlocuitor	

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., Design Patterns - Elements of Reusable Object-Oriented Software, Massachusets, Addison-Wesley, 1994. 
4. Larman, C.: Applying UML and Design Patterns: An Introduction to OO Analysis and Design, Berlin: Prentice Hall, 2000.
5. Fowler, M., Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.
6. ***, The Java Tutorial, SUN Microsystems, Inc, 2004. http://java.sun.com/docs/books/tutorial/index.html

VI. Az oktatói tevékenység heti tematikája

VII. Alkalmazott didaktikai módszerek

VIII. Értékelés
Nota finala este calculata astfel:
A. Activitatea de laborator: 30%
B. Lucrare scrisa: 35%
C. Proba practica: 35%
Lucrarea scrisa si proba practica sunt sustinute in timpul sesiunii ca si examen final. 
Lucrarea scrisa consta din intrebari teroretice iar proba practica din rezolvarea unei 
probleme pe calculator. 	

IX. Kiegészíto könyvészet

	Dékán,						Tanszékvezeto,

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