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

Advanced Programming Methods
Code
Semes-
ter
Hours: C+S+L
Type
Section
MID0004
3
2+1+2
compulsory
Informatică
MID0004
3
2+0+2
compulsory
Matematică informatică
Teaching Staff in Charge
Lect. LAZAR Ioan, Ph.D.,  ilazarcs.ubbcluj.ro
Assoc.Prof. NICULESCU Virginia, Ph.D.,  vniculescucs.ubbcluj.ro
Lect. DARVAY Zsolt, Ph.D.,  darvaycs.ubbcluj.ro
Asist. MIHAILA Cristina Aneta,  anetacs.ubbcluj.ro
Asist. CHISALITA-CRETU Maria Camelia,  cretucs.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
References
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
Links: Syllabus for all subjects
Romanian version for this subject
Rtf format for this subject