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+P	Category	Status	
4	2+0+1+0	speciality	optional	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
COJOCAR Grigoreta Sofia	Ph.D.	Lect.	Computer Science	*		*	

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
. Ivar Jacobson and Pan-Wei Ng. Aspect-Oriented Software Development with Use Cases. Addison-Wesley, 2004.
2. Ramnivas Laddad. AspectJ in Action. Enterprise AOP With Spring Applications, Second Edition, Ed. Manning, 2009.
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 (Spring AOP for Spring).
    10-12. Different crosscutting concerns and their implementation using AOP.
    12-14.Aspect-Oriented Software Development. Design Patterns and AOP

Labs:
   The students have to design and implement a medium size application using the aspect oriented paradigm. They also have to write an AOP report in which they describe the AOP extension for a chosen programming language (C, C++, C#, etc.)	

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

VIII. Assessment
The final assessment method is a practical exam, consisting in using AOP for a medium size application.
The final mark will be obtained as:
A.  Lab activity: 50%
B.	Practical exam: 30%
C.	AOP Report 20 %	

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

	Dean,							Chair head,
	Professor Tambulea Leon, PhD			Professor Parv Bazil, PhD

	Date,							Course responsible,
	December,18 , 2011					Lect. COJOCAR Grigoreta Sofia, Ph.D.