Readings refer to the course text: Data Structures and Abstractions with Java, 2nd edition by Frank M. Carrano, Prentice Hall, ISBN: ISBN 0-13-237045-X, 2007. See also the Prentice Hall website for additional material.
Lecture | Date | Topics | Notes/Examples | Reading |
---|---|---|---|---|
26. CS211 Review & Some Open Questions | Review of CS211 Some Open Questions |
CS211 Review & Some Open Questions | The Open Problems Project | |
25. The Java Virtual Machine II | 5/1 | Method Dispatch Exception Handling Java Security Model Bytecode Verification Stack Inspection |
The JVM, Part II Wallach paper Fournet paper Erlingsson paper |
|
24. The Java Virtual Machine | 4/26 | The JVM Class file format Class loading and initialization Object initialization |
The JVM Bytecode examples |
|
23. Threads and Concurrency | 4/24 | Java Threads Race Conditions Deadlock wait/notify |
Threads and Concurrency | |
22. Balanced Search Trees | 4/19 | Review of Binary Search Trees AVL Trees 2-3 Trees |
Balanced Search Trees TreeSearch.java |
Chapter 29 |
Prelim 2 Review | 4/17 | |||
21. More Graphs | 4/12 | Breadth first search Dijkstra's algorithm Minimum spanning trees Prim's algorithm Greedy algorithms |
More Graphs Digraph.java |
Chapters 30, 31 |
20. Graphs & Graph Algorithms | 4/10 | Graphs Topological sort Coloring, Planarity Depth-first search Breadth-first search Dijkstra's algorithm |
Graphs | Chapters 30, 31 |
19. GUI Dynamics | 4/5 | Events Listeners Adapters |
GUI Dynamics Example programs |
Swing Tutorial |
18. GUI Statics | 4/3 | Components Containers Layout managers |
GUI Statics Intro.java More examples |
Swing Tutorial |
17. Generic Types and the Java Collections Framework | 3/29 | Generic types in Java Java Collections Framework |
Generic Types & the JCF | Java API |
16. Priority Queues and Heaps | 3/27 | Priority Queues Heaps |
Priority Queues and Heaps | Chapters 23, 24, 28 |
15. Standard ADTs | 3/15 | Stacks Queues Dictionaries Hashtables |
Standard
ADTs Stack.java Queue.java |
Chapters 17-22 |
14. Iteration & Inner Classes | 3/13 | Strategies for iteration Iterators Inner classes Anonymous classes |
Iteration & Inner
Classes ExampleIteration.java Shark.java |
|
Prelim 1 Review | 3/8 | |||
13. Recurrences | 3/6 | Solving recurrences Typical recurrences Fast Fibonacci Strassen's algorithm |
Recurrences | |
12. Sorting | 3/1 | Insertion Sort Selection Sort Merge Sort Quick Sort Stable sorting |
Sorting BasicSorting.java MergeSort.java QuickSort.java |
Chapters 11, 12 |
11. Searching & Asymptotic Complexity |
2/27 | Linear vs Binary Search Runtime analysis Big-O Worst-case vs expected-case |
Searching & Asymptotic Complexity Search.java SearchTest.java |
Chapter 16 |
10. Software Design and Coding | 2/22 | Software design principles | Software Design and Coding | |
9. Interfaces & Types | 2/20 | Subtypes Abstract classes Java interfaces Type hierarchy Static vs dynamic types Upcasting & downcasting |
Interfaces & Types | Chapter 3 |
8. Inheritance | 2/15 | Inheritance Subtyping Method overriding Protected access |
Inheritance ShadowTest.java ShowConstructorSuper.java ShowConstructorThis.java ShowSuperMethod.java |
Chapter 14 |
7. Trees | 2/13 | Tree implementations Binary Search Trees (BSTs) Tree traversals |
Trees BST.java BSTTest.java |
Chapters 25-27 |
6. Lists | 2/8 | Singly-linked lists Building and searching Insertion and deletion Doubly-linked lists |
Lists List.java ArrayList.java LinkedListIterative.java LinkedListRecursive.java |
Chapters 4-7 |
5. Induction | 2/6 | Induction | Induction Example of Strong Induction |
Gauss |
4. Grammars & Parsing | 2/1 | Grammars Parsing Code generation Java Exceptions |
Grammars & Parsing SimpleExpression.java SimpleExpressionCodeGenerator.java |
Appendix B |
3. Recursion | 1/30 | Recursive programs Stack frames and recursive calls |
Recursion Power.java Hanoi-Recursive.java Hanoi-Iterative.java |
Chapter 10 |
2. Java Review | 1/25 | Brief programming language history Review of Java/OOP concepts Some Java pitfalls |
Java Review CmdLineArgs.java Widget.java Equals.java MultiArray.java Generics.java For.java Enum.java |
Java API J2SE 5 in a Nutshell Chapter 1 Appendix A |
1. Introduction | 1/23 | Course policies and procedures 8-Puzzle application |
Introduction Puzzle.zip |
Software Article Sam Loyd |