Principles of Object-oriented Programming Languages (2011-2012)
Graduate Level (Master)
Course professor: Dr. Andy Kellens
Course assistant: Veronica Uquillas Gomez
Course Contents
The lectures consist of a general introduction to object-oriented programming languages and the various sub-paradigms within the field of OO such as class-based languages, prototype-based languages, actor languages, and so on. These various styles of OO will be approached from a conceptual point of view by means of the construction of simple models for each of the OO sub-paradigms that are discussed in the course. To this end, we follow a constructive approach in which we extend the Scheme programming language using macros such that we obtain an executable model for each of these styles that serves as a basis for further experimentation. Furthermore, during the lectures students will also be introduced to various research domains that are related to object-oriented languages, such as an introduction to aspect-oriented programming and declarative meta programming.
During the practical sessions, the students will put the acquired knowledge of OO languages into practice by means of exercises that serve to gain insights into the basic concepts of object-orientation such as inheritance and polymorphism, as well as more advanced topics such as meta programming. In these practical sessions, we use the Smalltalk language, a dynamically-typed, class based languages. Smalltalk's simple syntax, open implementation and elaborated meta-programming protocol turn it into an ideal platform for experimenting with object-oriented languages and gaining practical experiences in object-oriented programming.
Evaluation
The examination of this course consists of two separate parts:
- The student has to write an original essay in which a critical comparison is given of two object-oriented programming languages. The student will have to orally defend her/his essay. (2/3 of the total mark for the course)
- The student has to implement a small object-oriented system in Pharo Smalltalk in which he/she demonstrates to having fully grasped the concepts of object-oriented programming. (1/3 of the total mark for the course)
In order to pass for this course, the student will have to hand in both parts. Students that did not succeed (< 10/20) for one or both parts during the first examination session, will have to repeat during the second examination session.
Both report and project must be done individually.
