Computer Science 226
Algorithms and Data Structures
Spring 2013


Course Information | Assignments | Exercises | Lectures | Exams | Precepts | Study Guide | Booksite


If you have any administrative questions, please email Maia Ginsburg (maia@cs.princeton.edu).

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 or COS 217 or permission of instructor.

Lectures.   This semester, we will be conducting an experiment where some of the lectures will be standard, and some will be flipped. Weeks 1-3 will be standard. Weeks 4-6 will be flipped. Weeks 7 and 12 will be in a format determined by how things go during the first 6 weeks.

Standard Weeks. During standard weeks, you are are required to either attend lectures or watch the online versions available on our Coursera course.

Flipped Weeks. During flipped weeks, you are required to watch the lectures on the course website. You are also strongly encouraged to attend the live lecture, which will be used for a variety of activities, including:

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.

Staff.   You are welcome to attend the office hours of any staff member. There are no office hours for May until right before the exam.

TIME ROOM PERSON OFFICE HOURS EMAIL
L01 M W
11–12:20pm
McCosh
10
Joshua A. Hug
Arvind Narayanan
P01 Th
11–11:50am
Friend
109
Joshua A. Hug CS
312
Weds 3:00-4:00pm
Thu 12:00-1:00pm
jhug@cs
P02 Th
12:30–1:20pm
McCosh 62 Maia
Ginsburg
CS
205
Sun 5:00-6:00pm
in Friend 017
Mon 4:00-5:00pm
maia@cs
P03 Th
1:30–2:20pm
McCosh 62 Arvind
Narayanan
Sherrerd
308
Mon 3:00-4:00pm
Thu 2:30-3:30pm
arvindn@cs
P08 F
10:00–11:00am
Friend
109
Maia
Ginsburg
CS
205
Sun 5:00-6:00pm
Mon 4:00-5:00pm
maia@cs
P05 F
11:00–11:50am
Friend
109
Jennifer
Guo
CS
001A
Mon 5:00-7:00pm jjguo@cs
P05A F
11:00–11:50am
Friend
108
Stefan
Muenzel
EQuad
C320
Thu
1:00-3:00pm
smuenzel
P06 F
2:30–3:20pm
Friend
109
Diego
Perez Botero
CS
003
Fri 5:00-7:00pm diegop@cs
P06A F
2:30–3:20pm
Friend
108
Dushyant
Arora
CS
003
Thu
4:00-6:00pm
dushyant@cs
P07 F
2:30–3:20pm
Friend 110 Nico
Pegard
EQuad
C320
Fri
12:30-2:30pm
npegard
P04 F
3:30–4:20pm
Friend
109
Diego
Perez Botero
CS
003
Fri
5:00-7:00pm
diegop@cs
Ruth Dannenfelser CS
004
Mon
6:30-8:30pm
rd6@cs


Online forum.   If you have general 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 (25%), exercises (15%), and staff discretion (including participating in precept, answering questions in lecture using the PollEverywhere system, answering forum posts, and discovering 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 will be available on blackboard. They consist of short questions on the material in the lectures and readings.

Exams.   The in-class midterm exam is March 11. The final exam is scheduled by the Registrar for Mon, May 20.

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. They are available starting on Feb 5, 2013.