Introduction to Algorithms

Computer Science 2300 (Spring 2019)

Time and Place: Mondays and Thursdays, 12:00pm-1:50pm, SAGE 3303

Elliot Anshelevich
, 311 Lally Hall, 518-276-6491, first letter of first name + first 6 letters of last name AT cs dot rpi dot edu

Teaching Assistants:
Ben Abramowitz, Section 1 (10am, SAGE 3101) and Section 5 (12pm, SAGE 3101)
Haidar Khan, Section 2 (2pm, SAGE 2715) and Section 4 (4pm, SAGE 2715)
Minerva Opare-Addo, Section 3 (12pm, SAGE 5101) and Section 6 (2pm, AMOS EATON 215)
Peter Wood, Section 7 (10am, SAGE 3713) and Section 8 (4pm, SAGE 3713)

Office Hours: (subject to change)
Elliot Anshelevich: Lally 311; Monday 3pm-4pm, Thursday 2pm-3pm

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.


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.

Labs and Recitations. Labs will take place every Wednesday, and your attendance is required. For details and lab policies, see the 2300 Lab Guide.

Exams. There will be two midterm exams during the test block of 6pm-7:50pm on February 14 and April 4, 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 a letter from your Class Dean excusing your absence from the exam. 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.