Instructor:Neil
Immerman
Dept. of Computer Science, Room 374
140 Governor's Dr.
University of Massachusetts
Amherst, MA 01003-4610
Email: immerman@cs.umass.edu
Phone: (413)-545-1862
FAX: (413)-545-1249
Teaching Assistant: Creidieki M. Crouch
CS 311: Office Hours,
fall, 2008
Neil Immerman, CompSci Bldg 374,
immerman@cs.umass.edu
M 2:30 - 3:30, Tu 3 - 4, and by appointment.
Creidieki M. Crouch, CompSci Bldg 314, creidieki@gmail.com
F 2 - 3:30
Class Meeting Times:
Tu-Th 11:15 -- 12:30, LGRC-A 201
Discussion Meeting Times:
Th 2:30 -- 3:20, LGRC-A 201
What is this course about?
This course presents an introduction to the design and analysis of computer
algorithms. You will learn how to write fast algorithms for many kinds of problems;
and, you will learn to estimate how long they will take even before you run
them. We will study some interesting algorithms and data structures. You will
also learn some design techniques for inventing new, efficient algorithms. You will
develop your analytic skills to let you look at an algorithm and decide where the
bottleneck is -- which part of the algorithm deserves the design effort in order to
speed the whole thing up.
Algorithms by Sanjoy Dasgupta, Christos Papadimitiriou, and
Umesh Vazirani, paperback, McGraw Hill, ISBN: 0073523402 or
978-0073523408. This is available at the Jeffery Amherst College
Bookstore in downtown Amherst. Please buy the book right away and
read Chapter 0.
Prerequisites:
CS 187 and CS 250 are important
prerequisites. These provide familiarity with basic data structures, and
with mathematical reasoning, respectively.
Requirements:
There will be reading assignments to be completed before each
class and problem sets almost every week. There will be two evening tests
and a final.
Grading:
Your final average will be computed using essentially the following
percentages: Problem Sets (40%), Participation
(5%), Tests (15% each), Final (25%). The Participation grade is based on your
attendance and participation in class plus the weekly Discussion Sections. If I find
that attendance and/or effort is lacking then I reserve the right to give you a
few pop quizes, Included in effort is doing the required reading on time and
starting to work on the problems well in advance of when they are do,
Tests:
The two evening tests will be: October 7 and
November 12, from 7:15 to 8:45 pm. The final, on Dec. 17 at 4 pm, will
be comprehensive. All three tests will be closed books and notes,
with no calculators or computers allowed.
Late Submission Policy:
The problem sets
are relevant to the current course material and so it is important that
they be completed and handed in on or before their deadlines. If you
submit your work up to one week late, 20% will be deducted from that
grade. However, I will permit one free late assignments per student, i.e., no more than
one week late, without points deducted and with no questions asked.
Material over one week late will not be accepted unless there is a
valid medical reason, signed by a doctor, etc.
Collaboration Policy:
Students are encouraged to discuss the course
work and homeworks. Working together and helping
each other helps you learn. However, all work that you submit must be
written up on your own . Any assignments handed in that
have nearly identical parts may be taken as evidence of cheating and will
result in serious consequences, including likely failure of
the course. If you get an important idea for
the solution of a problem or program from someone else, or something
you read on or off-line then be sure to
acknowledge your source, e.g. I was working with so and so and they helped me on
this problem. Not doing so is plagiarism and could have serious
consequences. However, even if you acknowledge your source, your
solution must be in your own words, not copied nor nearly identical to
what you read or were shown. I know this may seem subtle: i.e.,
plagiarism will be punished severely, yet, acknowledged collaboration
is encouraged up to a point. I will talk about this some in class and
discussion section. Please feel free to ask early and often until
you are confident that you understand this policy.
CS 311 Web page:
All handouts, plus other
notes will appear on the syllabus webpage. Please check this webpage at least every
week!
Important Tips for Success in this Course:
Attend all lectures and discussion sections.
Do the required weekly readings on time. This will help you
understand the lectures.
Work and think about the weekly problems. Look at the
problems the day you get them. Make sure that you understand all of
them and ask questions early about any that are not clear.
You will find
that when you go to write the problems up later you will have already made
progress on many of them. This really works and is one of the important
features of the parallel nature of our minds.
Interact with me, the TA, and other members of the class. Learning
can be an enjoyable and cooperative experience.
Use your time well: our weekly schedule will involve the
following:
problems sets: handed out on Tuesdays and due in class the following
Tuesday;
weekly reading assignments: mostly from the text.
Please note that even though you will only be asked to read an
average of 25 pages per week, this reading is very intense: you
must go over the material carefully, working examples and
problems and making sure that you solidly understand what you read;
lectures: introducing new material, Tuesday and Thursday
mornings;
discussion section: this will be a combination problem
session and office hour, Thursday afternoons. To get the most out of the course, do
the readings carefully and on time, i.e., before the relevant
class. Note any questions you may have. These will make good
questions for the class on the relevant material. Take careful notes in class and go over your notes
afterwards, making sure you understand all material covered and
identifying any questions you may have. Similarly, read the
problems carefully when they are assigned and identify any
questions you may have about them. Then it is your opportunity
and obligation during the discussion section to raise any and all
questions that you may have. If you do this, you will help
yourself and your classmates understand the current material and
prepare yourself to solve the homework problems, maximizing learning
and minimizing frustration.