COM1204 Object-Oriented Design

Spring 2001 Course Syllabus and Calendar

Professor Futrelle -- College of Computer Science, Northeastern U., Boston, MA

(Version of 4/24/2001)

In the calendar below, the Memorial Day holiday on May 28th is marked in red. The final exam period, June 4-9, is marked in green. You can also see the full Northeastern University Academic Calendar, which is a PDF document.

       March 2001
 S  M Tu  W Th  F  S
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
       April 2001
 S  M Tu  W Th  F  S
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 
       May 2001
 S  M Tu  W Th  F  S
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
       June 2001
 S  M Tu  W Th  F  S
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Note: The reading assignments in your textbook, listed throughout the syllabus below, should be completed before coming to the class meeting they apply to.

Last major revision finished May 14th.


Weeks 1-3. Java basics and introduction to the Project

Week 1

Thurs. March 29th
Introduction to the course.
On-line demo of Java code including Javadoc.
 
Week 2

Mon. April 2nd
Read Chapter 1.
Javadoc can be used to document abstraction by parameterization and by specification. Make sure you understand the connection.
Tues. April 3rd
Read Chapter 2.
Important new concepts here are the notions of references to objects and mutability. (Scheme uses references to objects, if you've used Scheme.)
Method call semantics is also an important fundamental concept to learn (in C++ it would correspond to using reference parameters for all calls).
Thurs. April 5th
Read Chapter 3.
 
Week 3

Sun. April 8th
Assignment #1 due, emailed by midnight.
 
Mon. April 9th
Read Chapter 4 on Exceptions.
Knowing about Exceptions is a necessity in Java, if for no other reason than some library methods require that their exceptions be caught or specified.
Tues. April 10th
This is a long and important chapter on data abstraction so we will devote two classes to it.
Here is a more fine-grained description of what you need to know in this chapter: In Secs. 5.1 through 5.3, you do not need to understand the material on the Poly class. It is important to understand the the IntSet class and records, because we will be using classes similar to IntSet in the project. Also, we are essentially skipping Sec. 5.5, so look it over but do not try to understand it in any detail.
The book describes data abstraction as "the most important abstraction mechanism."
Read Chapter 5 through Sec. 5.5, pg. 108.
Thurs. April 12th
Finish reading Chapter 5.

Weeks 4 and 5: Brief Introduction to Iterators -- More in depth on the Project

Week 4

Monday. April 16th
I will discuss the IntSet and extensions of it for use in the project (various sections of Chap. 5).
We'll also discuss multiple classes for single modules, e.g., Base using Connection and Phone and Base using Message.
Tues. April 17th
Iterators, Chapter 6, are important, general and useful mechanism that is built into Java. Iterators are already defined by the language for the various Collection classes. Note in Chapter 6 that the PolyGen iterator is a private static inner class. The entire class is invisible outside of the Poly class, but an instance of it can be passed and each instance contains a variable n to keep track for hasNext().
 
Thurs. April 19th
Testing strategies for Java code, especially for module interaction.
 
Fri. April 20th
Assignment #2 due by 4pm -- 161CN. Problems based on the textbook.
 
Week 5

Mon. April 23rd
Assignment #3 due by midnight <-- was delayed until May 1. The Project: Some implementation and the interaction of modules.
 
Tues. April 24th
 
Thurs. April 26
QUIZ #1. (was cancelled --- Moved to May 3rd) Similar in style to Assignment #2, but covering all stressed and/or assigned material in Chapters 1 through 7. More details here.
 

Weeks 6 and 7:

Week 6

Mon. April 30th
 
Tues. May 1st
Project Assignment #3 due today by midnight.
Thurs. May 3rd
QUIZ #1. Answers here.
 
Week 7

Mon. May 7th
Go over the Quiz.
 
Tues. May 8th
Discuss writing modular code, using private methods.
 
Thurs. May 10th
Chapter 9 on Specifications
Chapter 10 on Testing and Debugging

Weeks 8 and 9:

Week 8

Mon. May 14th
Continue discussions of project code and Chapters 9 and 10.
 
Tues. May 15th
Review for the Midterm.
Detailed notes available for Midterm preparation!
Project discussions.
 
Thurs. May 17th
Midterm Exam.
 
Week 9

Mon. May 21st
Go over the Midterm.
Tues. May 22nd
The last two weeks will focus on the projects.
The many ideas we've learned in the book will be applied to project design and implementation.
Thurs. May 24th
Continued discussion of the project.
 

Week 10: Project windup and some review for the Final Exam

Week 10

Mon. May 28th
MEMORIAL DAY -- HOLIDAY -- NO CLASSES
 
Tues. May 29th
Continued discussion of the project.
 
Thurs. May 31st
Last Class.
Review for the Final Exam.
 
 
Week 11

FINAL EXAM WEEK Monday June 4th through Saturday June 9th

Back to COM1204 Spring 2001 homepage Back to Professor Futrelle's homepage