CS2223: Algorithms

Class Meetings

Venue: HL 116
Date/Time: Monday, Tuesday, Thursday, Friday, 8:00 - 8:50 am

Teaching Staff

Instructor: Murali Mani, FL-235, x6421, mmani@cs.wpi.edu
Office Hours: M: 9:30 - 10:30 am

TAs:
Yaobin Tang
ybtang@wpi.edu

Paolo de Barros
pgb@wpi.edu

SAs:
Konstantin Naryshkin
konary@wpi.edu

Joshua Nedelka
jnedelka@WPI.EDU

Office Hours: (Held at FL, A22):
Tuesday: 3:00 - 4:30 (Yaobin), 4:30 - 5:30 (Konstantin)
Wednesday: 3:00 - 4:00 (Paulo), 4:30 - 5:30 (Joshua)
Thursday: 3:00 - 4:30 (Yaobin), 4:30 - 6:00 (Paulo)
Monday: 9:30 - 10:30 (Murali - held at FL-235)

Conference Session: Tuesdays 6 pm - 9 pm (starting Nov 4) at the 3rd floor lounge, Fuller Labs.

Regarding when to approach the instructor or TAs/SAs with questions outside of class, please keep in mind the following. We are always willing and eager to answer your questions, and would like you to master the topics covered in a timely manner. There are different venues for bringing questions outside the lecture hours: (a) during office hours, (b) over email explaining your problem, (c) trying to set up an appointment or (d) dropping by their office. Of this (d) might not be useful if the instructor or TA/SA is not available or in another meeting. However, if you have any problem whatsoever, do NOT hesitate to approach the instructor or the TAs/SAs.

Mail addressed to cs2223-ta AT cs will reach the instructor and the TAs/SAs; mail addressed to cs2223-all AT cs will reach all students as well as the instructor and TAs/SAs.

Objectives

This course teaches you design and analysis of algorithms. Given a computational problem, you will learn how to design an algorithm, prove its correctness and analyze its efficiency.

The specific topics you will study in this course include algorithm design techniques such as divide and conquer, dynamic programming and greedy. Various graph algorithms will also be covered. For analyzing algorithms, you will learn concepts such as asymptotic analysis, best-case, average-case and worst-case analysis, and recurrences. NP-completeness will also be discussed in brief.

While this gives you a good foundation of algorithms, there are variations that we will not cover, such as distributed algorithms, randomized algorithms, approximate algorithms, online algorithms etc.

Background Material

We expect that you have the foundations from discrete math, and basic knowledge of logarithms, exponentials, summations of series (arithmetic/geometric), and proof techniques. In addition, we expect that you are comfortable with basic data structures, as well as techniques of computer programming such as recursion. A recap of these concepts are provided as part of the notes.

Discussion Board

Please use the discussion board available at myWPI.