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 |