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, Mon/Weds 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 WayneAddison-Wesley Professional, 2011, ISBN 0-321-57351-X. |
David P. Walker Faculty Preceptor |
Maia Ginsburg Faculty Lead Preceptor |
Jérémie Lumbroso Faculty Instructor |
Mikkel Kringelbach Graduate Student Preceptor |
Tosin Adewale Graduate Student Preceptor |
Kathleen J Emerson Graduate Student Preceptor |
Anders Miltner Graduate Student Preceptor |
Sergiy Popovych Graduate Student Preceptor |
Ashley J Thomas Graduate Student Preceptor |
Zoi Paraskevopoulou Graduate Student Preceptor |
Office Hours. You are welcome to attend the office hours of any staff member. Office hours are for assignment weeks, not exam weeks and begin Weds, Feb 8 2017.
TIME | ROOM | PERSON | OFFICE | HOURS | |
---|---|---|---|---|---|
L01 | M W 11–12:20pm |
McCosh 10 |
Jérémie Lumbroso † lumbroso At cs.princeton.edu |
CS 209 |
Tue 2pm-3pm Weds 2pm-3pm |
P01 | Thurs 9:00–9:50am |
Friend 009 |
Maia Ginsburg † maia At cs.princeton.edu |
CS 205 |
Fri 3:00 - 5:00pm |
P02 | Th 10:00–10:50am |
Friend 009 |
Sergiy Popovych popovych At cs.princeton.edu |
Friend 010 |
Th 11:00am-11:30am Th 5:00pm-6:30pm |
P02A | Th 10:00–10:50am |
Friend 108 |
Anders Miltner amiltner At cs.princeton.edu |
Friend 010 |
Weds 1:00-2:00pm Th 11:00am-noon |
P03 | Th 11:00–11:50pm |
Friend 009 |
Maia Ginsburg † maia At cs.princeton.edu |
CS 205 |
Fri 3:00 - 5:00pm |
P03A | Th 11:00–11:50pm |
Friend 108 |
Mikkel Kringelbach Mikkelk At cs.princeton.edu |
Friend 010 | Th 3:00 - 5:00pm |
P04 | Th 12:30–1:20pm |
Friend 009 |
Ashley Thomas ajthomas At cs.princeton.edu |
Friend 010 | T 11:00am-noon Weds 3:00-4:00pm |
P04A | Th 12:30–1:20pm |
Friend 108 |
Dave Walker dpw At cs.princeton.edu |
CS 211 |
Mo 3:00-4:00pm Tu 3:30-4:30pm |
P04B | Th 12:30–1:20pm |
Friend 109 |
Kathleen Emerson kje At princeton.edu |
Friend 010 | Sun 2:30-4:30pm |
P05 | Th 1:30–2:20pm |
Friend 009 |
Tosin Adewale oadewale At cs.princeton.edu |
Friend 010 | Fri 1:00 - 3:00pm |
P05A | Th 1:30–2:20pm |
Friend 108 |
Dave Walker dpw At cs.princeton.edu |
CS 211 |
Mo 3:00-4:00pm Tu 3:30-4:30pm |
† co-lead preceptors |
Need to switch into a full precept? Please contact Colleen Kenny-McGinley.
Your grade for the course will be based on the following components:
Discretion includes participating in precepts, answering forum posts on Piazza, excellent standing on leaderboards, and answering challenge questions from precept.
Occasionally, we make mistakes. To request a regrade, write a brief note indicating the perceived mistake by the grader;
post privately on piazza or email 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.
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 Thursday (most weeks) at 11:00 PM.
Exams. All exams are in-class exams. Dates are all Weds: 3/15 - programming 3/29, 4/26 - written 5/3 - design
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 and 122. 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 other than debugging, use piazza or office hours to ask your preceptor or instructor.