Carleton University

School of Computer Science

95.501 Foundations of Object-Oriented Programming Languages

Fall 2001

Instructor:

Dwight Deugo 
Room 5356 HP 
Phone Number: 8438 
Office Hours: 
    Tuesday 1:30-2:30
    Friday 2:30-3:30 
email: deugo@scs.carleton.ca 
 

Course Outline:

Object-Oriented programming, design and implementation from first principles to advanced concepts. Possible topics include: need-driven designing, metaleval programming, visual programming, event-oriented programming, web-related applications, subtyping/subclassing/is relationships, futures, and proxies, distributed applications.

Warning: Due to problems with the course calendar, the abstract for 95.501 does not adequately reflect the course's content. In addition to the object-oriented programming paradigm, the course will also cover the functional and the logic programming paradigms and how the three relate to one another. The unifying theme between the three paradigms is their ability to create abstractions, and after taking the course you will be in a better position to create effective and powerful object-oriented abstractions. The computer language used for the course will be Scheme. If  you are taking the course to learn Java,C++, or Smalltalk you should take 95.105, 95.106, or 95.202 instead. If you want a 'pure' object-oriented graduate course, 95.514 would be a better selection. Note, 95.501 is no longer a prerequisite for 95.514.

Prerequisites:

Significant Programming Experience


News:


Notes

MIT Scheme Reference Manual
MIT Scheme String Functions
Scheme Language Specification: The Revised Report on the Algorithmic Language Scheme

Structure and Interpretation of Computing Programs


Projects (Due Nov 30, 2001)

  1. Enable metacircular interpreter to load into itself multiple times
  2. Extend metacircular interpreter with other special forms (let*, delay, force,  cons-stream, car-stream, cdr-stream,  make sure lazy pairs and lists, and thunks will print).
  3. Develop Scheme development environment using Eclipse
  4. Developer metacircular interpreter in another language, such as Java
  5. Deveop Prolog interpreter in another language, such as Java or Scheme


Assignments

Darrel's TA Page and Assignment Guidelines


Projects:

 
Student Name
Project Demos Monday Dec 17,
(10 a.m. - 1 p.m.)
Please pick a time on the hour or in 15 minute increments
Housein Houreich Prolog emulator in
Java
12:45 p.m.
Ghada Hany Badr Extend metacircular interpreter 10:00 a.m.
Andrew Forward Scheme editor using Eclipse
Nancy Samaan Extend metacircular interpreter 12:15 p.m.
Yvonne Bleischwitz Graphs 10:30 a.m.
Jamileh Yousefi Extend metacircular interpreter 10:15 a.m.
Mao Han Develop metacircular interpreter in PERL 11:00 a.m.
Duan Develop metacircular interpreter in Java Noon
Tim Bergsma Extend metacircular interpreter 1:00 p.m.
Xiuli Zhang Develop metacircular interpreter in Java 12:30 p.m.

Yunlan Wang
Developer metacircular interpreter in Java 11:15 a.m.
David Xu Develop metacircular interpreter in Java 11:45 a.m.
Mahdi Kazemi Extend metacircular interpreter with other special forms 10:45 a.m.
Zhenghong Zhu Extend metacircular interpreter 11:30 a.m.
Ron Arnold Extend metacircular interpreter 1:15 p.m.


Marks:


The End


Copyright © 2001 School of Computer Science
Last updated August, 15, 2001
Please email comments and questions to Dr. Deugo