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

SYLLABUS

I. Date generale
Codul	Disciplina	
MID0016	Sabloane de proiectare	

Semestrul	Ore: C+S+L	Categoria	Statutul	
6	2+0+2	specialitate	opţională	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
PÂRV Bazil	Dr. 	Prof.	Limbaje şi Metode de Programare	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
La terminarea cursului, studenţii trebuie să:
a) cunoască şi înţeleagă şabloanele de proiectare fundamentale
b) fie capabili să identifice posibilele şabloane în faza de proiectare 
c) ştie să folosească combinaţii de şabloane de proiectare în rezolvarea unor probleme reale
d) posede abilităţile necesare pentru a realiza proiecte şi componente soft reutilizabile

IV. Conţinutul disciplinei
1. Introducere
1.1. Ce este un şablon de proiectare
1.2. Descrierea şabloanelor de proiectare
1.3. Catalogul şabloanelor de proiectare 
1.4. Probleme de proiectare rezolvate de şabloanele de proiectare
1.5. Cum se alege un şablon de proiectare
1.6. Cum se foloseşte un şablon de proiectare
2. Studiu de caz
2.1. Enunţul problemei
2.2. Probleme de proiectare
2.3. Structura documentului
2.4. Formatarea
2.5. Interfaţa cu utilizatorul
2.6. Mai multe standarde de aspect şi interacţiune
2.7. Mai multe sisteme de ferestre
2.8. Operaţii utilizator
2.9. Prelucrări analitice 
3. Şabloane creaţionale
3.1. Introducere
3.2. Abstract Factory
3.3. Builder
3.4. Factory Method
3.5. Prototype
3.6. Singleton
3.7. Concluzii
4. Şabloane structurale
4.1. Introducere
4.2. Adapter
4.3. Bridge
4.4. Composite
4.5. Decorator
4.6. Facade
4.7. Flyweight
4.8. Proxy
4.9. Concluzii
5. Şabloane comportamentale
5.1. Introducere
5.2. Chain of Responsibility
5.3. Command
5.4. Interpreter
5.5. Iterator
5.6. Mediator
5.7. Memento
5.8. Observer
5.9. State
5.10. Strategy
5.11. Template Method
5.12. Visitor
5.13. Concluzii

Prezentarea fiecărui şablon respectă etapele: scop, problema rezolvată, descrierea structurii (inclusiv diagrama UML), exemple (un exemplu structural şi cel puţin un exemplu real). 
Activităţi de laborator
Trei mini-proiecte, ce vor conţine folosirea şabloanelor de proiectare creaţionale, structurale şi respectiv comportamentale. Fiecare soluţie va fi implementată în două limbaje de programare diferite (Java, C#, Visual Basic 6.0, Visual Basic .NET, Python, etc).

Materialele de curs şi de laborator sunt disponibile pe serverul Win, în directorul \winPatterns

V. Bibliografie
1. COOPER, J.W.: The Design Patterns Java Companion, Addison-Wesley, 1998. 
2. COPLIEN, J.: Multi-Paradigm Design, PhD Thesis, Vrije Universiteit Brussel, 2000 [http://www.netobjectives.com/download/CoplienThesis.pdf].
3. ECKEL, B.: Thinking in Patterns with Java [http://www.bruceeckel.com].
4. GAMMA, E., R. HELM, R. JOHNSON, J.  VLISSIDES: Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
5. MARTIN, R.C.: Agile Software Development: Principles, Patterns, and Practices, Prentice-Hall, 2002.
6. STELTING, S., O. MAASSEN: Applied Java Patterns, Prentice Hall, 2001. 
7. Data and Object Factory Patterns, [http://www.dofactory.com/patterns/Patterns.aspx]

VI. Tematica activităţilor didactice pe săptămâni

VII. Metode didactice folosite

VIII. Evaluare
Nota finală va reflecta activitatea de laborator, calitatea mini-proiectelor realizate şi rezultatul la examenul scris (în ultima săptămână, la curs). Se acordă (pe o scală de notare cu 10 puncte):
1p din oficiu
1p prezenta la seminar/laborator
4p mini-proiectele realizate
4p examenul scris	

IX. Bibliografie suplimentară

	Decan,							Sef de catedra,

	Data,							Titular curs,
								Prof. Dr.  PÂRV Bazil