Lecture: F. 13.00-16.00
Room: 17304
Class code: qegwxpq
Instructor: Vacharapat Mettanant
Prerequisites:
03603211 Discrete Mathematics
03603212 Abstract Datatypes and Problem Solving
Book: The primary written references for the course are:
Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L. and Stein, Clifford. Introduction to Algorithms. 4rd ed. MIT Press, 2022. [MIT Press]
Kleinberg, Jon and Tardos, Éva. Algorithm Design. : Addison Wesley, 2006. [Pearson]
Course Learning Outcomes: Students who pass this course will have ability to
Argue the correctness of algorithms using inductive proofs and invariants.
Analyze worst-case running times of algorithms using asymptotic analysis.
Describe algorithm design paradigms such as greedy algorithms, dynamic programming, divide and conquer, and randomized algorithms, and explain when an algorithmic design situation calls for them. Recite algorithms that employ these paradigms. Synthesize these algorithms, and analyze them.
Learning activities: This course is an experiment of active learning classes in the area of theoretical computer science. We will have many active learning activities such as group discussion, presentation, or brainstorm.
Scores:
Online quizzes 10%
Assignments 20%
Programming Tasks 20%
Midterm 25%
Final 25%
Topics:
1
29 Nov 2024
Introduction
Review of Proof Techniques
Complexity Analysis, Big-O Notation
Linear Data Structures and Basic Operations
2
6 Dec 2024
Greedy Algorithms
Interval Scheduling
Scheduling to Minimize Lateness
3
13 Dec 2024
Graphs, Basic Graph Search
Testing Bipartite Graphs
4
20 Dec 2024
Minimum Spanning Tree
Prim's Algorithm, Kruskal's Algorithm
Union-Find Data Structure
5
27 Dec 2024
Directed Acyclic Graphs, Kahn's Algorithm
Shortest Paths, Dijkstra's Algorithm
Priority Queue, Binary Heap
6
3 Jan 2025
Dynamic Programming
Weighted Interval Scheduling
Longest Increasing Subsequence
Knapsack Problem
7
10 Jan 2025
Longest Common Subsequence
Bellman-Ford Algorithm
Floyd-Warshall Algorithm
Midterm
8
24 Jan 2025
Divide and Conquer
Merge Sort, Counting Inversion
Integer Multiplication
9
31 Jan 2025
Closest Pair of Points
Quick Select
10
7 Feb 2025
Randomized Algorithms
Balls and Bins Analysis
Randomized Quick Sort
Global Minimum Cut, Karger's Algorithm
11
14 Feb 2025
Matching in Bipartite Graphs
Hopcroft-Karp Algorithm
Gale-Shapley Algorithm
12
21 Feb 2025
Complexity Theory
P, NP, Polynomial-Time Reduction
NP-Complete
13
28 Feb 2025
Approximation Algorithms
Load Balancing
Metric TSP
14
7 Mar 2025
Fixed-Parameter Algorithms
Vertex Cover
Local Search
Simulated Annealing
Genetic Algorithms
15
14 Mar 2025
Reviews
Final
เอกสารของปี 2018 [Lecture Notes ]
วิดีโอการบรรยายปี 2018 [YouTube ]