Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Master
SUBJECT

Code	Subject	
MID1032	Design Patterns in Java	

Section	Semester	Hours: C+S+L	Category	Type	
Optimization of computational models- in Hungarian	1	2+2+0		compulsory	
Interdisciplinary Mathematics - in Hungarian	1	2+0+2	speciality	compulsory	
Optimization of computational models- in Hungarian	1	2+0+2	speciality	compulsory	

Teaching Staff in Charge	Lect. DARVAY Zsolt, Ph.D., darvay@cs.ubbcluj.ro	
Aims	Profound study on the theory and concepts of object oriented programming. Improvement of  the ability of object oriented design, using patterns. Applying the Java programming language for applications containing design patterns.	
Content	1. Introduction to object oriented programming.
2. Introduction to the Java programming language.
3. Object oriented programming in Java.
4. The concept of the design pattern.
5. A case study.
6. Creational design patterns (Abstract Factory, Builder, Factory Method, Prototype, Singleton).
7. Structural design patterns (Adapter, Bridge, Composite, Decorator).
8. Structural design patterns (Façade, Flyweight, Proxy).
9. Behavioral design patterns (Chain of Responsibility, Command, Interpreter, Iterator).
10. Behavioral design patterns (Mediator, Memento, Observer).
11. Behavioral design patterns (State, Strategy, Template Method, Visitor).
12. Using creational patterns in Java.
13. Using structural patterns in Java.
14. Using behavioral patterns in Java.	
Bibliography	1. ***:Data and Object Factory Patterns, (http://www.dofactory.com/patterns/Patterns.aspx).
2. Cooper J.W.: The Design Patterns Java Companion, Addison-Wesley, 1998, (http://www.patterndepot.com/put/8/JavaPatterns.htm). 
3. Eckel, B.: Thinking in Java (3rd ed.), New York: Prentice Hall, 2002 (http://www.bruceeckel.com).
4. Eckel, B.: Thinking in Patterns. Problem-Solving  Techniques using Java (http://www.bruceeckel.com). 
5. Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995 (bibliotecă). 
	
Assessment	The final grade is determined by the performance of the students on the following subjects:
G1: Participation in class discussion (course and seminar) = 25%
G2: Project (to be finished on week 14) = 25%
G3: Practical exam = 25%
G3: Written exam = 25%
The final grade: GF =  (G1+G2+G3+G4)/4.
To enter into the written examination is necessary to have: G1>=5, G2>=5 and G3>=5. The course is completed successfully if all the grades are >= 5.