Instructor: Dr. Charles A. Ofria
Office: 2140 Engineering
Phone: 355-8389
E-mail: ofria@cse.msu.edu
Textbook: Introduction to
Algorithms, Second Edition by Cormen, Leiserson, Rivest, and Stein, McGraw Hill,
2001 ISBN 0-07-013151-1
Meeting time & Room: Tu/Th 10:20-11:40am, 1300 Engineering Building
Office Hours: TBD (in the meantime, by appointment).
Pre-reqs: Knowledge of at least
one major programming language, basic data structures, and recursion.
Web page: http://www.cse.msu.edu/~cse830/
Description: Analysis of algorithms. Algorithm design techniques.
Efficient algorithms for classical problems. Intractable problems and
techniques to handle them.
Grading: 25% Homework, 10% Project, 20% Exam I, 20% Exam II, 25% Final Exam
There will be five homework assignments over
the course of the semester, each contributing 5% of your final grade. Some homework will contain a small programming
component. On each homework
assignment, only a subset of the problems may be graded.
You must work in groups of two or three; the
best way to understand the subtleties of the homework problems is to argue
about the answers. Each of you
should look at all of the problems independently, and not just divide the problems
up each time. Don't be a leech and let your partners do all the work; unless
you learn how to solve problems, I promise that you will get burned on the
exams and thus for your final grade.
Make sure to try to find the simplest answer to each problem. I reserve
the right to take off some points if your answer is significantly more complex
than necessary, regardless of whether it is correct. For the written portion of the homework, only one solution
should be turned in for the group.
You must staple your homework pages together -- it can be difficult for me to
keep them organized, and I don't want you to lose points because one page of
your homework got separated. The
homework does not have to be typed, but please keep it neat. Anything I cannot read, I will not
grade.
Homework assignments will be due at the beginning of class. You will lose 20 points if you hand it in
one class session late, and 40 points for two sessions. No homework will be
accepted more than one week late.
I understand that everyone gets into a time
bind now and then, and that accidents and troubles befall even the most
dedicated student. Thus every student will get one free extension on a homework
for up to a week without a late penalty. You do not have to ask for this - just
write that you are using your free extension when you turn it in. Don't waste
this extension or feel obligated to use it, since it will make me very unhappy
to give you another one even with a good excuse.
In addition to the homework assignments,
there is a single project (worth 10% of your final grade) that requires a
program to be coded. This program must be written individually; you may not share source code even within your group. The project
will be setup in the form of a contest, so those of you who write the best
(that is fastest, and correct) programs will receive small prizes.
Requests for re-grading can go in either
direction; I am often generous when I first grade something, so please be sure
that I did make a mistake before you submit your request. On the other hand,
I'll always be willing to explain to you how to do any problems that you have
trouble with. All requests for re-grades must come within one week of the
return of the graded item. Thereafter, no requests will be considered, so be
sure to pick up your returned homeworks and exams on time. I reserve the right to ask for a
regrade in writing so that I may evaluate it properly.
Your numeric grade shall be determined by
your scores on the homeworks and exams, as described above. By default, grades
from 90-100 will be in the A range, from 80-90 will be B's, 70-80 is C's, 60-70
is D's, and below 60 is an F. I
reserve the right to adjust these numbers (probably in your favor) later in the
term. Beyond your scores several other factors can affect your final grade.
Extra Credit: Throughout the course, you will have opportunities
to receive extra credit points: homework assignments and exams will have
difficult questions labeled as extra credit, and in general I will reward
particularly clever answers with extra credit points. Extra credit is never required, and I will construct any
grade curve ignoring extra-credit points. Once grades are assigned, I will
consider the extra credit to boost grades up one rank (that is, one-half letter
grade). If your grade is
borderline, it's always good to have some extra credit to sway my decision.
Participation: Those who participate in class provide me with another
source of information as to how well they are learning the material, and how
much effort they are putting into the course. I can use this information to help counterbalance a
difficulty with exams or homeworks.
Let's have an active class!
Class participation will never harm your grade; always ask any questions
you may have about the material.
Academic Dishonesty: Because a primary goal of the course is to teach
professionalism, any academic dishonesty will be viewed as evidence that this
goal has not been achieved, and will be grounds for receiving a final grade of
F.
The goal of this class is for you to learn about
algorithms. If you find that anything is coming in your way of that goal,
please talk with me about it. I plan to keep the class flexible to the learning
styles that seem to work best for the students, so feedback is always
appreciated.