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 |