Lecture | Date | Topics | Examples/notes | Reading | |
---|---|---|---|---|---|
Introduction | June 27 | Course Info, Course Goals, Quick Java Overview | Lecture 1 Notes | Weiss Ch. 1-3 | |
Induction | June 28 | Induction, Strong Induction |
Lecture 2 Notes | Weiss Ch. 7 | |
Recursion | June 29 | Recursive Functions, Recursive Algorithms, Stacks |
Lecture 3 Notes Power.java Hanoi-Iterative.java Hanoi-Recursive.java |
Weiss Ch. 7 | |
Grammars and Parsing | June 30 | Grammars, Parsing, Expressions, Application of Stacks, Application of Recursion |
Lecture 4 Notes AddParser.java AddParserWithScanner.java CS211In.java CS211InInterface.java CS211Out.java CS211OutInterface.java |
Weiss Ch. 11 | Quiz 1 Solutions |
Object-Oriented Programming | July 5 | Objects, Classes, References, Why OOP? |
Lecture 5 Notes |
Weiss Ch. 3 | |
Inheritance | July 6 | Subclasses/Superclasses Overriding Using "this" and "super" Subtypes Abstract Classes |
Lecture 6 Notes Test.java Test0.java Test1.java Test2.java |
Weiss Ch. 4 | |
Object-Oriented Programming | July 7 | Types Interface Rules Implementing an Interface Type Checking interface Comparable |
Lecture 7 Notes |
Weiss Ch. 4 | Quiz 2 Solutions |
Lists | July 11 | First dynamic data structure linked lists ListCell class constructing lists searching through lists insertion and deletion doubly linked lists |
Lecture 8 Notes ListCell.java List.java |
Weiss 2.4.2, 2.4.3, and 6.1-6.5 | |
Trees | July 13 | Tree Definition General Structure Binary Trees Abstract Syntax Trees Traversal |
Lecture 9 Notes TreeCell.java |
More on Lists: Weiss Ch. 17 Trees: Weiss Ch. 18
|
|
Introduction to Searching and Complexity | July 13 | Linear Search Binary Search Running Time Big-Oh |
Lecture 10
Notes SearchIntArray.java SearchComparableArray.java |
Weiss Ch. 5.1-5.3 | |
Sorting | July 14 | SelectionSort MergeSort QuickSort |
Lecture 11
Notes |
Binary Search Trees: Weiss Ch. 19.1-19.2
Weiss Ch. 8 |
Quiz 3 Solutions |
Asymptotic Running Time | July 18 | Big-Oh notation Analysis Techniques |
Lecture 12
Notes |
Weiss Ch. 5 | |
Generic Programming | July 19 | Iterators Inner Classes Generic Algorithms |
Lecture 13
Notes |
Weiss Ch. 6.1-6.4 | |
Abstract Data Types | July 20 | Operations and Structures Vectors Hashtables -Implementation -hashing functions Dictionaries |
Lecture 14
Notes |
Weiss Ch. 20 | |
Priority Queues and Heaps | July 21 | Stacks and Queues Tradeoffs Priority Queues Heaps The Heap Invariant Heapsort |
Lecture 15 Notes PriorityQueue.java |
Weiss Ch. 21.1-21.5 | |
Generics in Java 5 | July 22 | The for-each loop Generic classes Wildcards Generic methods |
Generics Notes | Quiz 4 Solutions | |
Graphs and Algorithms | July 25 | Graphs
DFS, BFS, topological sort coloring, planarity Dijkstra's algorithm |
Lecture 16 Notes | Weiss Ch. 14.1-14.3 | |
Spanning Trees and Exceptions | July 26 | Minimum Spanning Trees
Greedy Algorithms Tree Properties Exceptions in Java |
Lecture 17 Notes | Weiss Ch. 14.4-14.5 | |
Search Trees | July 27 | Search structures
Binary Search Trees Balancing and Big-Oh Rotations AVL Trees 2-3 Trees |
Lecture 18 Notes | Weiss Ch. 19.1, 19.3, 19.4 |