CS 4104: Data and Algorithm Analysis (Spring 2024)

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

Grading

There will be about seven homework assignments, accounting for 60% of the grade. There will be a take-home midterm examination and a take-home final examination, worth 15% and 25% of the grade, respectively.

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
Jan 17, 2024 Introduction and Course Logistics, Stable Matching Chapter 1, 2.3
Jan 22, 2024 Stable Matching, continued
Analysis of Algorithms

Chapter 2.1-2.4
Jan 24, 2024 Analysis of Algorithms, same slides as the previous class Homework 1 assigned
Jan 29, 2024 Review of priority queues and graph searches Chapter 2.5, Chapter 3.1-3.3
Jan 31, 2024 Class cancelled Homework 1 due
Feb 5, 2024 Review of priority queues and graph searches, same slides as the last class
Feb 7, 2024 Review of priority queues and graph searches, same slides as the last class
Linear-time graph algorithms

Chapter 3.4
Homework 2 assigned
Feb 12, 2024 Greedy Algorithms for Scheduling Chapter 4.1-4.2
Feb 14, 2024 Greedy Algorithms for Scheduling, same slides as the previous class Chapter 4.1-4.2
Feb 16, 2024 Homework 2 due
Feb 19, 2024 Greedy Algorithms for Scheduling, same slides as the previous class
Greedy Graph Algorithms, Shortest paths

Chapter 4.4
Feb 21, 2024 Greedy Graph Algorithms, same slides as the previous class
Shortest paths, Minimum spanning trees
Chapter 4.4-4.5 Homework 3 assigned
Feb 26, 2024 Greedy Graph Algorithms, same slides as the previous class
Minimum spanning trees
Chapter 4.5
Feb 28, 2024 Greedy Graph Algorithms, same slides as the previous class
Minimum spanning trees
Chapter 4.5-4.6 Homework 3 due
Mar 4, 2024 Spring break. No class.
Mar 6, 2024 Spring break. No class.
Mar 11, 2024 Divide and Conquer Algorithms Chapter 5.1-5.2 Homework 4 assigned
Mar 13, 2024 Divide and Conquer Algorithms Chapter 5.3-5.5
Mar 18, 2024 Review for midterm examination Homework 4 due
Midterm examination assigned
PDF, LaTeX
Mar 20, 2024 Dynamic Programming Chapter 6.1-6.3
Mar 25, 2024 Dynamic Programming, same slides as the previous class Chapter 6.5
Mar 27, 2024 Dynamic Programming, same slides as the previous class Chapter 6.8 Midterm examination due
Apr 1, 2024 Dynamic Programming, same slides as the previous class Homework 5 assigned
Apr 3, 2024 Network Flow Chapter 7.1-7.2
On the history of the transportation and maximum flow problems
Apr 8, 2024 Network Flow, same slides as the previous class Chapter 7.1-7.2
Apr 10, 2024 Applications of Network Flow Chapter 7.5-7.6 Homework 5 due
Homework 6 assigned
Apr 15, 2024 Applications of Network Flow, same slides as the previous class
Chapter 7.10
Apr 17, 2024 NP and Computational Intractability Chapter 8.1-8.2 Homework 6 due
Apr 22, 2024 NP and Computational Intractability, same slides as previous class Chapter 8.3
Homework 7 assigned
Apr 24, 2024 NP and Computational Intractability, same slides as previous class
NP-Complete Problems
Chapter 8.4-8.5
Apr 29, 2024 NP-Complete Problems, same slides as the previous class
Coping with NP-completeness
Chapter 10.1-10.2 Homework 7 due
Final examination assigned
PDF, LaTeX
May 1, 2024 Coping with NP-completeness, same slides as the previous class Chapter 11.1
May 6, 2024 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. Students are strongly discouraged from misusing sites such as Chegg and CourseHero, as well as misusing ChatGPT and other Generative Artificial Intelligence software systems. Students are strongly encouraged to consult their faculty members regarding the use of such outside materials as the misuse of these sources may constitute a violation of the Honor Code. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. For additional information about the Honor Code, please visit https://www.honorsystem.vt.edu. 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. 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.

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: