fişa disciplinei
1. Date despre program
1.1 Instituţia de învăţământ superior	Universitatea Babes-Bolyai Cluj-Napoca	
1.2 Facultatea	Facultatea de Matematica si Informatica	
1.3 Departamentul	Departamentul de matematica	
1.4 Domeniul de studii	Informatica	
1.5 Ciclul de studii	Licenta	
1.6 Programul de studiu / Calificarea	Informatica	

2. Date despre disciplină
2.1 Denumirea disciplinei	Metode avansate de programare	
2.2 Titularul activităţilor de curs	Lect. Dr. Cojocar Grigoreta	
2.3 Titularul activităţilor de seminar	Lect. Dr. Cojocar Grigoreta	
2.4 Anul de studiu	2	2.5 Semestrul	3	2.6. Tipul de evaluare	E	2.7 Regimul disciplinei	Obligatoriu	

3. Timpul total estimat (ore pe semestru al activităţilor didactice)
3.1 Număr de ore pe săptămână	5	Din care: 3.2 curs	2	3.3 seminar/laborator	1 sem / 2 lab	
3.4 Total ore din planul de învăţământ	70	Din care: 3.5 curs	28	3.6 seminar/laborator	42	
Distribuţia fondului de timp:	ore	
Studiul după manual, suport de curs, bibliografie şi notiţe	10	
Documentare suplimentară în bibliotecă, pe platformele electronice de specialitate şi pe teren	10	
Pregătire seminarii/laboratoare, teme, referate, portofolii şi eseuri	20	
Tutoriat	5	
Examinări 	10	
Alte activităţi: ..................	-	
3.7 Total ore studiu individual	55	
3.8 Total ore pe semestru	125	
3.9 Numărul de credite	5	

4. Precondiţii (acolo unde este cazul)
4.1 de curriculum	•	Programare orientata obiect
•	Structuri de date si algoritmi	
4.2 de competenţe	•	Conceptele programarii orientate obiect	

5. Condiţii (acolo unde este cazul)
5.1 De desfăşurare a cursului	•		
5.2  De desfăşurare a seminarului/laboratorului	•	Laboratoare pe calculator	

6. Competenţele specifice acumulate
Competenţe profesionale	•	Cunoasterea si intelegerea conceptelor si notiunilor de baza din proiectarea si implementarea unui sistem soft.
•	Capacitatea de a lucra individual pentru rezolvarea unor probleme
•	Experienta de a programa intr-un limbaj orientat obiect	
Competenţe transversale	•	Capacitatea de a folosi tehnici orientate obiect pentru sisteme din viata reala
•	Abilitati avansate de programare orientata obiect	

7. Obiectivele disciplinei (reieşind din grila competenţelor acumulate)
7.1 Obiectivul general al disciplinei	•	Intelegerea si folosirea conceptelor programarii orientate obiect la dezvoltarea unor aplicatii soft  de complexitate medie
•	Intelegerea si folosirea unor sabloane de proiectare pentru dezvoltarea aplicatiilor.
•	Deprinderea dezvoltarii unor aplicatii cu interfete grafice
•	Deprinderea folosirii unor frameworkuri pentru dezvoltarea aplicatiilor soft.	
7.2 Obiectivele specifice

	•	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.	

8. Conţinuturi
8.1 Curs	Metode de predare	Observaţii	
C1 . Introducere in analiza si proiectarea orientata obiect (determinarea cerintelor, cazuri de utilizare).     Introducere in Java.	Expuneri: concepte, exemple, studii de caz		
C2. Clase si obiecte Java  
     Test-driven development	Expuneri: concepte, exemple, studii de caz		
C3.  Mostenire  
     Clase abstracte
       Interfete si implementarea interfetelor	Expuneri: concepte, exemple, studii de caz		
C4. Tratarea exceptiilor      
     Generics	Expuneri: concepte, exemple, studii de caz		
c5. Pachete, modificatori de acces   
   Clase interioare   
  Biblioteca cu structuri de date java.util     
  Analiza cerintelor (model conceptual)	Expuneri: concepte, exemple, studii de caz		
6. Biblioteci pentru intrari-iesiri 
    Proiectarea unei aplicatii pe 3 nivele	Expuneri: concepte, exemple, studii de caz		
C7-C8. Construirea interfetelor grafice utilizator  
            Tratarea evenimentelor	Expuneri: concepte, exemple, studii de caz		
C9. Sablone de proiectare. Sabloane GRASP 
     MVC: model-prezentare-control, control pentru fereastra si control pentru aplicatie	Expuneri: concepte, exemple, studii de caz		
C10. Aplicatiile sablonului Observer,
         Adnotari.  JDBC. Validarea datelor persistente	Expuneri: concepte, exemple, studii de caz		
C11. Introducere in XML, Java Beans  
       Introducere in Spring 	Expuneri: concepte, exemple, studii de caz		
C12. Spring DAO,  Spring si JDBC	Expuneri: concepte, exemple, studii de caz		
C13. Desenarea pe interfete grafice utilizator       Tratarea evenimentelor mouse	Expuneri: concepte, exemple, studii de caz		
C14. Persistenta obiectelor	Expuneri: concepte, exemple, studii de caz		
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.
7.	***, Tutoriale Java http://download.oracle.com/javase/tutorial/
8.	***, Documentatie Spring, http://www.springsource.org
	
8.2 Seminar 	Metode de predare	Observaţii	
1. Programe simple Java	Discutii, exemple, studii de caz	Seminarul este de 2 ore o data la 2 saptamani	
2. Proiectarea si implementarea structurilor de date in Java	Discutii, exemple, studii de caz		
3. I/O in Java. Studiu de caz	Discutii, exemple, studii de caz		
4. Interfete grafice	Discutii, exemple, studii de caz		
5. Sablonul Observer. Studiu de caz	Discutii, exemple, studii de caz		
6. Proiectarea si implementarea unei aplicatii folosind framework-ul Spring	Discutii, exemple, studii de caz		
7. Proiectarea si implementarea nivelului de persistenta folosind baze de date	Discutii, exemple, studii de caz		
8.3  Laborator			
L1. Program simplu Java	Discutii, evaluare		
L2-L4. Structuri de date in Java si Unit Testing folosind JUnit	Discutii, evaluare		
L5. Tratarea exceptiilor	Discutii, evaluare		
L6. I/O	Discutii, evaluare		
L7. Interfete grafice simple	Discutii, evaluare		
L8-L10. Aplicatie de complexitate medie cu interfata grafica.	Discutii, evaluare		
L11-L12. Folosirea sablonului Observer	Discutii, evaluare		
L13-L14. Dezvoltarea unei aplicatii de complexitate medie folosind Spring si baze de date.	Discutii, evaluare		
Bibliografie	
9.	Eckel, B., Thinking in Java, 4th Edition, New York: Prentice Hall, 2006.
10.	Larman, C.: Applying UML and Design Patterns: An Introduction to OO Analysis and Design, Berlin: Prentice Hall, 2004.
11.	Fowler, M., Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.
12.	E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns – Elements of Reusable Object Oriented Software, Ed. Addison Wesley, 1994.
13.	Walls, Craig, Spring in Action, Third Edition, Ed. O’Reilley,  2011.
14.	Kent Beck, Test Driven Development: By Example, Ed. Addison-Wesley Professional, 2002.
15.	***, Tutoriale Java http://download.oracle.com/javase/tutorial/
16.	***, Documentatie Spring, http://www.springsource.org

9. Coroborarea conţinuturilor disciplinei cu aşteptările reprezentanţilor comunităţii epistemice, asociaţiilor profesionale şi angajatori reprezentativi din domeniul aferent programului
•	Cursul respecta recomandarile curriculei ACM si IEEE pentru studiile de informatica.
•	Cursul apare in planurile de invatamant a celor mai importante universitati din tara si strainatate.
•	Firmele de soft considera continutul cursului important pentru dobandirea unor abilitati medii de programare. 

10. Evaluare
Tip activitate	10.1 Criterii de evaluare	10.2 metode de evaluare	10.3 Pondere din nota finală	
10.4 Curs	Cunoasterea conceptelor de baza	Examen scris  	25%	
	Aplicarea conceptelor de baza	Examen practic	35%	
10.5 Seminar/laborator	Folosirea conceptelor introduse la curs pentru rezolvarea unor probleme concrete	Evaluarea calitatii si completitudinii temelor primite	40%	
10.6 Standard minim de performanţă	
•	Pe o scara de la 1 la 10:
o	Nota la examenul scris cel putin 4.
o	Nota la examenul practic cel putin 5.
o	Media finala trebuie sa fie cel putin 5 (pe o scara de la 1 la 10).

Data completării		  Titular de curs		               Titular de seminar
..........................		Lect. Dr. Cojocar Grigoreta		Lect. Dr. Cojocar Grigoreta

Data avizării în departament			                          Director de departament	
...........................................						…............................