CMSC 351 - Algorithms



Section 0201:

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.

Important Dates
  • Midterm I : Tuesday, March 2, 6:00 PM - 8:00 PM, Location: Zoom Online
  • Midterm II : Tuesday, April 13, 6:00 PM - 8:00 PM, Location: Zoom Online
  • Final : Saturday, May 15, 4:00 PM - 6:00 PM, Location: Zoom Online

Course Information

Textbook (on reserve at McKeldin Library):
  • Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2009). Introduction to Algorithms (3rd Ed.). MIT Press (any edition is fine).
Supplementary Book:

Schedule


Lectures


Week of
Monday
Wednesday
Friday
01/25 Introduction Maximum Contiguous
Subarray (MCS) sum
MCS Contd.
Dynamic Programming Approach
02/01 Bubble Sort Modified Bubble Sort /
Selection Sort
Insertion Sort Intro / Insertion Sort
(w/ sentinel)
02/08 Insertion Sort
( Average Case w/ sentinel) / (best and worst case w/o sentinel)
Insertion Sort ( Average case w/o sentinel) Divide and Conquer
02/15 Merge Sort Heapsort /
heapsort animation
Heapsort
02/22 Heap sort Analysis
(Build max-heap)
Heap sort Analysis
(sort max-heap) /
Integer Addition / Integer Multiplication
(Elementary school algorithm)

Recursive Multiplication
03/01 Midterm Review Karatsuba "clever" method Lower & Upper bounds of functions (summations) / Integral approximations (summations)
(see A.2 in CLRS)
03/08 Integral approximations
(harmonic series)/
Constructive Induction /
Intro to Quicksort /
Example
Quicksort Analysis
(Worst, best cases)
Quicksort Analysis
(25-75% split, random partition sizes)
03/15 Spring break
03/22 Quick sort Analysis
(Random Pivot)
Quicksort Analysis
(Random Pairwise Comparisons)
Lower bound on
comparison based
sorting algorithms
(Decision Tree)
03/29 Lower bound on
comparison based
sorting algorithms
(Decision Tree)
Counting Sort Radix Sort
04/05 Bucket Sort Algorithm k-th order statistic (Selection Algorithm)
(best-case, approx. average-case)
k-th order statistic(randomized,average case)
04/12 Midterm II Review k-th order statistic Average Case Select Algorithm
04/19 Intro to Graphs / Graph Representations Bread First Search /
Depth First Search
Depth First Search /
Eulerian Paths and Cycles
04/26 Euler Cycles and Paths /
Minimum spanning tree (Generic Algorithm)
Kruskal and Prim's MST Dijkstra's Shortest Path Algorithm
05/03 Prims / Dijkstra's algorithm NP-Completeness NP-Completeness Contd.
05/10 NP-Completeness / Wrap-up

Staff

Instructor
Mohammad Nayeem Teli (nayeem at cs.umd.edu)

Office: Online
Office Hours: MWF 3:00 - 4:00 PM


Teaching Assistants

  • Anton Pozharshkiy, apozhars at terpmail.umd.edu
  • Md Ishat-E-Rabban, ier at umd.edu
  • Chen Chen, cchen24 at umd.edu
  • Kamala Varma, kvarma at umd.edu
  • Songwei Ge, songweig at umd.edu
  • Yancy Liao, yliao2 at umd.edu
  • Ashwin Kammula, akammula at umd.edu
Name
Office hours (Online)
Monday Ashwin: 10:00 AM - 12:00 PM,
Chen: 2:00 PM - 4:00 PM
Tuesday Songwei: 9:00 AM - 11:00 AM,
Yancy: 3:00 - 5:00 PM
Wednesday Chen: 10:00 AM - 12:00 PM,
Kamala: 12:00 - 1:00 PM,
Kamala: 2:00 - 3:00 PM,
Ishat: 3:00 - 5:00 PM
Thursday Songwei: 9:00 AM - 11:00 AM,
Ishat: 12:00 - 2:00 PM,
Yancy: 2:00 - 4:00 PM,
Anton: 5:00 - 6:00 PM
Friday Anton: 9:00 AM - 11:00 AM,
Ashwin: 11:00 AM - 1:00 PM
Kamala: 2:00 - 4:00 PM,
Anton: 5:00 - 6:00 PM


Class Resources

Online Course Tools
  • GradeScope - This is where you submit and view your homework submissions and see your grades.
  • ELMS - This is where you can see your final grades and homework solutions.
  • Piazza - This is the place for class discussions. Please do not post homework solutions here.


Background Material
The following web pages provide some background and other helpful information.



Exam Related Material

Homeworks

Click the name of an assignment below to see its specifications.


Homework Name
Due Date*
Homework 0 Fri. Jan. 29, 2021
Homework 1 Sat., Feb. 06, 2021
Homework 2 Sat., Feb. 13, 2021
Homework 3 Sat., Feb. 20, 2021
Homework 4 Sat., Feb. 27, 2021
Homework 5 Sat., March 13, 2021
Homework 6 Sat., Mar. 27, 2021
Homework 7 Sat., Apr. 03, 2021
Homework 8 Sat. Apr. 10, 2021
Homework 9 Sat Apr. 24, 2021
Homework 10 Sat May 01, 2021
Homework 11 Sat May 08, 2021

* All homeworks are due at 11:59 PM on the due date.