CMPU 102: Computer Science II, Fall 2005

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.




Lectures, Assignments, and Exams

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
1 Sept.
Course overview, review of basic Java: Syllabus, Notes Assignment 1 Weiss, Chapter 1
6 Sept.
Review of classes, objects, and arrays, and references.  Notes, Assignment 2 Weiss, Chapter 2
8 Sept.
Introduction to inheritance. I/O and exceptions. Introduction to Eclipse. Notes none Weiss, Chapter 3
13 Sept.
Interfaces, inheritance, guidelines for Object-Oriented programming in Java. Notes,, OO programming guidelines none Finish any parts of Chapters 1-3 you haven't read yet
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
20 Sept.
Arrays, analysis of algorithms intro. Notes none Weiss, Chapter 4, sections 4.6-4.8
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
27 Sept.
Stacks. Notes none Weiss, Chapter 5, sections 5.1-5.4
29 Sept.
Simple linked lists, Analysis of algorithms. Notes Assignment 5, due Oct. 7th by 11:59 PM Weiss, Chapter 16
4 Oct.
Analysis of algorithms, continued. Queues. Notes
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
11 Oct.
Singly-linked lists. Loop preconditions, post conditions and invariants. Notes none Any remaining parts of 17.1-17.5
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: 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: 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: 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): 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: 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. Intro to Asprey Lab, Eclipse none
12 Sept. Intro to Asprey Lab, Eclipse
19 Sept. Testing, JUnit
26 Sept. Modifying a GUI Program
3 Oct. Palindromes
10 Oct. Sorted linked list
24 Oct Timing sorting algorithms
31 Oct Fractals
7 Nov Binary tree traversal algorithms
14 Nov Decision Tree
21 Nov Binary Tree Iterators
28 Nov Proof by Induction none
5 Dec Bitwise Operators