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 Notes/Examples Reading
27. Last Lecture 11/30 Quick review of 211
What I do (when not teaching 211)
26. Design Patterns and Some Unresolved Problems 11/28 Design patterns
Open problems related to 211
Design Patterns & Open Problems Design Patterns: Java Companion
The Open Problems Project
25. Finish Graphs 11/21 Minimum spanning trees
Prim's MST algorithm
Depth first search
Topological sort using recursive DFS
Finish Graphs
Digraph.java
24.2.2
(see notes)
24. GUI Dynamics 11/16 Events
Listeners
Adapters
GUI Dynamics
Example programs
Appendix B
Swing Tutorial
23. GUI Statics 11/14 Components 
Containers 
Layout managers
GUI Statics
Intro.java
More examples
Appendix B
Swing Tutorial
22. More Graphs 11/9 Breadth first search
Dijkstra's shortest path algorithm
Greedy algorithms
More Graphs
Digraph.java
14.2-3
21. Graphs & Graph Algorithms 11/7 Graphs
Topological sort
Coloring, Planarity
Graphs 14.1
14.5
20. Finish JCF; Data Structure Examples 11/2 Finish JCF
Discuss trade-offs among data structures
JCF & Using Data Structures
PQ.java
Snippets.java
19. Generic Types, and the Java Collections Framework 10/31 Finish PQs
Generic types in Java
The JCF (Java Collections Framework)
Generic Types & the JCF 21.3-5
Java API (Chapter 6 in text also includes information about the JCF)
18. Even More ADTs 10/26 Example balanced BST
Priority queues
Heaps
Even More ADTs (just skim 19.4-5)
21.1, 21.2
17. More ADTs 10/24 Table doubling
Linear & quadratic probing
Balanced trees
More ADTs (just skim 20.3-4)
19.1, 19.3
20.6
16. Standard ADTs 10/19 Stacks
Queues
Dictionaries
Direct address tables
Hash tables
Standard ADTs
Stack.java
Queue.java
Chapter 16
20.1, 20.2, 20.5, 20.7
15. Iteration & Inner Classes 10/17 Strategies for iteration
Iterators
Inner classes
Anonymous classes
Iteration & Inner Classes
ExampleIteration.java
Shark.java
(see notes)
15.1-15.3
15.5
4.8.3
14. Bounds on Sorting 10/12 Solving recurrences
Comparison trees
Lower bound on sorting
Bounds on Sorting 7.5.3
8.8
13. Sorting 10/5 Insertion Sort
Selection Sort
Merge Sort
Quick Sort
Stable sorting
Sorting
BasicSorting.java
MergeSort.java
QuickSort.java
8.1-8.3
8.5-8.6
12. Searching &
Asymptotic Complexity
10/3 Linear vs. Binary Search
Runtime analysis
Big-O
Worst-case vs. expected-case
Searching & Asymptotic Complexity Chapter 5
11. Designing, Writing, and Documenting 9/28 Javadoc
Developing and documenting an ADT
Designing, Writing, and Documenting (see notes)
10. Interfaces, Abstraction, & Comparisons 9/26 Java instanceof
Extending an interface
Abstraction
Comparisons in Java
Natural vs. "unnatural" ordering
Interfaces, Abstraction, & Comparisons
TestStringEquality.java
(see notes)
9. Interfaces & Java Types 9/21 Subtypes
Overriding vs. shadowing
Abstract classes
Java interfaces
Type hierarchy
Static type vs. dynamic type
Upcasting & downcasting
Interfaces & Java Types 4.4
8. Inheritance & OOP 9/19 Object oriented programming
Garbage collection
Inheritance
Method overriding
Protected access
Inheritance & OOP 4.1-4.3
7. More Lists & Trees 9/14 List & tree implementations
Binary Search Trees (BSTs)
Tree traversals
More Lists & Trees
BST.java
BSTTest.java
18.1-18.4
19.1
6. Lists & Trees 9/12 Singly-linked lists
Building and searching
Insertion and deletion
Doubly-linked lists
Introduction to trees
Lists & Trees
List.java
ArrayList.java
LinkedListIterative.java
LinkedListRecursive.java
17.1-17.4
18.1
5. Induction 9/7 Induction Induction 7.2
Gauss
4. Grammars & Parsing 9/5 Grammars
Parsing
Code generation
Java Exceptions
Grammars & Parsing
SimpleExpression.java
SimpleExpressionCodeGenerator.java
(see notes)
2.5
3. Recursion 8/31 Recursive programs
Stack frames and recursive calls
Recursion
Power.java
Hanoi-Recursive.java
Hanoi-Iterative.java
7.1, 7.3, 7.4
2. Java Review 8/29 Brief programming language history
Brief review of Java/OOP concepts
Some Java pitfalls
Java Review
CmdLineArgs.java
Widget.java
Equals.java
MultiArray.java
Generics.java
For.java
Enum.java
Skim Chapters 1, 2, and 3 (this should be review)
Java API
J2SE 5.0 in a Nutshell
1. Introduction 8/24 Course policies and procedures
8-Puzzle application
SaM application
Introduction
SaM
Puzzle
Preface
Introduction
Sam Loyd