_I_O_O_R_/2I1902
Advanced Issues in Object-ORientation

Short Description

The course teaches the underlying ideas and principles behind OO, compares how these ideas and principles have been realised in different languages (e.g., Smalltalk, Eiffel, Java and Python) and gives an orientation in new and neighbouring areas such as Aspect-Oriented Programming. Finally, the course briefly looks at how OO features such as message passing, polymorphism, dynamic binding, etc. can be implemented in a programming language.

Aim

While this course focuses on object-orientation and programming languages, this is not a course in programming. Students are required to have at least moderate programming skills beforehand. Our goal is to further the understanding of object-orientation, not to introduce it. Having successfully completed the course, the student should be able to:

The course will also overview some current research trends or problems in the area. The goal is to inspire the students to further their studies of the field, for example on a master level.

Syllabus

Prerequsites

Required prior knowledge: OO and programming in an OO language, preferably with an imperative core, such as Java is required. Moderate programming skills. It is good to know at least one procedure-oriented language such as Pascal or C, but it is not necessary.

You should be able to install programs on a computer, or at least be able to find the proper guidelines for installing a piece of software and follow them. You should also be able to learn the absolute basics of a few object-oriented programming languages on your own aided by manuals and tutorials, but with little or no teacher assistance.

Follow-up

AGILE, MOOG, TEME, DYPL, CISS.

Requirements

Assignments, individual and in group, 4 credits; Take-home exam 1 credit.

Required reading

Either or both of these books:

Additional papers and compendium.

Contact information: tobias@dsv.su.se