CSE 830: Design and Theory of Algorithms

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

Homework

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.

Late Policy

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.

Project

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.

Exams

There will be a total of three exams in the class: two midterms and a final.  One week before each exam, I will hand out a sample exam so that you will know what to expect.  All questions on the actual exam will be based on either homework questions or those from the sample exams.  Furthermore, exams will contain a total of 140 points worth of questions, and you will only be expected to answer 100 points of them, so if you have trouble in limited areas, it won’t prevent you from getting an A in the class.  I do, however, plan to ask difficult questions so your algorithmic ability will be honed.

Re-grades

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.

Grading

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.

General Notes

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.