CS 591/491 - Advanced Object-Oriented Programming


Instructor:
    Darko Stefanovic
    Office: FEC 345C
    Email: darko@cs.unm.edu
    Phone: +1 505 2776561; Fax: +1 505 2776927
    Office hours: Mon/Wed 3-3:50, Tue/Thu 3:20-4

Class schedule: Mon/Wed 4-5:15


Class Documents: 
(You may download and print these documents for use
in the UNM CS 591/491 class, but not otherwise.)


Course announcement:
In the introductory part of the course, we will look at the present state of the Java programming language. A major revision (1.5) will be in place by this fall that provides so-called generics. We will ask if this feature was needed, and if it is being provided in the correct way. To help us understand this issue, we will study the essence of object-oriented programming using the first few chapters of ``Foundations of Object-Oriented Languages'' by Kim Bruce. There exist alternatives to Java, and we shall examine one - the newly announced language Scala. Its authors aimed for a clean, well-defined language design, without baggage, but interoperable with Java and/or C# libraries. Have they succeeded? There will be a programming component. Rather than implement an object-oriented programming language from scratch, which would not be feasible in one semester, we shall work within JikesRVM, an open-source virtual machine for Java bytecode, written in Java. Projects can include instrumentation, measurement, and modifications of the run-time systems and the compiler, investigation of architectural features, and language extensions.

General information files

  • The Scala Programming Language
  • Jikes RVM Home Page
  • Homework-related files

  • Homework 1, due Wednesday 31 August (PDF)
  • Project-related files