Lectures
Lecture | Date | Topic | Slides |
---|---|---|---|
1 | Friday, 2/1 | Course intro | Lecture 1 |
2 | Monday, 2/4 | Java crash course, part 1 |
Lecture 2 Sum1.java Sum2.java Sum3.java Sum4.java |
3 | Wednesday, 2/6 | Java crash course, part 2 |
Lecture 3 Sum5.java garbled sound ungarbled sound If you enjoyed the demonstration using sounds, watch the rest of Anil Seth's fascinating talk. |
4 | Friday, 2/8 | Java crash course, part 3 |
Lecture 4 WordSeq.java |
5 | Monday, 2/11 | Abstraction |
Lecture 5 WordSeq.java (expandable version) |
6 | Wednesday, 2/13 | Composition |
Lecture 6 |
Friday, 2/15 | (no class - Winter Carnival) | ||
7 | Monday, 2/18 | Recursion, part 1 |
Lecture 7 AddOne.java AddOne2.java AddOneWithAssert.java |
8 | Wednesday, 2/20 | Recursion, part 2 |
Lecture 8 |
9 | Friday, 2/22 | Recursion, part 3 |
Lecture 9 Quiz3.java |
10 | Monday, 2/25 | Asymptotic analysis, part 1 |
Lecture 10 Coins.java |
11 | Wednesday, 2/27 | Asymptotic analysis, part 2 |
Lecture 11 |
12 | Friday, 3/1 | Asymptotic analysis, part 3 + Interfaces |
Lecture 12 Interface examples: Honkable.java Honker.java Car.java Goose.java |
13 | Monday, 3/4 | Sorting, part 1 + Inheritance |
Lecture 13 Inheritance examples: Cycle.java CycleShop.java RoadBike.java Tricycle.java Comparable example: Person.java |
14 | Wednesday, 3/6 | Sorting, part 2 |
Lecture 14 Comparable example: People.java |
15 | Friday, 3/8 | Sorting, part 3 |
Lecture 15 CountingSort.java |
16 | Monday, 3/11 | Searching |
Lecture 16 BinarySearch.java |
17 | Monday, 4/1 | Linear structures |
Lecture 17 (Updated: 2019-05-12) |
18 | Wednesday, 4/3 | Iterators |
Lecture 18 |
19 | Friday, 4/5 | Ordered structures, part 1 |
Lecture 19 OrderedStructure.java OrderedVector.java |
20 | Monday, 4/8 | Ordered structures, part 2 |
Lecture 20 Quiz 7 solution |
21 | Wednesday, 4/10 | Trees, part 1 |
Lecture 21 A minimal binary tree implementation |
22 | Friday, 4/12 | Trees, part 2 |
Lecture 22 A more complete binary tree implementation; note that this has both instance and static methods for computing height. Test.java (driver code) |
23 | Monday, 4/15 | Trees, part 3 |
Lecture 23 BinarySearchTree.java Test.java (driver code) BinarySearchTreeIterator.java |
24 | Wednesday, 4/17 | Trees, part 4 |
Lecture 24 BinarySearchTree.java (implicit BST) SparseVector.java Test.java (driver code) |
25 | Friday, 4/19 | Trees, part 5 |
Lecture 25 Quiz 8 solution: 1. No. 2. resulting BST. |
26 | Monday, 4/22 | Graphs, part 1 |
Lecture 26 |
27 | Wednesday, 4/24 | Graphs, part 2 |
Lecture 27 |
28 | Friday, 4/26 | Graphs, part 3 |
Lecture 28 |
29 | Monday, 4/29 | Hash tables, part 1 |
Lecture 29 LetterFreq.java google-10000-english-usa.txt (originally from here) The good ol' Professor Bumstead proof that a digraph is acyclic iff DFS yields no back edges. Bonus: Includes a hand-scrawled note by (I think?) the undergrad version of myself. I don't know what the note means (so please ignore it). |
30 | Wednesday, 5/1 | Hash tables, part 2 |
Lecture 30 LetterFreq.java (updated for checking the uniformity of the built-in hashcodes for the Java String class) |
31 | Friday, 5/3 | Hash tables, part 3 |
Lecture 31 BookStats.java Book.java SetHashtable.java commons-beanutils-1.9.3.jar commons-collections4-4.2.jar commons-lang3-3.7.jar commons-text-1.3.jar opencsv-4.6.jar books.csv You can compile the above code with: javac "$CLASSPATH:*" *.java You can run the above code with: java "$CLASSPATH:*" BookStats books.csv The answer to Q1 in Lab 10 Part 1 is 2,917 . If you didn't get this answer, try using a Set<Movie> . If you use SetHashtable , don't forget to override hashCode in your Movie class! |
32 | Monday, 5/6 | Hash tables, part 4 |
Lecture 32 |
33 | Wednesday, 5/8 | Graphs, part 4 |
Lecture 33 Solution to hash table activity ASCII table for charAt method. |
34 | Friday, 5/10 | Last class |
Lecture 34 Hashtable.java |