Course Information

Course materials such as syllabus, lecture recordings, slides, assignments, and important announcements will all be posted on Folio.

Prerequisites

Assessments

Your performance in this course will be measured by the following.

Assessment Type Number Percentage of Final Grade
Conceptual Quizzes 4 28% (7% * 4)
Coding Quizzes 8 52% (6.5% * 8)
Final Exam 1 20%

Course Schedule (Updated Timely)

Abbreviations:

Note: All coursework will be derived from the lecture recordings posted on Folio. The "Additional Materials" provided below are intended to enhance your understanding of the topics covered in the lectures.

Dates Lecture Topics Additional Materials
Week 1: - Class 1: M0 - Course Introduction Free online textbooks: YouTube Channels: Visualizing data structures and algorithms: Coding examples and hands-on practices:
Class 2: M1 - Algorithm Analysis
  • How to Analyze Algorithm's Running Time
  • Asymptotic Notations
GeeksforGeeks: More resources on asymptotic analysis:
Class 3: M1 - Algorithm Analysis (cont'd)
  • Asymptotic Analysis
Class 4: M2 - Recursion
  • Divide and Conquer
  • Linear Recursion
  • Binary Recursion
  • Coding1 - Due on Saturday, 5/23
Coursera videos on a recursion example: Fibonacci GeeksforGeeks: Other resources:
Class 5: M2 - Recursion (cont'd)
  • Solving Recurrences
Q1 due on Sunday, 5/25
Week 2: - 5/26: Memorial Day - No Classes
Class 1: M3 - Linear Data Structures
  • Arrays
  • ArrayList in Java
Coursera videos: GeeksforGeeks: Visualizations:
Class 2: M3 - Linear Data Structures (cont'd)
  • Singly Linked Lists
  • Doubly Linked Lists
  • Coding2 - Due on Thursday, 5/28
Class 3: M3 - Linear Data Structures (cont'd)
  • Stacks
  • Queues
  • Coding3 - Due on Saturday, 5/30
Class 4: M4 - Maps and Hash Tables
  • Maps
  • Hash Tables
GeeksforGeeks: Visualizations:
Q2 due on Sunday, 5/31
Week 3: - Class 5: M5 - Trees
  • Traverse a Tree
  • Binary Trees
GeeksforGeeks:
Class 1: M6 - Heaps and Priority Queues
  • Heaps
  • Coding4 - Due on Wednesday, 6/3
GeeksforGeeks: Visualizations:
Class 2: M6 - Heaps and Priority Queues (cont'd)
  • Heap Construction
  • Priority Queues
Class 3: M7 - Binary Search Trees (BST)
  • Binary Search Trees
  • Querying a BST
  • Coding5 - Due on Saturday, 6/6
GeeksforGeeks: Visualizations:
Class 4: M7 - BST (cont'd)
  • Insertion and Deletion in BST
Q3 due on Sunday, 6/7
Week 4: - Class 1: M8 - Sorting
  • Comparison Sorts
  • Selection Sort
  • Bubble Sort
  • Insertion Sort
  • Coding6 - Due on Wednesday, 6/10
GeeksforGeeks: Visualizations:
Class 2: M8 - Sorting (cont'd)
  • Merge Sort
  • Heapsort
  • Tree Sort
Class 3: M8 - Sorting (cont'd)
  • Quicksort
  • Lower Bound on Comparison Sorts
  • Coding7 - Due on Saturday, 6/13
Class 4: M8 - Sorting (cont'd)
  • Linear Sorting
  • Counting Sort
  • Radix Sort
  • Bucket Sort
  • Bonus Coding - Due on Sunday, 6/14
GeeksforGeeks: Visualizations:
Class 5: M9 - Graphs
  • Graph Basics
  • Graph Representations
GeeksforGeeks: Visualization:
Q4 due on Sunday, 6/14
Week 5: - 6/15 Class 1: M9 - Graphs (cont'd)
  • Breadth First Search
GeeksforGeeks: Visualizations:
Class 2: M9 - Graphs (cont'd)
  • Depth First Search
  • Coding8 - Due on Wednesday, 6/17
GeeksforGeeks: Visualizations:
Class 3: M9 - Graphs (cont'd)
  • Dijkstra's Algorithm for Shortest Paths (Optional)
GeeksforGeeks: Visualizations:
Final Exam on Thursday, 6/18