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 graphs. The course concentrates on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications.

Prerequisites. COS 126 or approval by the COS placement officer.

Lectures. Lectures meet at 11am–12:20pm on Tuesdays and Thursdays in Friend 101. Attendance is required.

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. This includes reading the assignment specification before the corresponding precept.

Course staff.

Prof. Pedro Paredes
Instructor

Prof. Kevin Wayne
Instructor

Prof. Huacheng Yu
Instructor

Kobi Kaplan
Course Administrator

Anny Zhou
Preceptor

Brendan Wang
Preceptor

Emma Farkash
Preceptor

Han Xu
Preceptor

Stanley Wei
Preceptor

Victor Chu
Preceptor

Zhiyue Zhang
Preceptor

The staff is complemented by a team of undergraduates who serve as graders, and grading managers.

Office hours. You are welcome to attend the office hours of any staff member. Office hours are listed on the Help page.

Schedule. Here is the schedule for lectures and precepts.
TIME LOCATION PERSON
L01 T Th 11am–12:20pm Friend 101 Kevin
P01 Th 3–4:20pm Friend 009 Anny
P01A Th 3–4:20pm Friend 109 Zhiyue
P01B Th 3–4:20pm Friend 108 Stanley
P02 F 11-12:20pm Friend 009 Brendan
P02A F 11–12:20pm Friend 109 Victor
P02B F 11am–12:20pm Friend 108 Han
P03 F 1:30pm-2:50pm Friend 009 Stanley
P03A F 1:30–2:50pm Friend 109 Emma
P04The Advanced Precept, P04, is intended for students seeking a more advanced treatment of the material, which covers topics beyond the scope of the course. Use TigerHub to transfer into (or out of) P04.*
F 1:30–2:50pm Friend 108 Huacheng

ASSESSMENTS

Course grades. Your grade for the course will be based on the following components: programming assignments (45%), quizzes (10%), midterm exam (15%), final exam (25%), and participation (5%).

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. Exams are closed-book. The midterm exam is in-class on Tuesday, March 4. The final exam is in-person on Sunday, May 11 at 4pm.

Participation. Participation in this course is fundamental to engaged learning, including using iClickers in lecture and collaborating with a classmate in precept. You are expected to attend each scheduled lecture and precept on time and ready to participate fully.

RESOURCES

Course website. This course website includes links to course content, including lecture slides, precept activities, 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 recordings. You can access recordings of the in-person lectures via the Panopto link in Canvas. For compliance and privacy reasons, you may not redistribute these recordings.

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

Programming environment. We recommend developing Java programs for this course on your personal laptop or desktop. Here are instructions for setting up a custom IntelliJ-based programming environment under macOS, Windows, and Linux.

Lab TAs. Undergraduate lab TAs are available to answer general computing questions in Lewis 121/122/134. 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 Ed Discussion or office hours.