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

Code	Subject	
MID0004	Advanced Programming Methods	

Section	Sem.	Hours: C+S+L	Category	Type	
Computer Science	3	2+1+2	speciality	compulsory	
Mathematics and Computer Science	3	2+1+2	speciality	compulsory	
Information engineering	3	2+1+2	speciality	compulsory	

Teaching Staff in Charge	Lect. LAZAR Ioan, Ph.D., ilazar@cs.ubbcluj.ro
Lect. DARVAY Zsolt, Ph.D., darvay@cs.ubbcluj.ro
Lect. RUFF Laura Ildiko, Ph.D., laura@cs.ubbcluj.ro
Lect. COJOCAR Grigoreta Sofia, grigo@cs.ubbcluj.ro	
Aims	Acquisition of the methods of data abstraction and object oriented programming.	
Content	1. Java Language
   Fundamentals of the Java programming language
   Class libraries: Java classes, interfaces and packages
   Design by contract and exceptions handling

2. Designing a Framework for Applications with Graphical User Interfaces 
   Unified Modelling Language (UML)
     Use cases
     Static models
     Dynamic models
   Windows and graphical components
     Containers and elements: window, menu, label, text box, and button
     Composite design pattern
     Drawing: adaptor and decorater patterns
   Abstract commands
     Callback and command patterns
     Menus implementations 
   Event Handling
     Observer pattern
     Decouplig the sender and the receiver of an event
     Model-View-Controller pattern 
   Java Foundation Classes (JFC/Swing) 
     Windows and menus 
     Graphical components: labels, text boxes, and buttons
     Lists
   General Responsibility Assignement Software Patterns (GRASP)
     Expert and creator design patterns 
     Low coupling and high cohesion
     Controller

3. Business Logic Layer
   Class Libraries for Data Structures
     Abstract factory, template method, and iterator design patterns
     java.util package
   Input/output class libraries
     java.io package
     Serializable objects
   Building a persistent frameworks
     Brokers for persistent objects 
     Virtual proxy pattern
     Complex object instantiation
   Decoupling presentation and logic layers
     Model-View-Controller pattern
	
Bibliography	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
	
Assessment	The final assessment method is an exam. There will be two parts: 
a written part (consisting of a minicase study), 
and a practical part (consisting in a partial implementation of the minicase model).
The final mark (on a ten points scale, one point by default) will be obtained as:
A.  Lab activity: 4p
B.  Written exam (on paper): 3p
C.  Practical exam (at computer): 3p