Assignment Formatting Instructions
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.
Notes will be posted for every lecture. Single notes files often cover multiple lectures.
Week | Topics | Notes, Readings, and Links | Assignments |
---|---|---|---|
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 |