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
-
ucd.class.ecs122a -
This is for the instructors to communicate
things of general concern to the class. This sometimes includes
important announcements, like
corrections/clarifications to homework problems. Please read
this newsgroup regularly; you are responsible for
anything on it. Don't post to this newsgroup.
Use the following newsgroup instead.
-
ucd.class.ecs122a.d -
This is the discussion newsgroup
which you may use to communicate among yourselves, and also to
ask questions directed to other students at large, or to the instructors or TA.
Read this newsgroup or not; the the choice is yours.
Obviously you should not post anything that amounts to a solution
to a homework problem.
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.