| Person in charge: | Jordi Delgado Pin (jdelgado |
| Other: | Alberto Rubio Gimeno (albert |
| ECTS Credits | Department | Type | Requirements | Teaching Languages | ||||
|---|---|---|---|---|---|---|---|---|
| 6.0 | LSI |
|
Pre-requisit IES
Pre-requisit PROP |
|
||||
Professors
| ||||||||
| Weekly hours dedication | T : 2.0 | P : 0.0 | L : 2.0 | AA : 5.6 | AD : 0.4 |
Philosophy and origins. Encapsulation, members private / (protected) / public, inheritance, polymorphism, early / late binding. Patterns. Smalltalk, learning the language and the Pharo environment.
What is reflection?. Types of reflection: Introspection, intercession, reification. Implications of reflection for a programming language. Reflection in object-oriented programming.
Using java.lang.reflect and Smalltalk. Access to classes members at runtime. Patterns and Reflection. Creating reflective objects. Code Generation at runtime.
Encapsulation of cross-cutting concerns, dynamic and static. Join points, pointcuts and aspects. Weaving mechanisms
Implementation of the concepts considered in the general description of AOP in the context of the Java and Smalltalk programming languages: Join points, pointcuts, aspects, advices, weaving mechanisms, etc..
Classes vs. prototypes. Inheritance vs. cloning. Delegation. Closures and techniques associated with their use.
| Activity | Evaluative Activity | T | P | L | AA | AD |
| Activity | Evaluative Activity | Theory hours | Problem hours | Lab hours | Independent Learning Hours | Directed Learning Hours |
| Review of Object Oriented Programming: Generalities | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| 2.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2.0 | |||
|
Alumn: The student should pay attention to the lecture and he/she should work through the exercises suggested by the lecturer. Goals:Contents
| ||||||||
| Introduction to Smalltalk | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| 2.0 | 0.0 | 4.0 | 0.0 | 0.0 | 6.0 | |||
|
Alumn: The student should pay attention to the lecture and he/she should work through the exercises suggested by the lecturer. Goals:Contents
| ||||||||
| Reflection: General concepts | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| 2.0 | 0.0 | 2.0 | 10.0 | 2.0 | 16.0 | |||
|
Alumn: The student should pay attention to the lecture and he/she should work through the exercises suggested by the lecturer. Goals:Contents
| ||||||||
| Reflection in Java (java.lang.reflect) and Smalltalk | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| 10.0 | 0.0 | 8.0 | 15.0 | 0.0 | 33.0 | |||
| Practical exercise | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| - | - | 0.0 | 0.0 | - | 0.0 | |||
| Theory test | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| - | - | 2.0 | 10.0 | - | 12.0 | |||
| Aspect Oriented Programming: General concepts | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| 2.0 | 0.0 | 2.0 | 10.0 | 2.0 | 16.0 | |||
|
Alumn: The student should pay attention to the lecture and he/she should work through the exercises suggested by the lecturer. Goals:Contents
| ||||||||
| AspectJ: AOP in Java and Phantom: AOP in Smalltalk | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| 8.0 | 0.0 | 6.0 | 15.0 | 0.0 | 29.0 | |||
|
Alumn: The student should pay attention to the lecture and he/she should work through the exercises suggested by the lecturer. Goals:Contents
| ||||||||
| Prototype based programming | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| 4.0 | 0.0 | 6.0 | 14.0 | 0.0 | 24.0 | |||
| Final test | T | P | L | AA | AD | Total | ||
|---|---|---|---|---|---|---|---|---|
| - | - | - | 10.0 | 2.0 | 12.0 | |||
| Total per type | T | P | L | AA | AD | Total |
| 30.0 | 0.0 | 30.0 | 84.0 | 6.0 | 150.0 |
Teaching the course is structured in lectures and laboratory sessions.
Teachers will use lectures to introduce the essential contents of the course. In the laboratory sessions the contents of the course will be brought to the computer by carrying out practical problems. The laboratory classes will be a continuation of the lectures, where new concepts will be implemented as they appear in lectures.
Grading the course will consist of two theoretical tests (T1 and T2), one mid-course and the other at the end, and one medium-sized practical work (P), plus some consideration of other aspects mainly related to participation (Pa) in class and directed activities (AD).
Then, the evaluation method would be:
0.6 * Theory + Practice * 0.25 + 0.1 * (Pa+AD) + 0.05 (teamwork)
where:
Theory: 0.4 * T1 + 0.6 * T2
Teamwork:
Evaluated using a simple rubric that each group tutor group uses
to rank different aspects of teamwork of every member of the group.
http://download.oracle.com/javase/6/docs/technotes/guides/reflection/index.html
http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/rivard/rivard.html
http://www.eclipse.org/aspectj/
http://pleiad.dcc.uchile.cl/research/software/phantom
https://developer.mozilla.org/es/JavaScript