CS 5010: Module 09

Module Overview

In this module, we will see how everything we've learned so far can be ported to an object-oriented context. We'll see how:

We'll see how a functional orientation and an object orientation are just two ways of looking at the same definitions.

Then we'll consider some of the subtleties of testing in an object-oriented setting.

We'll summarize by rewriting the Design Recipe for an object-oriented setting, and see how our deliverables should appear in your program.

Course Map

course map


No required readings.

Most of you know Java well enough to have considered using it for Problem Set 00.

Those of you who don't know Java need to learn it in a hurry. The tutorial resources listed below are designed to teach you what you need to know about Java.


You have been using DrRacket's editor to create and to edit Racket programs. For Java programs, you will need to use a different text editor such as Emacs or Eclipse.

We will test your Java programs using JDK 8 on a Linux machine or Macintosh. That means you may need to install JDK 8 on the machine you use for writing your CS 5010 programs, so you can test your programs using the same version of Java we will be using to test your programs. (If you are using a Linux machine, Java is probably already installed. If you are using a Macintosh, you probably installed Java at the beginning of the semester when you installed the XCode Command Line Tools. If you are using a Windows machine, you will probably have to install Java yourself.)

If you are unable to install JDK 8 on the machine you have been using for writing programs, you can test your programs on login.ccs.neu.edu.

We recommend the following tutorials, especially if you do not feel comfortable programming in Java or do not know how to invoke the Java compiler and runtime system from a Linux command line.


Problem Set

Problem Set 09 was assigned on Monday, 20 March.

For debugging: Click here to validate.