CS 2102 (D15): Object-Oriented Design Concepts
Lectures and Assignments


Home | Staff and Office Hours | Lectures and Assignments | MyWPI | Software and Materials | Policies


Grading

Information about grading is on the policies page

Assignment Formatting Instructions


Due Dates (Exams, Homeworks, and Quizzes)

Exam 1 will be in-class (on paper) on Thursday, April 9.
Exam 2 will be in-lab (programming on computer) on Wednesday, Apr 29.
Exam 3 will be in-class (on paper) on Tuesday, May 5.

There will be roughly 3 quizzes during the term, done online through myWPI. Dates will be announced at least three days in advance of each quiz.

Homeworks will be due each week, usually on Tuesday night (11:59pm). Homeworks will cover material through Friday lecture, and will be posted each Wednesday. For some assignments, we will ask you to submit a small part of the assignment in advance (by Friday afternoon). Details will be on each individual assignment.


Class Schedule

Notes will be posted for every lecture. Single notes files often cover multiple lectures.

WeekTopicsNotes, Readings, and LinksAssignments
March 16-20 Migrating to Java Notes: Migrating to Java
Bloch Reading: Item 18
Bloch Reading: Item 19
Extra: For students without CS1101/1102
Extra: Graphical overview of 2102 topics
Extra: Recap and practice for week 1
Code: Friday's family tree code
Code: Family tree code with advanced use of constructors
Background Survey (in myWPI) -- due Thursday 11pm
Get a clicker from the ATC by class on Thursday, March 19
Lab 1 (new to Java)
Lab 1 (know Java)
Homework 1, parts 1 and 2 (Standard) (due Tuesday, March 24, 11:59pm)
Homework 1, parts 1 and 2 (Advanced) (due Tuesday, March 24, 11:59pm)
March 23-27 Abstract Classes
Abstract Datatypes (ADTs)
Interfaces and ADTs
Implementing Sets
Handout: Starter file for Monday
Notes (Monday): Abstract classes [PPTX | PDF ]
Notes (Tues/Thurs): Abstract Data Types; Sets
Notes: (Thurs/Fri): BSTs and AVL trees
Notes: (Fri) Implementing BSTs in Java
Extra: AVL trees applet
Extra: Recap for week 2
Extra: How ADTs, interfaces, etc fit together [PPT | PDF]
Bloch Reading: Item 18
Bloch Reading: Item 20
Lab 2 (new to Java)
Lab 2 advanced (know Java) -- if you found Monday's material very easy, skim the "new to Java" lab to make sure it has no surprises, then try this one
Homework 2 (Standard and Advanced) (due Tuesday, March 31, 11:59pm)
March 30 - Apr 3 BSTS as Sets
Java Lists
Encapsulation
Handout: Starter files for Monday BSTs, Lottery
Notes: Connecting BSTs and Isets
Notes: Lists in Java
Code: Starter file for Thursday
Notes: Encapsulation
Code: Code at the end of Thursday
Extra: Recap for week 3
Exam Prep: Midterm prep guide
Lab 3 Standard -- Design Practice
Lab 3 Standard -- Casts Practice
Lab 3 Advanced
Hwk 3 (due Tuesday, Apr 7, 11:59pm)
April 6-10 Heaps
Midterm (Thursday)
Exceptions (part 1)
Notes: Heaps
Extra: Article on Why getters and setters are evil
Notes: Data Abstraction (Generics)
Code: Code at the start of Friday.
Notes: Exceptions
Lab 4 (basic input/output in Java)
Lab 4 Advanced
During lab, you may also work on sample midterm questions
Hwk 4 (everyone)
April 13-April 17 Exceptions (part 2)
Hashtables
Plan Composition
Exceptions notes continue from last week
Code: Tuesday starter file full, for computer work or single-page for paper notes
Notes: Hashtables
Bloch Reading: Items 26, 27
Lab 5 (Standard)
Lab 5 (Advanced--Infinite Trees)
Hwk 5
Apr 20-24 Graphs
No class M/Th
Code: Tuesday starter file
Notes: Graphs Intro
Code: Graphs code at end of Monday
Notes: Avoiding Infinite Loops
Code: Graphs with visited list
Code:
Graphs with checked flag in node
Lab 6
Alternative Lab 6 (Java's testing framework, JUnit)
Homework 6 (due Tuesday, Apr 28, 11:59pm)
Apr 27-May 1 Graphs
Mutation
No class Thursday
Exam Prep: Programming Exam prep guide
Exam Prep: Final prep guide
Notes: Challenges of Mutation
Notes: Returning Routes
Notes: Encapsulating Routes
 
May 4-5 Wrap Up
Final Exam
Exam Prep: Instructions page from final