Lectures | Examples & Homeworks | Zybook Preview or Review Assignments | |
Week 1, Jan. 08 | Class Settings & Preliminaries | Arrays vs. Linked Lists vs. Binary Search Trees | Chapter 1.1 ~ 1.3 |
Week 1, Jan. 10 | The Big O notation, pseudocode, NP vs P, exponential vs polynomial vs logarithm. | Homework Assignment 1.1: Leetcode Problem 278 hint: binary search deformed | Chapter 1.4 ~ 1.6 |
Week 2, Jan. 13 | ADTs: List, Stack, Queue(Deqeue), Set(MultiSet), Priority Queue, Map.
Story: Myers & Weber - human whole genome - shotgun algorithm |
Chapter 2.1 ~ 2.5 | |
Week 2, Jan. 15 | Algorithm Analysis | Homework Assignment 1.2:
Leetcode Problem 20 hint: java.util.Stack Due by Wednesday Jan. 22 at 11am. Submit two problems to OAKS following this instruction. Here are examples of snap_1, snap_2 |
Chapter 2.6 ~ 2.9 |
Week 2, Jan. 17 | Recursion and Analysis | Factorial, Fibonacci, Binary Search, Euclidean GCD | Chapter 3.1 ~ 3.3 |
Week 3, Jan. 20 | Martin Luther King's Day |
||
Week 3, Jan. 22 | Sorting Slow | Selection Sort, Bubble Sort, Insertion Sort | Chapter 3.4 ~ 3.5 |
Week 3, Jan. 24 | Sorting Fast | Shell Sort, Pancake Sort, Quick Sort | Chapter 3.6 ~ 3.8 |
Week 4, Jan. 27 | Class Cancelled |
||
Week 4, Jan. 29 | Sorting Fast | Merge Sort, Radix Sort Homework Assignment 2: Implement InsertionSort and QuickSort, with output of partial results. Here is the Main for you to test your work, and a sample work of SelectionSort. The output of your programs should look like this and this. Due by Tuesday Feb. 4 at 11pm. Submit two problems to OAKS following the instruction. |
Chapter 4.1 ~ 4.4 |
Week 4, Jan. 31 | Singly-Linked List | Leetcode 876 | Chapter 4.5 ~ 4.8 |
Week 5, Feb. 03 | Singly-Linked List, Doubly-Linked List | Homework Assignment 3: Leetcode Problem 707 & 141. Due by Tuesday Feb. 11 at 11pm. Submit to OAKS following the same instruction as for HW1. | Chapter 4.9 ~ 4.11 |
Week 5, Feb. 05 | Linked List Implementation | SingleNode and Singly-Linked List Insertion: with dummy head or without dummy head | |
Week 5, Feb. 07 | Linked List Implementation | Chapter 4.12 ~ 4.14 | |
Week 6, Feb. 10 | Linked List Implementation | ||
Week 6, Feb. 12 | Review and Practice Sample Test |
Spring Career & Internship Fair on Thursday 1-4pm, in TD Arena |
|
Week 6, Feb. 14 | Test One |
CS Department Fair on Friday 1-3:30pm. Have Pizza! |
|
Week 7, Feb. 17 | Hash Tables | Chapter 5.1 ~ 5.5 | |
Week 7, Feb. 19 | Hash Tables | Homework Assignment 4: Leetcode Problems 1 - Two Sum & 49 - Group Anagrams. (Hint: using java HashMap) Due by Thursday Feb. 27 at 11pm. Submit to OAKS following the same instruction as for HW1. | Chapter 5.6 ~ 5.9 |
Week 7, Feb. 21 | Hash Tables | ||
Week 8, Feb. 24 | Binary Search Trees | Chapter 6.1 ~ 6.4 | |
Week 8, Feb. 26 | Binary Search Trees | Chapter 6.5 ~ 6.7 | |
Week 8, Feb. 28 | Test One Solutions. Binary Search Trees | Homework Assignment 5: Leetcode Problem 94 & 98. Due by Thursday Mar. 5th at 11pm. Submit to OAKS following the same instruction as for HW1. | Chapter 6.8 ~ 6.10 |
Week 9, Mar. 02 | Exercises on Binary Search Trees | Chapter 7.1 ~ 7.4 | |
Week 9, Mar. 04 | AVL Trees | Youtube Video 6:48~7:30 | Chapter 7.5 ~ 7.8 |
Week 9, Mar. 06 | Red-Black Trees | Youtube video on
validation,
insertion,
deletion. Homework Assignment 6: Leetcode Problem 700, 701, and 450. Due by Thursday Mar. 12th at 11pm. Submit to OAKS following the same instruction as for HW1. |
|
Week 10, Mar. 09 | B-Trees * | ||
Week 10, Mar. 11 | Review for Test Two: Sample Test |
||
Week 10, Mar. 13 | Test Two Last day to drop the class. |
||
Week 11, Mar. 16/18/20 | Spring Break |
||
Week 12, Mar. 23 | Heap / Priority Queue | Chapter 8.1 ~ 8.4 | |
Week 12, Mar. 25 | Heap / Priority Queue | Homework Assignment 7-1: Leetcode Problem 703 (Bonus points given to the solution without using java heap or priority queue, but instead making your own heap with array.) | |
Week 12, Mar. 27 | Graphs, Adjacency Lists and Adjacency Matrix | Homework Assignment 7-2: Convert a graph from a set of edges to the Adjacency Matrix and Adjacency Lists representations. (See sample input in OAKS.) Homework 7 due date extended to Sunday 4/5. | Chapter 9.1 ~ 9.5 |
Week 13, Mar. 30 | Breadth First Search and Depth First Search | ||
Week 13, Apr. 1 | Dijkstra Algorithm of Single Source Shortest Path | Chapter 9.6 ~ 9.9 | |
Week 13, Apr. 3 | Bellman-Ford Algorithm of Single Source Shortest Path | Homework Assignment 8: Leetcode problems 207 and 841, for the application of BSF and DFS. Due in OAKS on Saturday 4/11. | |
Week 14, Apr. 06 | Topological Sort | Homework Assignment 9: Leetcode problems 743 and 210, for the applications of Shortest Path and Topological Sort. Due in OAKS on Saturday 4/18. | Chapter 9.10 ~ 9.11 |
Week 14, Apr. 08 | Minimum Spanning Tree | ||
Week 14, Apr. 10 | All Pairs Shortest Path * | Chapter 9.12 ~ 9.13 | |
Week 15, Apr. 13 | Greedy Algorithms | ||
Week 15, Apr. 15 | Dynamic Programming | Chapter 10.1 ~ 10.3 | |
Week 15, Apr. 17 | Test Three |
||
Week 16, Apr. 20 | Review | ||
Week 16, Apr. 22 | Review | Homework Assignment 10 (For self-practice. No submission is due): Leetcode 392 and 1143. Note that 'subsequence' is not 'substring'. Refer to the LCS Problem. |
Last updated: 2020-4-22