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.