Skip to main content.

Course Overview

Welcome to CS 211: Algorithm Analysis!

Now, everything comes down to expert knowledge of algorithms and data structures. If you don't speak fluent O-notation, you may have trouble getting your next job at the technology companies in the forefront.
-- Larry Freeman

Algorithms: You know them, you love them, you can't live without them.
You've been writing algorithms since your first programming course. Do you know that the algorithm you wrote for a given problem is the most effective algorithm? Can you prove you have the best algorithm? Could you speed up your algorithm by using more memory? Could you make the algorithm use very little memory? Could you improve your algorithm by using a different data structure? How does your algorithm perform in the worst case? In the average case?

In this course, we will focus on developing an understanding of the algorithmic design process: how to identify the algorithmic needs of an application and apply algorithmic design techniques to solve those problems. We will also learn how to identify problems for which no exact, efficient algorithm is known.

Catalog Description: Computer representations of data structures as derived from mathematical models: stacks, queues, and linked lists. Access methods into data structures, such as hashing and tree searching. Storage allocation and deallocation procedures. Algorithms for manipulating such structures are introduced, analyzed, and implemented by the student.

Topics covered include

Classroom work will consist of lecture and discussion. You will be evaluated primarily on written homework assignments, a few programming assignments, and exams.

After taking this course, you should be able to

Instructional Staff

Sara Sprenkle
Office: Parmly Hall 410
Office Hours: Wednesday 2:30-5 p.m., Thursday 1:30 p.m. - 4:30 p.m., or by appointment
E-mail Address:
Phone Number: (540) 458-8309 (it is better to email me than to call)

Course Information

CS 211, Section 01
Lecture: MWF 9:45 - 10:45 a.m.


Algorithm Design by Jon Kleinberg and √Čva Tardos

Course Policies

Student Responsibilities

Instructor Responsibilities
I will try to make this course and its material as exciting for you as it is for me. I will be respectful of student questions and misunderstandings. I will give prompt, constructive feedback from assignments. I will be available during office hours and by appointment. I will do my best to respond to questions via email within 24 hours.

Honor System
I expect you will discuss the problems with members of the class, but you will not discuss the [exact] solutions nor will you write up solutions together. (Discussion gets the ideas going; the write up is you codifying those ideas.) Deviation is considered an honor code violation. Insightful discussion with others must be cited in your homework solution. You will not lose points for citations, nor will you fall from my good graces; quite the contrary, citation gives credit where credit is due. Your understanding of the problems should be sufficient enough to recount the key arguments of the solution by yourself. If you have any uncertainty about what this means, consult with me before you collaborate.

Participation and attendance
To receive full credit for class participation and attendance, you must be actively engaged in the classroom by answering and asking questions each class when appropriate and by being respectful of other students. The average grade for participation is a B-.

The schedule, including important dates, is posted at the beginning of the semester. You should plan accordingly. If there are acceptable conflicts, tell me at the beginning of the semester and then remind me about a week in advance.

You are permitted three sick/personal days for minor illnesses or any other reason (e.g., family occasion). No documentation is needed or requested for these absences. Unexcused absences beyond these will result in deduction in your participation grade. Excused university absences (e.g., for intercollegiate athletics, documented by a note from a faculty or staff member) do not count towards your sick days or personal days.

General grading policies
Proofs must be neatly written. You can submit typed submissions. Include an analysis of your problem solutions when appropriate.
Programs turned in with syntax errors will receive no credit.

Late policy
All assigned work is due on the date specified. Any assignment turned in after the due date/time but on the same day will be penalized 10%. Any assignment turned in after the day on which it is due will be penalized an additional 10% for each late day. No assignment will be accepted that is more than three school days late because of the quick turn around required to grade and return assignments. If you turn an assignment in late, you must indicate this somehow (in comments, on paper, etc.).

Academic Accommodations
Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the (fall or winter) term and schedule a meeting outside of class time to discuss accommodations. It is the student's responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking should be arranged with the professor at least a week before the date of the test or exam.

How to Succeed in This Course


Grades for the course will be computed as follows:

Portions of this class have been drawn from/inspired by courses by Brent Heeringa, Barbara Lerner, and Andy Danner.