Week 1

Getting started with Java; communication; partnerships

Reading: "the environment" section in the Hacker School Manual
Think about how to make partnerships successful. Be ready to discuss on Jan 8.
Java basics.
Post your Java questions to our Piazza page by 11:00AM Wednesday, Jan 8.
Reading: Sections 1.1 and 1.2 from Koffman and Wolfgang
By class time on Friday, Jan 10
Reading: A discussion of static on the official Java web pages, and a nice discussion at caveofprogramming.com. Also, take a look at the reference pages for the Color and Math classes. What's static in this classes, and why?
By class time on Friday, Jan 10

Week 2

More Java; ADTs & interfaces

Sordid Sorted People.
Submit a zip file containing Person.java and PeopleSorter.java via Moodle by 11:55PM Monday, Jan 13.
In-class lab
Just for practice and question/answer opportunity. Nothing to hand in.
Partner feedback
Send via e-mail to Jeff by 1:00PM Friday, Jan 17.
Mazes, Part 1: loading and printing
Submit Maze.java (and supporting files, if any) via Moodle by 11:55PM Sunday, Jan 19.

Week 3

Visitor Monday, then linked lists

Reading: Sections 1.3-1.8 of Koffman and Wolfgang are optional. Skim, read, or use as a reference as needed.
Whenever
Reading: Sections 2.1, 2.2, 2.5, and 2.6.
By class time on Wednesday, Jan 22
Reading: Sections 3.1, 3.2, and 3.3.
By class time on Friday, Jan 24
Linked Lists
Submit LinkedList.java via Moodle by 11:55PM Sunday, Jan 26.

Week 4

Stacks and queues

Mazes, Part 2: solving the maze
Submit Maze.java (and supporting files, if any) via Moodle by 11:55PM Thursday, Jan 30.
Questions? Post on Piazza
Nothing to hand in. This is just a reminder that I'll watch Piazza and answer questions as the term continues.

Week 5

Time complexity and catch-up

Timing Java's collection classes
Submit your PDF report and supporting code via Moodle by 1:10PM Friday, Feb 7.
Reading: Section 2.4.
You'll want this for your Timing report, so read it now.

Week 6

Midterm break, exam, and binary search trees

Binary Search Trees and Word Clouds.
Submit your work via Moodle by 11:55PM Wednesday, Feb 19.
Reading: Sections 6.1-6.4.
Soon would be best.

Weeks 7, 8

BSTs, Queues, Priority Queues, Heaps, Hash tables

Reading: Sections 4.1 and 4.3 (queues); 6.5 (priority queues); 8.8 (heapsort).
By Feb 24.
Messing with Heap.java and Sorter.java in the lab
During class Monday, Feb 24
Timing Sorting Algorithms.
Submit your PDF report and supporting code via Moodle by 11:55PM Thursday, Feb 27.

Week 9

Hashing and graphs

Reading: Sections 7.2-7.4 (hashing)
By Mar 3.
Final Project
Submit source code and readme.txt file via Moodle by 9:00PM Monday, Mar 17.
Takehome Exam
Submit your answers as a PDF file via Moodle by 12:30 PM Wednesday, Mar 12. Include your source code for #6 in the PDF (no need to submit it separately).