syllabus
1. Information regarding the programme
1.1 Higher education institution 	Babeş Bolyai University		
1.2 Faculty	Faculty of Mathematics and Computer Science		
1.3 Department	Department of Computer Science		
1.4 Field of study	Computer Science		
1.5 Study cycle	Master		
1.6 Study programme / Qualification 	Inginerie software		

2. Information regarding the discipline 
2.1 Name of the discipline	Framework design	
2.2 Course coordinator 	Lect. dr. Ioan Lazar	
2.3 Seminar coordinator	Lect. dr. Ioan Lazar	
2.4. Year of study	2	2.5 Semester		2.6. Type of evaluation	E	2.7 Type of discipline		

3. Total estimated time (hours/semester of didactic activities) 
3.1 Hours per week 	4	Of which: 3.2 course	2	3.3 seminar/laboratory	2	
3.4 Total hours in the curriculum 	48	Of which: 3.5 course	24	3.6 seminar/laboratory	24	
Time allotment:	hours	
Learning using manual, course support, bibliography, course notes	20	
Additional documentation (in libraries, on electronic platforms, field documentation) 	10	
Preparation for seminars/labs, homework, papers, portfolios and essays	23	
Tutorship	7	
Evaluations	20	
Other activities: ..................		
3.7 Total individual study hours 	80	
3.8 Total hours per semester	128	
3.9 Number of ECTS credits	8	

4. Prerequisites (if necessary)
4.1. curriculum	•	Software Engineering	
4.2. competencies	•	UML basic knoledge	

5. Conditions (if necessary)
5.1. for the course	•	-	
5.2.  for the seminar /lab activities	•	Laboratory with computers; high level programming language environment & CASE tools	

6. Specific competencies acquired 
Professional competencies	•	Understand how the modern frameworks are designed
•	To be able to apply framework design techniques for building frameworks	
Transversal competencies	•	Ability to apply framework design techniques to different real life problems

•	Improved programming & designing abilities	

7. Objectives of the discipline (outcome of the acquired competencies)
7.1 General objective of the discipline
	•	To introduce the student in advanced design techniques used to develop application frameworks.
•	To present some existing lightweight frameworks as a novel approach for building enterprise applications.	
7.2 Specific objective of the discipline
	•	To offer the student the opportunity to participate at designing a new framework during didactical activities.
•	To offer the student the instruments that will allow him/her to develop other small lightweight framework for different classes of applications.	

8. Content
8.1 Course	Teaching methods	Remarks	
1. Rapid Application Development Frameworks for Web Applications
•	Grails
•	Spring Roo	Exposure: description, explanation, examples, discussion of case studies		
2. Rapid Application Development Frameworks for Web Applications
•	Pluggable mechanisms of RAD frameworks
•	Comparison of RAD frameworks	Exposure: description, explanation, examples, discussion of case studies		
3. Frameworks based on JavaScript
•	Node.js
•	Rhino	Exposure: description, explanation, examples, discussion of case studies		
4. Frameworks based on JavaScript
•	Comparison of JavaScript frameworks
•	Creating extensions to existing frameworks	Exposure: description, explanation, examples, discussion of case studies		
5. Application frameworks for mobile devices
•	Examples: spring android, spring social
•	Creating new frameworks similar frameworks	Exposure: description, explanation, examples, discussion of case studies		
6. Applications Frameworks Based on DSLs for Mobile Applications
•	Example: mobl, applause
•	Creating new frameworks of this type	Exposure: description, explanation, examples, discussion of case studies		
7. Applications Frameworks Based on MDA for Mobile Applications
•	Examples: graphical designers of different application frameworks
•	UML concepts used by graphical designers
•	Comparison of graphical designers
•	Creating new graphical designers	Exposure: description, explanation, examples, discussion of case studies		
8.  Innovative Application Frameworks
•	Harrel's approach "Come let's play"	Exposure: description, explanation, examples, discussion of case studies		
9. Innovative Application Frameworks
•	How to build frameworks of type "Come let's play"	Exposure: description, explanation, examples, discussion of case studies		
10. Building a new framework using Eclipse
•	OSGi
•	Extension points and extensions
•	Eclise RCP	Exposure: description, explanation, examples, discussion of case studies		
11.  Building a new framework using Eclipse
•	Adding model-based features using Epsilon
•	Creating graphical editors
•	Generating code	Exposure: description, explanation, examples, discussion of case studies		
12. Building a new framework using Eclipse
•	Adding textual features using Xtext
•	Creating textual editors
•	Synchronizing textual and graphical editors	Exposure: description, explanation, examples, discussion of case studies		
Bibliography
1. Erich Gamma et al. Design Patterns: Elements of Reusable Object Oriented Software. Addison Wesley, 1995.
2. Erich Gamma and Kent Beck. Contributing to Eclipse: Principles, Patterns, and Plug-Ins. Addison Wesley, 2003.
3. Martin Fowler. Patterns of Enterprise Application Architecture. Addison Wesley, 2002.
4. Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition. Addison Wesley, 2003.
5. Michael Mahemoff. Ajax Design Patterns. O@Reilly, 2006.
6. Rod Johnson et al. Spring 2.0 Reference Documentation. 2006. http://www.springframework.org/
7. Stephen J. Mellor, Kendall Scott, Axel Uhl, and Dirk Weise. MDA Distilled: Principles of Model-Driven Architecture. Addison Wesley, 2004.	
8.2 Seminar / laboratory	Teaching methods	Remarks	
1. Rapid Application Development Frameworks for Web Applications	Dialogue, debate, case studies, examples, proofs		
2. Rapid Application Development Frameworks for Web Applications	Dialogue, debate, case studies, examples, proofs		
3. Frameworks based on JavaScript	Dialogue, debate, case studies, examples, proofs		
4. Frameworks based on JavaScript
 	Dialogue, debate, case studies, examples, proofs		
5. Application frameworks for mobile devices 	Dialogue, debate, case studies, examples, proofs		
6. Applications Frameworks Based on DSLs for Mobile Applications	Dialogue, debate, case studies, examples, proofs		
7. Applications Frameworks Based on MDA for Mobile Applications	Dialogue, debate, case studies, examples, proofs		
8.  Innovative Application Frameworks	Dialogue, debate, case studies, examples, proofs		
9.  Innovative Application Frameworks 
 	Dialogue, debate, case studies, examples, proofs		
10. Building a new framework using Eclipse
 	Dialogue, debate, case studies, examples, proofs		
11. Building a new framework using Eclipse	Dialogue, debate, case studies, examples, proofs		
12. Building a new framework using Eclipse	Dialogue, debate, case studies, examples, proofs		
Bibliography
1. Erich Gamma et al. Design Patterns: Elements of Reusable Object Oriented Software. Addison Wesley, 1995.
2. Erich Gamma and Kent Beck. Contributing to Eclipse: Principles, Patterns, and Plug-Ins. Addison Wesley, 2003.
3. Martin Fowler. Patterns of Enterprise Application Architecture. Addison Wesley, 2002.
4. Martin Fowler. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition. Addison Wesley, 2003.
5. Michael Mahemoff. Ajax Design Patterns. O@Reilly, 2006.
6. Rod Johnson et al. Spring 2.0 Reference Documentation. 2006. http://www.springframework.org/
7. Stephen J. Mellor, Kendall Scott, Axel Uhl, and Dirk Weise. MDA Distilled: Principles of Model-Driven Architecture. Addison Wesley, 2004.	

9. Corroborating the content of the discipline with the expectations of the epistemic community, professional associations and representative employers within the field of the program

•	The course respects the IEEE and ACM Curriculla Recommendations for Computer Science studies;
•	The course exists in the studying program of all major universities in Romania and abroad;
•	The content of the course is considered the software companies as important for advanced programming skills.	

10. Evaluation
Type of activity	10.1 Evaluation criteria	10.2 Evaluation methods	10.3 Share in the grade (%)	
10.4 Course	- know the basic principle of the domain;
- apply the course concepts
- problem solving	Written exam
	50%	
10.5 Seminar/lab activities	- be able to implement course concepts and algorithms
- apply techniques for different classes of programming languages	-Practical examination
-documentation
-portofolio
-continous observations	50%	
10.6 Minimum performance standards	
•	At least grade 5 (from a scale of 1 to 10) at both written exam and laboratory work.	

Date				Signature of course coordinator 	Signature of seminar coordinator
26.09.12			Lect. dr. Ioan Lazar		Lect. dr. Ioan Lazar

Date of approval  					  Signature of the head of department	
29.09.12							Prof. dr. Bazil Parv