Note. This website is under construction! Things will change significantly!
If you have any administrative questions please email Maia Ginsburg.

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.

Precepts. Precepts meet once per week and cover details pertinent to programming assignments, quizzes, and exams. Come prepared to participate in the discussion, not just ask questions.

Algorithms, 4th edition

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

iClickers.   To make the lectures more interactive, we will be using iClickers. Any hardware version of the iClicker (set to default frequency AA) is suitable.

Staff

Kevin Wayne
Faculty
Instructor
Maia Ginsburg
Faculty
Lead Preceptor
Ananda Gunawardena
Faculty
Lead Preceptor

The staff is complemented by a team of Undergraduate Course Assistants.

Office Hours. You are welcome to attend the office hours of any staff member.

TIME ROOM PERSON OFFICE HOURS
L01 T Th
11–12:20pm
TBA
TBA
Kevin
Wayne
CS
207
TBA
TBA
P01 F
9–9:50am
Friend
108
Maia
  Ginsburg †
CS
205
TBA
TBA
P02 F
10–10:50am
Friend
108
Andy
  Guna †
221 Nassau St.
Room 103
TBA
TBA
† co-lead preceptors

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

GRADING

Your grade for the course will be based on the following components: programming assignments (45%), midterm exam (15%), final exam (25%), quizzes (10%), and participation (5%). Participation includes using iClickers and making positive contributions in precept or on Piazza.

If you believe that your work was misgraded, write a short note describing the potential mistake; attach it to the graded work; and give it to your preceptor within two weeks of when the work was returned.

RESOURCES

Course website. This course website includes links to course content, including lecture slides, programming assignments, quizzes, and old exams.

Booksite. The booksite contains many useful resources while programming.

Discussion forum. The best way to ask a short question about the course materials is via Piazza, an online discussion forum where you can ask (and answer) questions.

Videos. Salon link here.

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

Quizzes. The quizzes consist of two or three short questions, to ensure that you are keeping up with the material in the lectures and readings.

Exams. The in-class midterm exam is Tuesday, December 32. The final exam will be scheduled by the Registar.

Blackboard. You can check your assignment, quiz, and exam scores in Blackboard.

Computers. You may develop your programs on any machine that you like. Here are 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. For non-debugging questions, use Piazza or office hours.