Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - linia de studiu română
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0004	Metode avansate de programare	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
3	2+1+2+0	specialitate	obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
COJOCAR Grigoreta Sofia	Dr. 	Lect.	Informatică	*	*	*	

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	
CHISALITA-CRETU Camelia		Universitatea Babes-Bolyai	Asistent		*	*	

III. Obiectivele disciplinei
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 
Invatarea limbajului Java
Insusirea unor cunostinte de baza pentru crearea programelor Java cu interfete grafice utilizator
Deprinderea folosirii frameworkului Spring pentru dezvoltarea unei aplicatii de complexitate medie	

IV. Conţinutul disciplinei
1. Limbajul si platforma Java
2. Clase si obiecte
3. Relatii intre clase
4. Biblioteci de clase utile
5. Construirea interfetelor grafice utilizator
6. Un proces liniar de dezvoltare orientat obiect
7. Structurarea logica a aplicatiilor pe straturi
8. Persistenta obiectelor	

V. Bibliografie
1. Eckel, B., Thinking in Java, 4th Edition, New York: Prentice Hall, 2006.
2. Larman, C.: Applying UML and Design Patterns: An Introduction to OO Analysis and Design, Berlin: Prentice Hall, 2004.
3. Fowler, M., Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.
4. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns – Elements of Reusable Object Oriented Software, Ed. Addison Wesley, 1994.
5. Walls, Craig, Spring in Action, Third Edition, Ed. O’Reilley,  2011.
6. Kent Beck, Test Driven Development: By Example, Ed. Addison-Wesley Professional, 2002.
***, Tutoriale Java http://download.oracle.com/javase/tutorial/
***, Documentatie Spring, http://www.springsource.org	

VI. Tematica activităţilor didactice pe săptămâni
C1. Introducere in analiza si proiectarea orientata obiect (determinarea cerintelor, cazuri de utilizare).
     Introducere in Java. 
C2. Clase si obiecte Java 
      Test-driven development
C3.  Mostenire
       Clase abstracte
       Interfete si implementarea interfetelor
C4. Tratarea exceptiilor
      Generics
C5. Pachete, modificatori de acces
      Clase interioare
       Tipul enum
      Biblioteca cu structuri de date java.util
      Analiza cerintelor (model conceptual) 
C6. Biblioteci pentru intrari-iesiri (java.io si java.nio)
       Fluxuri de date binare,  Fluxuri de date orientate pe caractere
     Obiecte serializabile
     Proiectarea unei aplicatii pe 3 nivele
C7-C8. Construirea interfetelor grafice utilizator 
         Interfete utilizator abstracte awt (java.awt) si swing (javax.swing)
         Ferestre si meniuri swing (javax.swing)
       Componente grafice: buton, cutie de text, eticheta, liste, tabele si containere de componente
       Dispunerea si aranjarea componentelor in containere
       Tratarea evenimentelor 
C9. Sablone de proiectare (Abstract Factory, Factory Method, Singleton, Composite, Decorator, Command, Iterator, Observer, Strategy, Template Method)
     Sabloane GRASP (Expert, Creator, Coeziune ridicata, Cuplare slaba, Controller)
     MVC: model-prezentare-control, control pentru fereastra si control pentru aplicatie
C10. Aplicatii sablon Observer,         Adnotari 
       JDBC,     Validarea datelor persistente
C11. Introducere in XML (structura unui document XML)
        Beans
        Introducere in Spring (IoC, injectarea dependintelor)
C12. Spring: obiecte pentru accesarea datelor persistente (DAO), 
        Spring si JDBC
C13. Desenarea pe interfete grafice utilizator
       Tratarea evenimentelor mouse
C14. Surse de date: organizarea tabelara a datelor in fisiere text si corespondenta intre diagrame de obiecte si organizari tabelare a datelor
       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

Seminar 1. Programe simple Java
Seminar 2. Proiectarea si implementarea structurilor de date in Java
Seminar 3. I/O in Java. Studiu de caz
Seminar 4. Interfete grafice
Seminar 5. Sablonului Observer. Studiu de caz
Seminar 6. Proiectarea si implementarea unei aplicatii folosind framework-ul Spring
Seminar 7. Proiectarea si implementarea nivelului de persistenta folosind baze de date

Laborator
L1. Program simplu Java
L2-L4. Structuri de date in Java si Unit Testing folosind JUnit
L5. Tratarea exceptiilor
L6. I/O
L7. Interfete grafice simple
L8-L10. Aplicatie de complexitate medie cu interfata grafica.
L11-L12. Folosirea sablonului Observer
L13-L14. Dezvoltarea unei aplicatii de complexitate medie folosind Spring si baze de date.	

VII. Metode didactice folosite
Prelegeri, expuneri, conversatii, exercitii, studiu individual.	

VIII. Evaluare
Nota finala este calculata astfel: 
A. Activitatea de laborator: 40% 
B. Lucrare scrisa: 25%
C. Proba practica: 35%
Lucrarea scrisa consta din intrebari teroretice iar proba practica din rezolvarea unei probleme pe calculator. 	

IX. Bibliografie suplimentară

	Decan,							Sef de catedra,
   	Prof. Dr. Tambulea Leon				Prof. Dr. Parv Bazil

	Data,							Titular curs,
	December, 18 , 2011					Lect. Dr. COJOCAR Grigoreta Sofia