Computer Science 226
Algorithms and Data Structures
Spring 2014


Course Information | Lectures | Flipped | Assignments | Exercises | Exams

COURSE INFORMATION

Description.   This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, and string processing. Fundamental algorithms in a number of other areas are covered as well, including geometric and graph algorithms. The course will concentrate on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications.

Prerequisites.   COS 126, ISC 231-234, or approval by the COS placement officer.

Traditional lectures.   Attendance is required. You are responsible for all material presented in lecture; some of that material is not covered in the textbook.

Flipped lectures.   As an alternative to traditional lectures, we are offering a flipped lecture option, in which you watch and tag video lectures online before class and solve problems in class. Enrollment is limited to 28 students.

Precepts.   We cover details pertinent to programming assignments and exams. You should come to precept prepared to participate in the discussion, not just ask questions.

Course staff.   You are welcome to attend the office hours of any staff member. Office hours begin Monday, February 2.

TIME ROOM PERSON OFFICE HOURS
L01 M W
11–12:20pm
McCosh
10
Kevin Wayne CS 207 M 2–3pm
W 2:30–3:30pm
F01 W
11–12:20pm
Frist
307
Josh Hug
Andy Guna
P01 Th
11–11:50am
CS
102
Andy
Guna
ACE 34 T 10:30–12:30pm
P02 Th
12:30–1:20pm
Green
0S9
Andy
Guna
ACE 34 T 10:30–12:30pm
P03 Th
1:30–2:20pm
Green
0S9
Chris
Eubank
CS 004 T 1–3pm
P04 F
10–10:50am
Friend
109
Jenny
Guo
CS 001B T 4:30–6:30pm
P05 F
11–11:50am
Friend
109
Madhu
Jayakumar
CS 001B T 4:30–6:30pm
P05A F
11–11:50am
Sherrerd
001
Nevin
Li
Tea Room
(2nd floor CS)
M 12:50–2:50pm
P06 F
2:30–3:20pm
Friend
108
Josh
Hug
Outside CS 306 W 12:30–2:30pm
P06A F
2:30–3:20pm
Friend
111
Chris
Eubank
CS 004 T 1–3pm
P06B F
2:30–3:20pm
Friend
109
Ruth
Dannenfelser
CS 004 M 4–6pm
P07 F
3:30–4:20pm
Friend
108
Josh
Hug
Outside CS 306 W 12:30–2:30pm


Online forum.   If you have questions about the assignments, lectures, textbook, or other course materials, please post via Piazza. Posts marked private are viewable only by the course staff.

Grading.   Your grade for the course will be based on the following components: programming assignments (45%), midterm exam (15%), final exam (30%), exercises (10%), and staff discretion (including participating in precept, preparing for and contributing to the flipped lecture, answering forum posts, and reporting errata). Occasionally, we make mistakes. To request a regrade, write a brief note indicating the perceived mistake by the grader; attach it to your graded work; and give it to your preceptor within two weeks of when the graded work was returned.

Course website.   The course website

http://www.princeton.edu/~cos226
includes links to course content, including programming assignments, exercises, lecture slides, and old exams. You will also use it to submit programming assignments.

Readings.   The following textbook is required. It contains a wealth of information beyond what we can cover in lecture; it is certain to enhance your understanding of algorithms and data structures.

Programming assignments.   The programming assignments involve applying the material from lecture to solve problems in science, engineering, and commerce.

Exercises.   The exercises consist of short drill questions on the material in the lectures and readings.

Exams.   The in-class midterm exam is Wednesday, March 12 in either McCosh 10 or McCosh 28 (as assigned). The final exam is Wednesday, May 21 at 1:30pm in either McDonnell A01 or McDonnell A02 (as assigned).

Computers.   You may develop your programs on any machine that you like: we encourage you to use your own equipment. We provide instructions for setting up a Java programming environment under Windows, Mac OS X, and Linux.

Laboratories.   We hire undergraduate lab TAs who are available to answer general computing questions in the Friend 017 lab. They can assist you in debugging, provided you have first made a reasonable effort to identify the bug and isolate the problem. If you have questions regarding the course material or programming assignments, see your preceptor or instructor.