(Latest Revision -- 02/22/2006)
(02/22/2006: updated room number for the class)

Course Description
for Theory of Algorithms: CS 4440

TERM: Spring 2006

CLASS INFO FROM SCHEDULE:


20419 #CS 4440 001 Theory of Algorithms Lec 3.0 MWF 10:10-11:08 P-113
INSTRUCTOR: John Sarraille, Professor of Computer Science

OFFICE: P-286, Professional Schools Building (aka DBH), Cal State Stanislaus

OFFICE HOURS: (Office hours commence on Tuesday, Feb 14, 2006 and end on Monday May 22, 2006.
There will be no office hours on fridays, holidays, or Spring Break: April 17-21.)


E-MAIL: john@ishi.csustan.edu

HOMEPAGE: http://www.cs.csustan.edu/~john/js.html

PREREQUISITES:

It is important that you be adequately prepared for taking this course, CS 4440.

Check with me if you have not passed both: COURSE OBJECTIVES:

The highest aims of this course are: One way to work toward those aims is to study algorithms and approaches to algorithm design that are widely believed to be good for common programming problems. At the same time one should seek to understand how "good" should be defined. Such studies are another goal of this course.

It is necessary that we know how to analyze the potential efficiency of an algorithm using such tools as discrete mathematics, probability, and statistics. We also need to study such abstractions as computational complexity, reduction, non-determinism, and NP-completeness, in order to better appreciate the limitations of computing machines.

It will be important that you read and write algorithms, and practice doing the steps involved in their analysis.

REQUIRED TEXT:

Kleinberg/Tardos Algorithm Design ; written by Jon Kleinberg and Eva Tardos ; published by Addison Wesley ; ISBN 0-321-29535-8

COURSE COVERAGE:

Our coverage will follow the recommendations in the preface of the text. As background and review: As the main course content:
TESTS & GRADING:

Your course grade will be based on your performance on homework and quizzes. There will be approximately five homework assignments and five quizzes. Homework may include a small amount of programming. There will not be any assignments to write long programs.

The problems in the quizzes will be similar to homework problems or portions thereof.

There will be no final exam.

To pass the course you must: If you meet the conditions above I will compute your course grade by giving a weight of 60% to your quiz average and a weight of 40% to your homework average.

MISSED QUIZZES AND LATE ASSIGNMENTS:

I will give no make-up quizzes, late quizzes, or early quizzes.

Get started early on assignments. That way, if you run into difficulty, you can seek help in class and/or office hours in a timely fashion.

I cannot and will not accept late homework assignments.

To "survive" in a class like this, you may need to put aside "foolish pride," stubbornness, and/or shyness. If you find yourself unable to make progress on some aspect of an assignment, seek help from me promptly. You may speak to me after class or during my office hours. You may send me a message by e-mail. You are entitled to get help this way. Please don't subvert your chances of success by continuing to "spin your wheels" until it is too late.

We can have class discussions about quiz dates and due dates. I may be willing to change some of these dates. If you want a change in the schedule, please bring this up (in class, preferably) as soon as possible, and not at the last minute. (It's usually a good idea for class members to try to work out some consensus before bringing the subject up with me.)

If you cannot finish an assignment on time please turn in whatever you have done. Then it will be possible to get some credit instead of no credit.

PARTICIPATION:

College is not for everybody. College demands that the student learn actively and independently.

Naturally college makes demands of the instructor too. I want you to get as much as possible out of this course. I hope to be accessible and helpful to you.

I expect all class members to participate in the class and to be well-informed about what is going on in class. I will keep track of attendance.

Read and study everything I assign as soon as possible. Read difficult material more than once! Attend all classes. Pay close attention. Take notes to help you think about things and remember things. Review your notes before each class. Get started on homework assignments early. Do a little work each day so that work never piles up. Bring your questions and problems concerning assignments to class each day.

Finish assignments and reading on time. Do what you can to keep class discussion lively and to the point. Reply to questions. Ask questions and make remarks if you feel you have something to add or if you want me to explain something better.

RESPONSIBILITY FOR YOUR OWN WORK:

Sometimes it can be difficult for the student to figure out the difference between 'cheating' and 'working smart.' Here is some guidance:

Assignments: When your purpose is to clarify the meaning of the directions I have given for an assignment you may discuss those directions with other people, including your classmates, as much as you like. You may also freely discuss the relative merits of various general approaches to designing and engineering solutions to an assignment.

You may use ideas, algorithms, or segments of program code from
  1. any printed material available for student check-out in our library,
  2. our course text, or
  3. any programming textbooks to which you have access.
You are permitted to share such material, as described in 1-3 above, with other members of this class.

You may ask me for help and hints on assignments. I prefer that you ask questions in class, so that everyone has a chance to benefit from the discussion.

On the other hand, Quizzes: You must write your quizzes with no discussion or help from anyone. The one exception is that you are allowed to come forward and ask me to clarify the meaning of a quiz question, if you wish. It will be up to me to decide how to answer, or whether to answer at all. I will tell the class any new information that arises from such an exchange.

Penalties: If there is compelling evidence that an assignment or quiz was not done according to the above criteria, I will withhold credit.

NETWORK AVAILABILITY OF COURSE MATERIALS:

I make course documents, assignments, supplements, and so on available via the world wide web. To access the on-line CS 4440 materials, just open this URL:

http://www.cs.csustan.edu/~john/Classes/CS4440/

Also, there is a miscellaneous collection of information that you may want to use from time to time. It is located here:

http://www.cs.csustan.edu/~john/Classes/General_Info/