Fall 2019
Course Information
Instructor:
Ananya Das Christman
Office Hours: Mon, Fri: 1:30pm  2:30pm, Wed: 2:30pm  3:30pm (and by appointment)
Office: Room 209 Shannon
Lectures:
Section A: MWF 10:10am 
11:00am, Room 203 Shannon
Section B: MWF 11:15am 
12:05pm, Room 203 Shannon
Link to Course Schedule
& Assignments
Course
Announcements:
Link to Course
Information Sheet
This course will
focus on the design and analysis of algorithms. Topics include
divide and conquer, graph algorithms, randomized algorithms,
dynamic programming, and NPcompleteness. We will also cover
basic techniques for analyzing the efficiency of algorithms.
Learning Goals:
Textbook:
No required text but the
following is a good reference and on reserves at Armstrong
Library:
Introduction to
Algorithms, by Cormen, Leiserson, Rivest, and Stein
(CLRS). 3^{rd} edition, Addison Wesley, 2009.
Some homework problems may
come from this book.
Course
Grading:
Homework 
32% 
Midterm 1 
14% 
Midterm 2 
14% 
Class
Participation/Attendance 
5% 
Final

35% 
Tutors:
Assignments will be due on
Mondays, Wednesdays, and Fridays so evening tutors will be
available (at least) on Sundays, Tuesdays, and Thursdays.
More info will also be posted at go/cstutors.
Homework:
Much
of what is learned in this course will be from trying to solve
the homework problems, so make a conscientious effort to
complete them well. Some of the problems may be quite
challenging so do not be surprised if some of them stump you;
you are not expected to solve every homework problem perfectly.
In
previous CS courses you may have encountered problems that ask
you to apply an algorithm (or technique) to a sample set of
data, for example: ''Show the ordering of a preorder traversal
on the following tree...'' or ''Draw a Min Binary Heap with the
following values...'' While
these problems are really good at testing whether you understand an existing
algorithm, you will rarely see problems like these
in this course. Instead, the majority of the problems will ask
you to develop a new
algorithm. Since every problem is different, there
is no set of steps for designing a new algorithm  you simply
have to come up with an idea and check if it works; if it
doesn't, go back and try something new. This process requires
creativity and more importantly, lots of trial and error, so be
prepared to spend a good amount of time on the problem sets. The
more you practice coming up with and trying new algorithms, the
better you will get at designing them.
Your
solutions should be concise, correct, and legible.
Understandability of the solution is as necessary as
correctness. Expect to lose points if you provide a
"correct" solution with an unclear writeup. As with an
English paper, do not expect to turn in a first draft: it takes
refinement to describe something well. If you can't solve a
problem, briefly indicate what you've tried and where the
difficulty lies. Don't try to pull one over on me. :)
Problem sets will
be assigned roughly every 1.5 weeks, due by the first 5 minutes of
class typically using the following schedule: if an assignment is
out on Monday, it will be due the following Wednesday; if out on
Wednesday, due the following Friday; if out on Friday, due the
Monday after the following Monday. You are encouraged to discuss
homework problems with classmates, but you must write
up your solutions independently. Homework
submissions must be typed. I encourage you to use LaTex, but
you may use any editor.
Homework Submission:
Written homework submissions must:
(Optional) Reflections:
After each homework solution is
posted (three days after the assignment's due date), you will have
the opportunity to earn back a portion of the points that you may
have lost on the assignment. After reading and understanding the
homework solutions, you may submit a reflection identifying
and explaining your errors. Your reflection will be graded by one
of your peers using a simple rubric to earn 50% (excellent), 30%
(good), 15% (soso), or 0%(gibberish/garbage) of the points back. (I will provide more
details on both the reflection and the grading rubric).
Exams:
There will be two midterms and one final.
Midterm 1: Tuesday, October 15, 67:30pm
(tentative)
Midterm 2: Tuesday, November 19, 67:30pm
(tentative)
Final Exam:
Section A: Tuesday, December 10, 9:00am12:00pm
Section B: Wednesday, December 11, 7:00pm10:00pm
Since many of the topics covered in this class
will not be directly from the textbook, it is extremely important
for you to attend the lectures. Class attendance and participation
will also make up a small but important portion of your grade.
Your attendance/participation grade will be based on your
attending class regularly and showing evidence that you are
actively engaged in the class.
Please keep in mind that if you do miss class,
you are responsible for any missed material. I will not reiterate
material that has already been covered solely for students who
missed the original lecture. If you miss class, you are certainly
welcome to review topics with me during my office hours, but
please do so only after
reviewing the notes on line and discussing them with a classmate
who was present during the lecture.
Lateness
Policy:
You will be allowed
three late days for the semester (including
weekends/holidays). You must notify me before the due
date if you are planning to use a late day (no exceptions).
After the three late days, no late assignments will be accepted.
Computer
and
Cell Phone Policy:
You may use desktop
or laptop computers (quietly) during lecture to take notes. You
should not use computers during lecture for any other purposes
(e.g. email, web browsing, games, work for other classes, etc.).
You may not use cell phones during lecture, lab, or exams.
Academic
Honor
Code:
Any form of plagiarism, including copying others' solutions
or solutions posted on the web, is considered a violation of
the honor code and will be heavily penalized. Note that allowing
someone else to copy your solutions also violates the honor code.
Any assignment that shows signs of plagiarism will be investigated
and reported if necessary. Violations will result in a homework
grade of 0 and will be reported to the academic judicial board.