CS 4104: Data and Algorithm Analysis (Spring 2021)

This course emphasizes the understanding of data structures and algorithms from an analytical perspective rather than from an implementation standpoint. It covers methods to construct algorithms and to analyze algorithms mathematically for correctness and efficiency (i.e., running time and space used). The course starts with definitions of algorithmic efficiency, discusses powerful paradigms for algorithm design, and defines the theory of NP-completeness as a means to understand intractable problems.

Instructor

Teaching Assistants

Class Meeting Times

Keeping in Touch

Homework Assignments

Syllabus and Schedule

We will cover a wide range of topics as per the following schedule. This schedule is subject to change throughout the semester. Please refer to this webpage for the most up-to-date information, for reading assignments, and for homeworks. I will announce every homework and examination via the mailing list and Canvas. All chapters below refer to the textbook, "Algorithm Design" by Kleinberg and Tardos, unless specified otherwise.

` `
Date Topic Reading Homework
Jan 20, 2021 Introduction and Course Logistics, Stable Matching Chapter 1, 2.3
Jan 25, 2021 Stable Matching, continued
Analysis of Algorithms

Chapter 2.1-2.4
Jan 27, 2021 Analysis of Algorithms, continued Homework 1 assigned
Feb 1, 2021 Review of priority queues and graph searches Chapter 2.5, Chapter 3.1-3.3
Feb 3, 2021 Review of priority queues and graph searches, same slides as the last class Homework 1 due
Feb 8, 2021 Review of priority queues and graph searches, same slides as the last class
Linear-time graph algorithms

Chapter 3.4
Homework 2 assigned
Feb 10, 2021 Greedy Algorithms for Scheduling Chapter 4.1-4.2
Feb 15, 2021 Greedy Algorithms for Scheduling, same slides as the previous class Chapter 4.1-4.2 Homework 2 due
Feb 17, 2021 Greedy Graph Algorithms
Shortest paths
Chapter 4.4-4.6
Feb 22, 2021 Greedy Graph Algorithms, same slides as the previous class
Shortest paths, Minimum spanning trees
Homework 3 assigned
Feb 24, 2021 Greedy Graph Algorithms, same slides as the previous class
Minimum spanning trees
Mar 1, 2021 Applications of MST Chapter 4.7Homework 3 due (changed to Mar 3, 2021)
Mar 3, 2021 Applications of MST, same slides as the previous class Chapter 4.7Homework 4 assigned
Mar 8, 2021 Divide and Conquer Algorithms Chapter 5.1-5.2
Mar 10, 2021 Divide and Conquer Algorithms Chapter 5.3-5.5 Homework 4 due (extended to Mar 12, 2021)
Mar 15, 2021 Review for midterm examination Midterm examination assigned
PDF, LaTeX
Mar 17, 2021 Spring break day, no class
Mar 22, 2021 Dynamic Programming Chapter 6.1-6.3
Mar 24, 2021 Dynamic Programming, same slides as the previous class Chapter 6.5
Mar 26, 2021 Midterm examination due
Mar 29, 2021 Dynamic Programming, same slides as the previous class Chapter 6.8 Homework 5 assigned
Mar 31, 2021 Dynamic Programming, same slides as the previous class
Apr 5, 2021 Network Flow Chapter 7.1-7.2
On the history of the transportation and maximum flow problems
Apr 7, 2021 Network Flow, same slides as the previous class Chapter 7.1-7.2 Homework 5 due
Apr 12, 2021 Applications of Network Flow Chapter 7.5-7.6 Homework 6 assigned
Apr 14, 2021 Applications of Network Flow, same slides as the previous class
NP and Computational Intractability
Chapter 7.10
Chapter 8.1-8.2
Apr 19, 2021 NP and Computational Intractability, same slides as the previous class.
Apr 21, 2021 NP and Computational Intractability, same slides as previous class
NP-Complete Problems
Chapter 8.3-8.4
Chapter 8.5
Homework 6 due
Homework 7 assigned
Apr 26, 2021 Spring break day, no class
Apr 28, 2021 NP-Complete Problems, same slides as the previous class Chapter 8.6-8.7
Fri, Apr 30, 2021 Homework 7 due
May 3, 2021 Coping with NP-completeness Chapter 10.1-10.2 Final examination assigned
PDF, LaTeX
May 5, 2021 Coping with NP-completeness, same slides as the previous class Chapter 11.1
May 10, 2021 Final examination due

Honor Code

The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states: "As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do." Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from requirements and expectations of the Honor Code. Academic integrity expectations are the same for online classes as they are for in person classes. Specifically, the Honor Code applies in this class as follows.
  1. You are expected to do your own work for examinations. You can consult the textbook, the slides for the course, and any video recordings. The instructor and the TAs are available to provide any assistance that you may need. No other person or resource may give you answers to exams. Do not use any resources on the web.
  2. You are allowed to work in pairs for homeworks but you must write the final solutions independently from your partner. Each homework assignment will make the policy explicit.