CSCI 230 - Data Structures & Algorithms


Syllabus [PDF]


Tentative Schedule

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.
* Elective contents that are not required for tests.
Final Exam Dates follow College schedule.

Last updated: 2020-4-22