This course presents an introduction to the techniques for designing efficient computer algorithms and analyzing their running times. General topics include asymptotics, solving summations and recurrences, algorithm design techniques, analysis of data structures, and introduction to NP-completeness.
08/30 | Introduction | Maximum Contiguous Subarray (MCS) sum |
MCS Contd. Dynamic Programming Approach / Bubble Sort |
09/06 | No class - labor day | Modified Bubble Sort / Selection Sort |
Insertion Sort Intro / Insertion Sort (w/ sentinel) |
09/13 | Insertion Sort ( Average Case w/ sentinel ) / Insertion sort w/o sentinel |
Insertion Sort ( Average case w/o sentinel) / Divide and Conquer |
Mergesort |
09/20 | Heapsort (Build Max-heap) |
Heapsort (Sorting max-heap) Build max-heap analysis |
Heap sort Analysis / Integer Addition |
09/27 | Integer Multiplication (Elementary school algorithm) |
Elementary school algorithm analysis |
Recursive Multiplication |
10/04 | Midterm Review | Karatsuba "clever" method | Lower & Upper bounds of functions (summations) / Integral approximations (summations) (see A.2 in CLRS) |
Monday | Jeovane: 11:00 AM - 1:00 PM |
Tuesday | Alperen: 9:00 AM - 11:00 AM, Gihan: 11:00 AM - 1:00 PM, Jon: 2:00 - 4:00 PM |
Wednesday | Jon: 1:00 PM - 3:00 PM, Ashwin: 2:00 PM - 4:00 PM |
Thursday | Alperen: 9:00 AM - 11:00 AM, Gihan: 11:00 AM - 1:00 PM , Ashwin: 12:30 - 1:30 PM |
Friday | Jeovane: 1:00 PM - 3:00 PM |
Click the name of an assignment below to see its specifications.
Homework 0 | Fri. Sep. 03, 2021 |
Homework 1 | Fri. Sep. 10, 2021 |
Homework 2 | Sat. Sep. 18, 2021 |
Homework 3 | Sat. Sep. 25, 2021 |
Homework 4 | Sat. Oct. 02, 2021 |