Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Informatică
Programul de studii: Informatică - în limba engleză
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MID0034	Aspect-Oriented Programming	

Semester	Hours: C+S+L	Category	Status	
6	2+0+2	speciality	optional	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
COJOCAR Grigoreta Sofia	PhD	Lect.	Programming  Languages and Methods	*		*	

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
To assimilate basic knowlegde of:
* aspect oriented paradigm
* development of software systems using aspect oriented programming	

IV. Course contents
   * Introduction: What is AOP? Crosscutting concerns, basic concepts.    
   * Examples of crosscutting concerns (aspects). 
    * The AspectJ language:join points, pointcuts, advices,  aspects.
    * Contract checking: pre-condition, post-condition, condition enforcement.
    * Inheritance and Overriding of Advice and pointcuts.
    * Reflection in AspectJ.
    * Various aspect-oriented approaches.
    * Aspect-Oriented Software Development.
    * Design Patterns and AOP	

V. Bibliography
1. Ivar Jacobson and Pan-Wei Ng. Aspect-Oriented Software Development with Use Cases. Addison-Wesley, 2004.
2. Ramnivas Laddad. AspectJ in Action: Practical Aspect-Oriented Programming. Manning, 2003.
3. Robert Filman, Tzilla Elrad, Siobhan Clarke and Mehmet Aksit. Aspect-Oriented Software Development. Addison-Wesley, 2004. 
4. Siobhan Clarke and Elisa Baniassad. Aspect-Oriented Analysis and Design: The Theme Approach. Addison-Wesley, 2005.	

VI. Thematic of didactic activities per weeks
Courses:   
 1. Introduction: What is AOP? Crosscutting concerns, basic concepts, examples of crosscutting concerns (aspects). 
   2. – 5. The AspectJ language:join points, pointcuts, advices,  aspects.
   6.Contract checking: pre-condition, post-condition, condition enforcement.
    7. Inheritance and Overriding of Advice and pointcuts. Reflection in AspectJ.
    8.-9. Various aspect-oriented approaches.
    10. Aspect-Oriented Software Development.
11.	Design Patterns and AOP
12.	Recap
Labs:
   The students have to design and implement a medium size application using the aspect oriented paradigm.	

VII. Didactic methods used
Exposition, discussions, case studies, exercises, homework assignments.	

VIII. Assessment
The final assessment method is a practical  exam, consisting in  implementation of medium size application using the aspect oriented paradigm.
The final mark  will be obtained as:
A.  Lab activity: 60%
B.  Practical exam: 40%

IX. Additional references
5. AspectJ Project: http://www.eclipse.org/aspectj/	

	Dean,							Chair head,

	Date,							Course responsible,
	13.03.2009					Lect. COJOCAR Grigoreta Sofia, PhD