Lectures (Dan)
| Lecture | Date | Topic | Reading | Lecture Materials |
|---|---|---|---|---|
| 1 | Friday, February 7 | Course intro |
Chapter 0, "Introduction", Bailey (optional) Appendix B, "Beginning with Java", Bailey (optional) "Java for Python Programmers" |
slides |
| 2 | Mon, 2/10 |
main, args, and type conversions
|
Bailey Ch. 1-1.4 |
slides quiz1-practice-solutions.pdf HelloWorld.java SumSome1.java SumSome2.java SumSome3.java SumSome4.java SumSome5.java SumSome6.java SumSome7.java |
| 3 | Wed, 2/12 | OOP, Designing and Organizing Code |
Bailey 1.5-1.10 (focus on 1.6, particularly '5 informal steps') |
slides |
| Fri, 2/14 | Winter Carnival |
No Class |
No Class |
|
| 4 | Mon 2/17 | Vectors (extensible arrays) and Generics |
Bailey 3-3.1 Bailey 4-4.2.2 |
[Vectors and Generics] |
| 5 | Wed 2/19 | Vectors of Associations, Composition ('Has A' relationship) |
Bailey 2 (all) Bailey 3.2-3.5 |
[Associations and Inheritance] [WordFreq.java] |
| 6 | Fri 2/21 | Time and Space Complexity |
Bailey 5.1 |
slides |
| 7 | Mon, 2/24 | Pre- and Post-conditions; Recursion |
Bailey 5.2-end |
slides Example0.java Example1.java Example2.java Example3.java Fib.java |
| 8 | Wed, 2/26 | Interfaces and Abstraction: What is a List? |
Bailey 7-7.1 Bailey 9-9.1 |
slides |
| 9 | Fri, 2/28 | Asymptotic analysis |
Bailey 9.3-9.4 |
slides |
| 10 | Mon, 3/2 | Abstract data types | (no reading) |
slides |
| 11 | Wed, 3/4 | Linked Lists | Bailey 6.1-6.3, 6.8-6.9 |
slides Honkable.java AbstractHonkable.java Car.java Goose.java Test.java (for Honkables) Node.java Test.java (for Nodes) |
| 12 | Fri, 3/6 | Mathematical induction | Bailey 6.4-6.7 |
slides |
| 13 | Mon, 3/9 | Sorting (bubble, insertion, & selection) | Bailey 6-6.3 |
slides Coins.java |
| 14 | Fri, 3/11 | Comparing Objects | Bailey 6.7-6.9, 6.4 |
slides Sorter.java BubbleSort.java IntegerComparator.java Person.java PersonComparator.java |
| 15 | Fri, 3/13 | Advanced sorting (merge sort and quick sort) | Bailey 6.5-6.7 |
slides |
| 16 | Mon, 4/6 | Welcome back! | (none; review for midterm) |
slides |
| 17 | Fri, 4/10 | Iterators | Bailey Ch 8 | slides |
| 18 | Mon, 4/13 | Iterators, Bitwise Operations | Bailey Ch 8 |
slides ReverseIterator.java SkipIterator.java BIterator.java |
| 19 | Wed, 4/15 | Stacks & Queues | Bailey Ch 10 | |
| 20 | Fri, 4/17 | Ordered Structures, Binary Search | Bailey Ch 11 |
slides, part 1 slides, part 2 OrderedStructure.java OrderedVector.java |
| 21 | Mon, 4/20 | Trees, part 1 | Bailey Ch 12-12.5 |
slides, part 1 slides, part 2 BinaryTree.java TreeTest.java |
| 22 | Wed, 4/22 | Trees, part 2 | Bailey Ch 12.6-12.9 |
slides, part 1 BinaryTreeNode.java TreeTest.java slides, part 2 BinarySearchTreeNode.java BSTTest.java Read this: Why we care about balanced trees |
| 23 | Fri, 4/24 | Trees, part 3 |
slides SparseVector.java ImplicitBinarySearchTree.java BSTTest.java |
|
| 24 | Mon, 4/27 | Trees, part 4 (Tries) |
slides The Hudsucker Proxy Tim Robbins, not Tim Allen... d'oh! |
|
| 25 | Wed, 4/29 | Heaps | Bailey Ch 13 |
slides VectorHeap.java |
| 26 | Fri, 5/01 | Heapify, Heapsort | Bailey Ch 13 |
slides |
| 27 | Mon, 5/04 | The Map interface, Hashtables | Bailey Ch 15 |
slides NaiveProbing.java |
| 28 | Wed, 5/06 | Managing Hashtable Collisions | Bailey Ch 15 |
slides |
| 29 | Fri, 5/08 | Fun With Hashing |
Optional: A Cool And Practical Alternative to Traditional Hash Tables |
|
| 30 | Mon, 5/11 | Graphs (Intro, Vocab, API) | Bailey Ch 16 |
slides Graph Interface Graph Practice Graph Practice (filled) |
| 31 | Wed, 5/13 | Graphs (Implementation) | Bailey Ch 16 |
slides |
| 31 | Fri, 5/15 | Graphs (Applications) / Semester Recap | Bailey Ch 16 | slides |