ECS 122A - Algorithm Design and Analysis - Spring 2000

Course Information Sheet

March 31, 2000



You are responsible for everything on this handout. Read it!

Lectures

Lectures are given MWF 1:10-2:00 pm in 1130 Hart. The CRN for this class is 54682.

Discussion Sections

There are discussion sections W 4:10 - 5:00 pm in 146 Olson and W 5:10 - 6:00 pm in 146 Olson. Go to whichever time suits you.

Instructor

Your instructor is Phillip Rogaway. Engineering II, #3063. Phone: 752-7583. rogaway@cs.ucdavis.edu . http://www.cs.ucdavis.edu/~rogaway/. Office hours: See the course Web page.

Teaching Assistant

Your TA is Kim Knowles. Engineering II, #3080. knowles@cs.ucdavis.edu. Office hours: See the course Web page.

Prerequisites

Minimal prerequisites are ECS 20 and ECS 110. Mathematics majors might do fine without ECS 20. You will probably end up failing if you try to take this class without having acquired a basic understanding of algorithms and data structures (ECS 40 and ECS 110 material) and some basic mathematical maturity.

Textbook

Introduction to Algorithms, by Cormen, Leiserson and Rivest. Often called "CLR." Reading the book strengthens the mind; carrying it strengthens the body. We've been using the same book for 122B and 222A, should you end up taking either of these classes in the future. It's a good reference for the practicing computer scientist. Clearly I will not cover all of its 1000+ pages.

Course Web page

I will maintain useful information on the course Web page: http://www.cs.ucdavis.edu/~rogaway/classes/122A/spring00/ . Visit this page regularly to see what's new. If you miss a handout, get it from here.

Newsgroups

E-mail questions

Sorry, I do not not normally respond to questions on course material sent to me by e-mail. There just isn't time. Please see me in office hours instead, or see the TA, or use the newsgroup. Similarly, I can't routinely see students outside of office hours, if at all possible, please stick to the times I've set up.

Grading

There will be weekly problem sets (25%), a midterm (20%), quizzes (15%), and a final (40%). The midterm will be given in class on Monday, May 15. The quizzes may be unannounced, and there will be two or three of them, each taking up about 25 minutes. There is no making up a missed quiz. All exams are closed book/closed notes. It is possible that the grader will only grade a subset of what is turned in. Your grade could differ from what one gets by applying the above percentages. Among the factors that may cause this: (1) You must pass the final to pass the course. (2) If you are missing a single quiz, I will find a way to effectively ignore it (that is, you won't be penalized).

Homeworks

Homeworks are due at 12:10 pm on the indicated date, to be turned in at the marked box in Engineering II, #2131. No late homeworks will be accepted.

Much of what one learns in this course comes from trying to solve the homework problems, so work hard on them. Doing a conscientious job on the homeworks is the best preparation for the exams. I hope that you will ultimate solve the majority of the problems, but don't be surprised if some of them stump you; some of the problems may be quite challenging.

Your solutions should be terse, correct, and legible. Understandability of the solution is as necessary as correctness. Expect to lose points if you provide a "correct" solution with a not-so-good writeup. As with an English paper, you can't expect to turn in a first draft: it takes refinement to describe something well. Typeset solutions are always appreciated, and serious students are strongly encouraged to learn LaTeX and to prepare there solutions using it.

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 us.

I have found that some students are willing to spend long hours in front of a machine but are unwilling to spend those same hours thinking about a problem. Don't be that way.

If you think a problem was misgraded, please see the TA first. For re-grading requests, you have one week after material (exams or homeworks) is returned to you.

Collaboration

Collaboration on the homework problems is discouraged. In our experience, acquiring the skills that the homeworks are trying to instill is a quite solitary endeavor. You need to sit under a big tree and think until the moment of insight hits you. It might never come, but, even if it doesn't, the experience may still be of more value than what often transpires in a discussion group.

That said, it is recognized that different people learn differently, and so I do not prohibit you from interacting on homeworks. But: if you get an idea from any source other than lectures or your textbook, you must acknowledge the source of the idea in your writeup. This doesn't affect your grade. Of course homework solutions must be written up entirely on your own.

Working together to try to understand lecture material or material in the text is fine.

Academic misconduct

If you discuss problems with anyone, acknowledge him/her/them. Also acknowledge any books which you consulted other than your own.

Write up problems entirely on your own (even if you discuss a problem with someone else). Don't look at other peoples' solutions. Highly similar writeups will be considered cheating.

Many homework questions will have been used in prior years. You may not consult old problem set solutions for this class (neither solutions of another student from a prior term, nor solutions handed out in class from a prior term). If your homework resembles the grader's solution he's bound to notice, and you'll have a problem you don't want to have.

All instances of academic conduct will be referred to Judicial Affairs.

A friendly warning

This will be a difficult class. I really want you to think. Don't try to solve the problems by doing some sort of "pattern matching." It won't work. You might find any of the following hints helpful. Don't get behind. Be selective in note-taking. (Often it works better to just sit there and really listen.) If you feel you need comprehensive notes, team up with someone else so that you only sometimes have to scribe notes. Work on your own. If you do get involved in a study group, don't let it degenerate into collective attempts to solve the homework problems.

Syllabus

There is a list of topics on line, but I won't get to every topic on this list. There is also an old lecture-by-lecture outline from a prior term. This year will be similar, but there will be differences.

Advising

If you have a problem, please come to see me. I never cook up and eat a student, even if I'm hungry. I am too too busy, and have a terrible memory for names and faces both, but it doesn't mean that I don't care. Please feel comfortable to come talk to me.

Parting Thoughts

Some algorithms experts are lousy programmers, but no good programmer can be bad at algorithms. For to be a good programmer you must carry in your head a collection of algorithmic ideas that arise again and again; you must constantly invent new algorithms (or modify old ones); you need to be able to analyze algorithms (so you don't waste time coding ineffective solutions or optimizing irrelevant parts of a program); and you need to be able of read and understand literature which specifies non-trivial algorithms. If you think that this subject is useless, you are mistaken; in some sense, algorithm design and analysis is the essence of what we do as computer scientists.