CS211 Lecture Notes

Unless otherwise indicated, Reading refers to the course text: Data Structures and Problem Solving Using Java (3/E), Addison Wesley, ISBN: 0-321-32213-4, 2006. See also Weiss's website for additional material.

Lecture Date Topics Examples/notes Reading Lecturer
Quick Review & What I Do Dec 1 Quick Review of 211
What I Do (when not teaching 211)
Quick Review & What I Do LPC
Some Open Questions Nov 29 211-Related Open Questions Some Unresolved Questions The Open Problems Project LPC
Java Odds & Ends Nov 22 GUI Drawing & Painting
Exceptions
Generic Types
Java Odds & Ends Appendix B
2.5, 4.7
The Java Tutorial
LPC
Finish Graphs Nov 17 Union/Find
Kruskal's Algorithm for MSTs
Finish Graphs 24.1-24.5 LPC
GUI Dynamics Nov 15 Events
Listeners
Adapters
GUI dynamics
Examples
Appendix B
Swing Tutorial
LPC
GUI Statics Nov 10 Components
Containers
Layout managers
GUI Statics
Examples
Appendix B
Swing Tutorial
LPC
Graphs & Graph Algorithms Nov 8 BFS, DFS
Dijkstra's Algorithm
Minimum Spanning Trees
Prim's Algorithm for MSTs
More Graphs 14.2-14.3 LPC
Graphs & Graph Algorithms Nov 3 Graphs
Topological sort
Coloring, Planarity
Graphs & Graph Algorithms 14.1
14.5
LPC
ADT Odds & Ends Nov 1 Finish ADT topics (except for Graphs) ADT Odds & Ends LPC
ADTs & the Java Collections Framework Oct 27 Balanced trees
Java Collections Framework
ADTs & the Java Collections Framework 19.1, 19.3
(just skim 19.5)
Java API (Chapter 6 in text also includes information about the JCF)
LPC
More on ADTs: Priority Queues & Dictionaries Oct 25 Finish heaps
Dictionaries
Hash tables
More on ADTs: Priority Queues & Dictionaries Chapter 20 (just skim 20.3-20.4) LPC
Abstract Data Types & Implementations Oct 20 Stacks 
Queues 
Priority Queues 
Heaps
Abstract Data Types & Implementations Chapter 16
21.1-21.2
21.5
LPC
Iterators & Inner Classes Oct 18 Iterators
Inner Classes
Anonymous Classes
Iterators & Inner Classes Lecture Notes
15.1-15.3
15.5
LPC
Bounds on Sorting Oct 13 Solving Recurrences
Lower Bounds on Sorting
Bounds on Sorting 7.5.3
8.8
LPC
Sorting Oct 6 InsertionSort
SelectionSort
MergeSort
QuickSort
Sorting
BasicSorting.java
MergeSort.java
QuickSort.java
8.1-8.3
8.5-8.6
LPC
Searching &
Asymptotic Complexity
Oct 4 Searching: linear, binary
Asymptotic time complexity
Big-O
Searching & an Introduction to Asymptotic Complexity Chapter 5 LPC
Comparisons & the Comparable interface Sep 29 Interfaces cont'd
The Comparable interface
Comparisons & the Comparable Interface
TestStringEquality.java
TestCompareTo.java
Lecture Notes LPC
Interfaces & Java Types Sep 27 Interface rules
Implementing an interface
Subtyping
Type checking
Interfaces & Java Types 4.4 LPC
More on Lists & Trees Sep 22 List & tree implementations
Binary Search Trees (BSTs)
More on Lists & Trees
List.java
ArrayList.java
LinkedList.java
BST.java
19.1 LPC
Lists & Trees Sep 20 First dynamic data structure
Introduction to singly-linked lists
Building and searching
Insertion and deletion
Doubly-linked lists
Introduction to trees
Lists & Trees 17.1-17.4
18.1-18.3
LPC
Inheritance Sep 15 Subclass/superclass relationships
Overriding methods and fields
Using "this" and "super"
Subtyping
Abstract classes
Inheritance
ShadowTest.java
ShowSuperMethod.java
ShowConstructorThis.java
ShowConstructorSuper.java
4.1-4.3 LPC
Object-Oriented Programming Sep 13 Objects
Data abstraction
References
Garbage collection
OOP
puzzles
Lecture Notes DIS
Grammars and Parsing Sep 8 Grammars
Parsing
Expression parsing
Code generation
Parsing
SimpleExpression.java
SimpleExpressionCodeGenerator.java
Lecture Notes LPC
Recursion Sep 6 Recursive programs
Frames and recursive calls
Recursion
Power.java
Hanoi-Recursive.java
Hanoi-Iterative.java
7.3-7.4
Lecture Notes
LPC
Induction Sep 1 Induction Induction Lecture Notes
7.1-7.2
Gauss
LPC
Quick Review of Java Concepts Aug 30 Classes, objects, primitive and reference types, array representation, the Java API, command line interface, new features of J2SE 5.0, debugging and experimentation Java Review
Examples.zip
Skim Chapters 1, 2, and 3 (this should be review)
Java API
J2SE 5.0 in a Nutshell
LPC
Introduction Aug 25 Course policies and procedures
8-Puzzle application
SaM application
Introduction
SaM
Puzzle
Preface
Introduction
Sam Loyd
DIS