CS 4104: Data and Algorithm Analysis (Fall 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

Classroom Conduct

Virginia Tech is committed to protecting the health and safety of all members of its community. By participating in this class, all students agree to abide by the Virginia Tech Wellness principles and the guidance stated in the Fall 2021 plans. To adhere to these, you must do the following in this class: Masks may be reusable or homemade cloth masks, dust masks, or surgical masks and should fit close to the face to provide thorough filtration of breathed air. Face shields that are open around the sides do not satisfy this requirement and are currently not accepted as a viable alternative by the university (see https://ready.vt.edu/faq.html).

If a student feels that they cannot wear a mask for health concerns and must use an alternative form of face covering such as a face shield, they should contact "Services for Students with Disabilities" to request an accommodation. No exceptions for masks will be provided unless there is an official accommodation notice provided by SSD to the instructor.

These requirements will not be waived. The instructor has the authority to terminate the class session early if the health and safety requirements are not maintained. Students who fail to follow the requirements will be reported to the Office of Student Conduct.

If a student will miss significant class activities because of the need to self-isolate, then the Dean of Students Office should be contacted for an official absence verification. Prolonged absences may be difficult to make up. Students should consult with their advisor about possible options if too much course work is missed to feasibly make-up. As pandemic conditions continue to evolve through the semester, these requirements may need to change. The guidance posted by the university at VT Ready should represent the most up-to-date requirements of the university and should be checked periodically for changes.

Student Well-Being

Supporting the mental health and well-being of students in my class is of high priority to me and Virginia Tech. If you are feeling overwhelmed academically, having trouble functioning, or are worried about a friend, please reach out to any of the following offices:

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 Piazza and Canvas. All chapters below refer to the textbook, "Algorithm Design" by Kleinberg and Tardos, unless specified otherwise.

Date Topic Reading Homework
Aug 24, 2021 Introduction and Course Logistics, Stable Matching Chapter 1, 2.3
Aug 26, 2021 Stable Matching, continued
Analysis of Algorithms

Chapter 2.1-2.4
Aug 31, 2021 Analysis of Algorithms, same slides as the previous class Homework 1 assigned
Sep 2, 2021 Review of priority queues and graph searches Chapter 2.5, Chapter 3.1-3.3
Sep 7, 2021 Review of priority queues and graph searches, same slides as the last class Homework 1 due
Sep 9, 2021 Review of priority queues and graph searches, same slides as the last class
Linear-time graph algorithms

Chapter 3.4
Homework 2 assigned
Sep 14, 2021 Greedy Algorithms for Scheduling Chapter 4.1-4.2
Sep 16, 2021 Greedy Algorithms for Scheduling, same slides as the previous class Chapter 4.1-4.2 Homework 2 due
Sep 21, 2021 Greedy Algorithms for Scheduling, same slides as the previous class
Sep 23, 2021 Greedy Graph Algorithms
Shortest paths
Homework 3 assigned
Sep 28, 2021 Greedy Graph Algorithms, same slides as the previous class
Minimum spanning trees
Chapter 4.4-4.6
Sep 30, 2021 Greedy Graph Algorithms, same slides as the previous class
Minimum spanning trees
Homework 3 due
Oct 5, 2021 Applications of MST Chapter 4.7 Homework 4 assigned
Oct 7, 2021 Divide and Conquer Algorithms Chapter 5.1-5.2
Oct 12, 2021 Divide and Conquer Algorithms Chapter 5.3-5.5 Homework 4 due
Oct 14, 2021 Review for midterm examination Midterm examination assigned
PDF, LaTeX
Oct 19, 2021 Dynamic Programming Chapter 6.1-6.3
Oct 21, 2021 Dynamic Programming, same slides as the previous class Chapter 6.5
Oct 25, 2021 11:59pm, Midterm examination due
Oct 26, 2021 Dynamic Programming, same slides as the previous class Chapter 6.8
Oct 28, 2021 Dynamic Programming, same slides as the previous class Homework 5 assigned
Nov 2, 2021 Network Flow Chapter 7.1-7.2
On the history of the transportation and maximum flow problems
Nov 4, 2021 Network Flow, same slides as the previous class Chapter 7.1-7.2
Nov 8, 2021 11:59pm, Homework 5 due
Nov 9, 2021 Applications of Network Flow Chapter 7.5-7.6 Homework 6 assigned
Nov 11, 2021 Applications of Network Flow, same slides as the previous class
Chapter 7.10
Nov 16, 2021 NP and Computational Intractability NP and Computational Intractability, same slides as the previous class. Chapter 8.1-8.2
Nov 18, 2021 NP and Computational Intractability, same slides as previous class Chapter 8.3
Homework 6 due
Nov 23, 2021 Thanksgiving week, no class
Nov 25, 2021 Thanksgiving week, no class
Nov 30, 2021 NP and Computational Intractability, same slides as previous class
NP-Complete Problems
Chapter 8.4-8.5 Homework 7 assigned
Dec 2, 2021 NP-Complete Problems, same slides as the previous class
Coping with NP-completeness
Chapter 10.1-10.2
Dec 7, 2021 Coping with NP-completeness, same slides as the previous class Chapter 11.1 Homework 7 due
Final examination assigned
PDF, LaTeX
Dec 14, 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.