CS4102 Algorithms - Spring 2020

Course Description: Introduces the analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide-and-conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymptotic worst-case, expected time, amortized analysis, and reductions between problems

Availability (new): It is important to us to be available to our students, and to address their concerns. If you cannot connect with either of us during our office hours, e-mail us and we will find the time to meet virtually. That being said, like everybody else we are quite busy, so it may take a day or more to find a time to meet. And if you have any comments on the course—what is working, what is not working, what can be done better, etc.—we are very interested in hearing about them. Please send Prof. Hott, Prof. Horton, or one of the TAs an e-mail or post privately on Piazza to the instructors.

Syllabus: Download

This Week

Exam Review - Wednesday Review Session: Video - must open Lecture Capture first! - Thursday Review Session: 4pm

Exam Information - Timed, 2 hours to complete once started - Start between 6pm EDT Thursday, Apr 30, and 1pm EDT Sunday, May 3 - Take on Collab under “Tests and Quizzes” - Open book, open notes, but closed internet, no collaboration - See This Document for more details

Course Organization

Schedule - Useful Topics Resources - Useful Collaboration Resources

Lecture Material

We want you to still think of lecture materials as being organized according to our Monday/Wednesday class schedule. This could be one video or a “bundle” of shorter videos (and possibly other material). Each day’s bundle will be labeled with the class day, e.g. “Monday, March 30”. To keep up with the course and the homework schedule, you should view those materials by the end of the specified day. The videos will be recorded with Panopto and linked from the course website’s Schedule, but you will need to be logged in through Collab to access them. We will also post any slide material there as well.

Will lectures be live-streamed as well as recorded? We’re not sure yet; there is debate at UVA about the pros and cons and practicalities of this choice. Whatever happens, we know it’s important for you to have a chance to ask questions, and we’re exploring how to make all that work well for everyone.


We are planning to continue our release schedule on homeworks; they will be released and due on Collab as they have been all semester. Please also note the new Collaboration Policy for HW5. This is specific to the coding assignment, but we would like to extend that to written assignments as well. We want to encourage virtual collaboration, even as we are social distancing. Please engage in the Piazza discussion on our collaboration policy before HW6 is released next week.

Homework Help - Piazza

We will continue to rely on Collab for organization and on Piazza for immediate help. As we have done throughout the semester, let’s all continue to help each other on Piazza. If you’re stuck, please post a question. If you are waiting, you likely know the answer to someone else’s question; please help them out. Both TAs and instructors will be more active on Piazza for the rest of the semester as well.

TA Office Hours

Office hours will see the largest change in our course. We very much wanted to maintain the feel of office hours. Our TAs have been working diligently to help us transition, along with input from other course instructors and TAs. Right now, our plan is to use Discord (a text and voice chat system) so that TAs can manage both a virtual queue and help groups of students at the same time. It will require some coordination and a new system, but it appears to be a really great set-up. We’ll be sending a second “getting started guide” soon. We may have a reduced schedule for office hours but have more TAs available for each time-slot.

Instructor Office Hours

Instructor office hours will be at the normal times, and will be done using Zoom.

Horton’s office hours:

Hott’s office hours:

Normal class-time meetings

During the normal class meeting times, the professors will use a Zoom meeting to do follow-up about recorded lectures that students have watched. they’ll answer questions about the lectures, do examples, etc, in order to help students get more from the recorded lectures. After the first 30 minutes of the section, students may also ask questions about homeworks, but the primary goal for this time is to supplement the recorded lectures. Students from any section can participate in any session. Join the Zoom meeting on Collab from the Online Meetings tool, or use one of the following Zoom meeting IDs.


Regrades are handled in person on Zoom Friday afternoons. For coding question regrades, email Professor Hott to schedule an appointment.

Grade Calculator

Calculator - This spreadsheet provides a way to easily calculate your final course grade. It should only be used as a guide, and it requires a value for each entry to calculate. To use it, enter your current grades and then extrapolate the rest of the semester, entering expected grades for future homeworks and the final exam. Don’t forget that Extra Credit is above and beyond the final grade shown on the spreadsheet.