Introduction to Algorithms

Computer Science 2300 (Fall 2020)

Time and Place: Mondays and Thursdays, 2:30pm-4:20pm, Location: Fully online, just like every class with 60 or more students

Instructor:
Elliot Anshelevich
, WebEx meeting room, first letter of first name + first 6 letters of last name AT cs dot rpi dot edu

Teaching Assistants:
Jun Wang, wangj38@rpi.edu: Groups Alpha, Beta, Gamma, Delta, Epsilon, Zeta
Ben Abramowitz, abramb@rpi.edu: Groups Eta, Theta, Iota, Kappa, Lambda, Mu

Office Hours: (subject to change)
Elliot Anshelevich: WebEx meeting room; Tuesday 3pm-4pm, Thursday 12pm-1pm

Wednesday office hours (attendance required):


Class Schedule


Syllabus and Class Policies


Course Overview

This course presents fundamental ideas and techniques of modern algorithm design and analysis. After completing this course, students should be able to analyze and design efficient algorithms for a variety of computational problems. Students will learn a variety of algorithm design techniques, how to apply them to different problems, and how to choose which technique should be used for which problem. For more details, see the Syllabus.

The pre-requisites for this course are CSCI 1200 and 2200. We will assume that everyone has seen the material in these courses, and will use it as necessary.

Textbook

The required course textbook is Algorithms by Dasgupta, Papadimitriou, and Vazirani. See also the textbook errata.

Although the lectures will mostly be drawn from the textbook, we will still cover things that do not appear in the text, and the textbook includes material that we will not cover in class. You are responsible for the content of the lectures as well as any assigned readings. You may also find the following books useful for reference and for different perspectives:

Homework, Exams, and Grading

Students are highly encouraged to attend all classes. You are responsible for all material covered and announcements made in lecture.

Homework. Homework will be assigned every 1-2 weeks, and should be submitted on LMS. For homework policies, see the 2300 Homework Guide.

Recitations and Office Hours. In addition to the lecture, a recitation video will be made available online during most weeks. This video will provide an additional guide on solving algorithmic problems like the ones in the homework. You are required to view the recitation video, as well as the lecture videos. Office hours led by TAs and mentors will take place every Wednesday: these office hours are your main opportunity for getting individual attention, asking questions about lectures and recitations, getting help on the homework, etc. Because of this, you are required to start the homework and view the recitation video before Wednesday. Attendance at your assigned office hours is required, and will count as part of your final grade. For details and policies, see the 2300 Recitation and Office Hour Guide.

Exams. There will be two midterm exams (see the Class Schedule for dates and times), and a comprehensive final exam during finals week. All exams are open-textbook and open-notes. Make-up exams will not be given except in case of an emergency, accompanied by an official Excused Absence Letter from RPI (see also here if you are off-campus). Students who know they are going to miss an exam must notify us in advance. Special circumstances can be accommodated if we are notified about them in advance.