"Babes-Bolyai" University of Cluj-Napoca
Faculty of Mathematics and Computer Science

Advanced programming methods
Code
Semes-
ter
Hours: C+S+L
Credits
Type
Section
MI036
4
2+1+2
8
compulsory
Informatică
MI036
4
2+1+1
5
compulsory
Matematică-Informatică
MI036
4
2+1+1
5
compulsory
Matematici Aplicate
MI036
3
2+1+2
7
compulsory
Tehnologie Informatica
Teaching Staff in Charge
Lect. LAZAR Ioan, ilazar@cs.ubbcluj.ro
Lect. NICULESCU Virginia, Ph.D., vniculescu@cs.ubbcluj.ro
Lect. DARVAY Zsolt, Ph.D., darvay@cs.ubbcluj.ro
Aims
Acquisition of the methods of data abstractisation 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. Object Oriented Analysis and Design
Unified Modelling Language (UML)
Use cases
Static models
Dynamic models
Object Oriented Development Processes
Linear and iterative processes
Development planning based on use cases
Two tier applications
General Responsibility Assignement Software Patterns (GRASP)
Expert and creator design patterns
Low coupling and high cohesion
Controller

3. Designing a Framework for Applications with Graphical User Interfaces
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

4. 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
References
1. B. Eckel, Thinking in Java, 2000, http;//www.mindview.net/
2. B. Eckel, Thinking in Patterns, 2001, http;//www.mindview.net/
3. E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, Massachusets, 1994.
4. C. Larman, Applying UML and Design Patterns: An Introduction to OO Analysis and Design Prentice Hall, 2000
5. M. Priestley, Practical Object Oriented Design, McGraw-Hill, Cambridge, 1996.
6. Online Java Tutorial: http://www.develop.com/
7. Java tutorial: http://java.sun.com/tutorial/
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