|
If you have any administrative questions, please email Ananda Gunawardena (guna@cs.princeton.edu).
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, you will have a choice of attending either the in-class standard lectures, or viewing Bob Sedgewick's recorded lectures on Coursera. To supplement the recorded lectures, I will be conducting a once-weekly flipped lecture, at a time and place TBA.
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. For bigger issues, please see the faculty in charge of the course (Josh or Ananda).
TIME | ROOM | PERSON | OFFICE | HOURS | ||
---|---|---|---|---|---|---|
L01 | T Th 11–12:20pm |
Friend 101 |
Joshua A. Hug | CS 312 |
See exam page | jhug@cs |
P01 | F 9–9:50am |
Friend 108 |
Ananda Gunawardena |
CS 208 |
See exam page | guna@cs |
P02 | F 10:00–10:50am |
Friend 108 |
Ananda Gunawardena |
CS 208 |
See exam page | guna@cs |
P02A | F 10:00–10:50am |
Friend 109 |
Tengyu Ma |
Outside CS 406 | See exam page | tengyu@cs |
P03 | F 11:00–11:50am |
Friend 109 |
Bob Tarjan |
CS 324 |
See exam page | ret@cs |
P03A | F 11:00–11:50am |
Friend 108 |
Deborah Varnell |
Table Outside CS 306 |
See exam page | dvarnell@princeton |
P04 | F 12:30–1:20pm |
Friend 108 |
Deborah Varnell |
Table Outside CS 306 |
See exam page | dvarnell@princeton |
P04A | F 12:30–1:20pm |
Friend 109 |
Ruth Dannenfelser |
CS 004 |
See exam page | rd6@cs |
--- | --- | --- | Katie Edwards |
CS313 | See exam page | ke@princeton |
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 (30%), exercises (10%), 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/~cos226includes links to course content, including programming assignments, exercises, lecture slides, and old exams. You will also use it to submit programming assignments.
Video Materials and Coursera Course. You are welcome to use the resources from the Coursera version of this course, which can be found at:
https://class.coursera.org/algs4partI-003/class
There is one exception: You may not use the Coursera autograder. Do not submit your assignments to the Coursera site. This will be considered a violation of course policy.
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.
The lab TA schedule for Fall 2013 can be found at this link