Syllabus

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 ISC 231-234 or approval by the COS placement officer.

Lectures Available as studio-produced videos for you to watch at your own pace.

Class meetings Class meetings are held twice per week, Tues/Thurs 11:00-11:50am.

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.

Required reading.
Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
Addison-Wesley Professional, 2011, ISBN 0-321-57351-X.

Staff


Robert Sedgewick
Faculty
Instructor

Maia Ginsburg
Faculty
Lead Preceptor

Jérémie Lumbroso
Faculty
Lead Preceptor

Ranjana Addanki
Graduate Student
Preceptor

Hussein Nagree
Graduate Student
Preceptor

Yiran Fan
Graduate Student
Preceptor

Mikkel Kringelbach
Graduate Student
Preceptor

Office Hours. You are welcome to attend the office hours of any staff member. Office hours begin Weds, Sept 21 2016.

TIME ROOM PERSON OFFICE HOURS
L01 T Th
11–12:20pm
Friend
101
Robert Sedgewick
rs At cs.princeton.edu
CS
319
Mon 12:30–1:30
Tue 12:30–1:30
P01 Fri
9:00–9:50am
Friend
108
Maia Ginsburg   †
maia At cs.princeton.edu
CS
205
Sat 2:00 - 4:00 pm in Lewis 121
P02 Fri
10:00–10:50am
Friend
108
Jérémie Lumbroso   †
lumbroso At cs.princeton.edu
CS
209
click here to book appointment on
Tue 2:00 - 3:00pm in CS 233
Thur 12:00 - 1:00pm in CS 233
P03 Fri
11:00–11:50pm
Friend
108
Ranjana L. Addanki
raddanki At cs.princeton.edu
CS
003
Thurs 1:00 - 3:00 PM
P03A Fri
11:00–11:50pm
Friend
112
Jérémie Lumbroso   †
lumbroso At cs.princeton.edu
CS
209
(see above)
Yiran (Irene) Fan
yiranf At cs.princeton.edu
Friend
010
Fri 12:30 - 2:30pm
P04 Fri
12:30–1:20pm
Friend
108
Hussein Nagree
hnagree At cs.princeton.edu
CS 003 Weds 1:30 - 3:30 PM
P05 Fri
1:30–2:20pm
Friend
009
Mikkel Kringelbach
Mikkelk At cs.princeton.edu
Friend 010 Mon 1:30pm - 2:30 PM
Fri 2:30 - 3:30 PM
P06 Thu
3:30–4:20pm
Friend
009
Maia Ginsburg   †
maia At cs.princeton.edu
CS
205
Sat 2:00 - 4:00 pm in Lewis 121
† co-lead preceptors

Need to switch into a full precept? Please contact Colleen Kenny-McGinley.

GRADING

Updated as of Sep 19. Your grade for the course will be based on the following components:

Discretion includes participating in precepts, and answering forum posts on Piazza. 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.

RESOURCES

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.

Booksite.There are many resources that you can find at the booksite http://algs4.cs.princeton.edu/home/

Piazza. Piazza is an online forum where you can ask and answer short questions.

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. They are done within Quizzera, and are due each Friday (most weeks) at 11:00 PM.

Exams. All exams are in-class exams. Dates are listed on the meetings web page.

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.   Undergraduate lab TAs are available to answer general computing questions in Lewis 121. 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.