Lecture | TTh 12:00-1:15 PM, New England Bvilding 303 |
Lab | Monday, 3:15-4:45 PM, OLB 112 |
Instructor | David Hovemeyer |
Coaching hours | Wednesday, 7 PM - 9 PM, OLB 112 |
Throughout the semester this web page will be updated with important course information. Please check it regularly.
The final examination will be on Tuesday, Dec 20th from 9-11 AM in Rockefeller 303. The exam is open book and open notes.
Please note: the exact topics of future lectures are tentative, although exam dates are firm.
Date | Topic, Lecture Notes, Examples | Assignment | Reading for next time |
---|---|---|---|
Thursday, 1 Sept. |
Course overview, review of basic Java: Syllabus, Notes | Assignment 1 | Weiss, Chapter 1 |
Tuesday, 6 Sept. |
Review of classes, objects, and arrays, and references. Notes, Dog.java | Assignment 2 | Weiss, Chapter 2 |
Thursday, 8 Sept. |
Introduction to inheritance. I/O and exceptions. Introduction to Eclipse. Notes | none | Weiss, Chapter 3 |
Tuesday, 13 Sept. |
Interfaces, inheritance, guidelines for Object-Oriented programming in Java. Notes, calculator.zip, OO programming guidelines | none | Finish any parts of Chapters 1-3 you haven't read yet |
Thursday, 15 Sept. |
Exceptions, the call stack, reading from a file. Notes, Exception tutorial, Handling errors with Exceptions | Assignment 3, due Sept 22nd by 11:59 PM | Weiss, Chapter 4, sections 4.1-4.5 |
Tuesday, 20 Sept. |
Arrays, analysis of algorithms intro. Notes | none | Weiss, Chapter 4, sections 4.6-4.8 |
Thursday, 22 Sept. |
Generic containers and algorithms. Notes | Assignment 4, due Sept 29th by 11:59 PM | Weiss, Chapter 6, Sect. 6.6, Chapter 16, Sects. 16.1-16.3 |
Tuesday, 27 Sept. |
Stacks. Notes | none | Weiss, Chapter 5, sections 5.1-5.4 |
Thursday, 29 Sept. |
Simple linked lists, Analysis of algorithms. Notes | Assignment 5, due Oct. 7th by 11:59 PM | Weiss, Chapter 16 |
Tuesday, 4 Oct. |
Analysis of algorithms, continued. Queues. Notes | ||
Thursday, 6 Oct. |
First midterm exam (in class): Solution | Assignment 6, due Oct. 14th by 4:59 PM | Weiss, Chapter 17, Sect. 17.1-17.5 |
Tuesday, 11 Oct. |
Singly-linked lists. Loop preconditions, post conditions and invariants. Notes | none | Any remaining parts of 17.1-17.5 |
Thursday, 13 Oct. |
Iterators. Doubly-linked lists. Notes | none | Weiss, Chapter 8, Sections 8.1-8.6. |
Oct 14th-23rd | October break, no class | ||
Tuesday, 25 Oct. | Queues using arrays. Sorting, Comparable, and Comparator. Insertion sort. | none | Finish reading Chapter 8 |
Thursday, 27 Oct. | Shell sort, merge sort. | Assignment 7, due Nov 3rd by 11:59 PM | Weiss, Chapter 7, Sections 7.1-7.3, 7.5-7.6 |
Tuesday, 1 Nov. | Quick sort. Proof by induction. Recursion. Notes | none | Weiss, Chapter 18. |
Thursday, 3 Nov. | Dynamic programming. Trees. Binary trees, traversals. Notes, Dynamic programming code example: makeChange.zip | Assignment 8, due Nov 10th by 11:59 PM | Weiss, Chapter 19, Sections 19.1-19.4 |
Tuesday, 8 Nov. | Binary search trees. Notes. Binary Search Tree code: bst.zip | none | Weiss, Chapter 19, Sections 19.5-19.6 |
Thursday, 10 Nov. | Order statistics in BSTs. AVL Trees. Implementation of BST with order statistics, AVL tree: bst_2.zip | Assignment 9, Due Nov 17th by 11:59 PM | Weiss, Chapter 19, Section 19.8. |
Tuesday, 15 Nov. | Red-black trees and AA-trees. AA-tree code (including removing a node from the tree): bst3.zip | none | Weiss, Chapter 21, Sections 21.1-21.3, 21.5 |
Thursday, 17 Nov. | B-trees. Intro to binary heaps and priority queues. | none | None (review for midterm) |
Tuesday, 22 Nov. | Second mid-term exam (in class). Solution | ||
Thursday, 24 Nov. | Thanksgiving break, no class | ||
Tuesday, 29 Nov. | Heaps, continued. Heap sort. Notes. Binary Heap Class: binheap.zip | none | Weiss, Chapter 20, 20.1-20.6 |
Thursday, 1 Dec. | Hash tables, Collisions in hash tables. Notes | Assignment 10, Due Dec 9th by 11:59 PM | Finish Ch. 20, and read Ch 14, Section 14.1 |
Tuesday, 6 Dec. | Open addressing: linear and quadratic probing, double hashing. Software development methodology. | none | none |
Thursday, 8 Dec. | Graphs. | none | none |
Tuesday, 20 Dec. | Final exam, 9:00-11:00 AM, in Rockefeller 303. |
Date | Lab | Files |
---|---|---|
9 Sept. | none | |
12 Sept. | Intro to Asprey Lab, Eclipse | lab1.zip |
19 Sept. | Testing, JUnit | lab2.zip |
26 Sept. | Modifying a GUI Program | lab3.zip |
3 Oct. | Palindromes | lab4.zip |
10 Oct. | Sorted linked list | lab5.zip |
24 Oct | Timing sorting algorithms | lab6.zip |
31 Oct | Fractals | lab7.zip |
7 Nov | Binary tree traversal algorithms | lab8.zip |
14 Nov | Decision Tree | expertsystem.zip |
21 Nov | Binary Tree Iterators | lab10.zip |
28 Nov | Proof by Induction | none |
5 Dec | Bitwise Operators | lab12.zip |