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, graphs, and strings. The course concentrates 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. Class meetings are 11–12:20pm on Mondays and Wednesdays in Friend 101. Laptops, tablets, and phones are prohibited, except for activities directly related to lecture, such as viewing lecture slides and taking notes.

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.

Course staff.

Mark Braverman
Faculty
Instructor

Maia Ginsburg
Faculty
Lead Preceptor

Ibrahim Albluwi
Faculty
Lead Preceptor

Oluwatosin Adewale
Graduate Student
Preceptor

Yushan Su
Graduate Student
Preceptor

Seyed Hassantabar
Graduate Student
Preceptor

Lauren Pick
Graduate Student
Preceptor

Charlie Murphy
Graduate Student
Preceptor

Nayana Nagendra
Graduate Student
Grader

The staff is complemented by a team of Undergraduate Course Assistants. (Abigail P. Rettew, Adrian Tong, Cathleen Kong, Mick Sornwanee, Katherine Xiao, Georgy Noarov, William Li, Ariel Chen, Claire Du, Gabriel Birman, Ilene E, Matthew Yi, Shiye Su, Bill Dong, June Ho Park, Tan Shanker, Elizabeth Tian, Usama Bin Shafqat, Jennifer Yin, Rebecca Barber, Gary Hu, Allison Chang, Alexandra S. Palocz, Audrey C. Cheng, Bill Zhang, David Todd, Henry T. Wang, John Hallman, Kevin Jeon)

Office hours. You are welcome to attend the office hours of any staff member. Office hours start Feb 5.

TIME ROOM PERSON OFFICE HOURS
L01 M W
11–12:20pm
Friend 101 Mark
Braverman
CS
411
Weds
11-noon (when
there is no class meeting)
4-5pm
P01 Th
9–9:50am
Friend 009 Maia
Ginsburg
CS
205
Sun
3:00-5:00pm
P02 Th
10–10:50am
Friend 009 Maia
Ginsburg
Lewis
122
Sun
3:00-5:00pm
P02A Th
10–10:50am
Friend 108 Ibrahim
Albluwi
221
Nassau St.
Mon
2:00-4:00pm
P03 Th
11–11:50am
Friend 009 Charlie
Murphy
Friend
010
Fri
3:00-5:00pm
P04 Th
12:30–1:20pm
Friend 009 Tosin
Adewale
Lewis
122
Mon
6:00-8:00pm
P04A Th
12:30–1:20pm
Friend 108 Lauren Pick Friend
010
Mon
4:00-6:00pm
P04B Th
12:30–1:20pm
Friend 109 Shayan
Hassantabar
Friend
010
Thurs
4:30-6:30pm
P05 Th
1:30–2:20pm
Friend 009 Tosin
Adewale
Lewis
122
Mon
6:00-8:00pm
P05A Th
1:30–2:20pm
Friend 108 Ibrahim
Albluwi
221
Nassau St.
Mon
2:00-4:00pm
P05B Th
1:30–2:20pm
Friend 109 Yushan
Su
Friend
010
Sat
8:00-10::00pm
- - - Nayana
Nagendra
Lewis
122
Canceled

ASSESSMENTS

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 per lecture, to ensure that you are keeping up with the material.

Exams. The in-class midterm exam is March 12. The other exam is a two part exam on April 30 and May 2.

Course grades. Your grade for the course will be based on the following components: programming assignments (35%), quizzes (10%), midterm exam (20%), final exam (30%), and precept attedance (5%).

Regrades. 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.

Algorithms, 4th edition

Textbook. Algorithms, 4th edition by Robert Sedgewick and Kevin Wayne. Addison-Wesley Professional, 2011, ISBN 0-321-57351-X. The assigned readings are required.

Booksite. The booksite contains many useful resources while programming.

Lecture videos. You can access lecture videos that accompany the course textbook via Salon.

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.

Programming environment. You may develop your programs on any machine that you like. Here are instructions for setting up a Java programming environment under Mac OS X, Windows, 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.