ECS 20 – Discrete Math for Computer Science – Course Information – Fall 2008
Time and place
We will meet
TR 9:00 - 10:20 in 202 Wellman.
There were two discussion sections.
Section 1 meets F 1:10-2:00 in 1342 Storer.
Section 2 meets F 3:10-4:00 in 1128 Hart.
You may attend whichever section you prefer (not necessarily the one you are officially enrolled in).
My name is
My office is in 3009 Kemper.
I can also be reached at firstname.lastname@example.org (but please use office hours
for routine technical questions).
Please go to my homepage
for my current office hours.
There are two TAs assigned to the class:
- Viet Tung HOANG: hviettung AT gmail DOT com
Office hours: Mondays 9-10, 1-3; Wednesday 2-3 in 53 Kemper.
Among other activities, Tung will be teaching our discussion sections.
- Min-Yu HUANG: myhuang AT ucdavis DOT edu
Office hours: Tuesdays 10:40-11:40 in 53 Kemper.
Among other activities, Min-Eu will be doing the grading.
The course web page
contains important information:
it is where your assignments are posted, as well as announcements.
It is a click away from my homepage.
Please check the page frequently.
Newsgroups ucd.class.ecs20 and ucd.class.ecs20.d
exist and may be accessed from URL news.ucdavis.edu (or through your mail client or newsgroup reader).
The first newsgroup is for me or one of the TAs to make announcements
(it might not be used, as I tend to drop announcements on the course web page
On the .d newsgroup students may ask questions to be
answered by me, the TAs, or by fellow students.
Please don’t post your solution to a homework problem on a
The grading criteria this term is:
There will be a single midterm, given on October 30. There will also be
approximately four pop quizzes, each taking about 15 minutes. There is no making up a missed
quiz, but I will drop the lowest score, so as to
effectively ignore a single missed or lousy quiz.
All exams are closed book, closed notes, no calculators.
You must take final exam to get a passing grade in the class.
I also attend to whether or not you have been turning in the homeworks.
- Weekly problem sets - 20%
- Midterm - 20%
- Quizzes - 20%
- Final - 40%
It is possible that the TA will only grade a proper subset
of the problems turned in.
If you believe that a problem was misgraded you may resubmit it for regarding.
Make sure you understand the solution first.
Regarding requests must be done within one week of when the material was returned to you.
If something was just recorded wrong or summed wrong, please show me
after class and I will fix it.
There are several objectives for this class: for you to learn some standard
material in discrete math, particularly those concepts that
arise frequently in computer science; to gain some
mathematical maturity; to improve your skills with technical writing;
and to improve your ability to think creatively in a rigorous domain.
You will not succeed in this class by way of memorization or pattern matching;
it just won’t work. Your goal is to really understand what we cover, not
just kind of vaguely get it.
My impression is that
the standard texts routinely used this course
manage to be lousy and expensive, so here are my (rather experimental) picks:
I don’t expect to assign homework problem
by reference to either book; I will explicitly write down each
problem I assign.
How to Prove It: A Structured Approach, 2nd edition, by Daniel Velleman, 2006.
Doesn’t cover many course topics, but a nice, easy read for many
of the basics. Emphasis is on improving your ability to write proofs.
Schaum’s Outline of Discrete Mathematics, 3rd edition,
by Seymour Lipschutz and Marc Lipson, 2007.
Covers most of the topics of the class (still not everything),
though tersely. I initially thought that just Velleman would do,
but now I suspect that, for most students, this is not the case and
you will want to have both books in hand.
My late change of heart meant that I ordered this second book late,
and so, correspondingly, it will arrive late at the campus
bookstore. If you’d rather not wait, purchasing the book on-line will
probably be faster. About $13.
There are about a zillion more discrete math texts.
The most popular ones might be those by Rosen, Epp, and Johnsonbaugh—just
in case you feel that you’ll do better having a more traditional text.
Student scribe notes
I have decided to try a new experiment this year: I am going to let
the students take turns scribing notes for everyone. Here’s the protocol.
At the beginning of each class I’ll ask for a volunteer scribe for the day.
(If I forget to ask, please remind me.)
You may volunteer as an individual or as a two-person team.
The scribe should then email to me beautiful, well-written, mathematically correct notes
by 8 pm on the same day as the lecture.
Scribing notes will earn you, according to the quality of the notes, up
to 3% extra credit. That is not a small amount—it is certainly
enough to move a borderline student up a half-grade.
But notes must be well done and arrive on-time to earn your 3%.
Notes may be in one of three formats:
raw text (please ensure reasonable line breaks, say no more
than 80 characters wide),
Word (please use Times New Roman font),
or LaTeX (see links on our course homepage).
Raw text really is fine, but you may need a bit of “ASCII art”
to mimic something on the board.
Please name your file according to the lecture number:
scribe1, scribe2, scribe3, etc,
with the appropriate extension of
I will look over the notes you send me and
post them to the course web page, probably the same evening.
Please do not offer to take notes unless you have been understanding the
material and are doing “B”-or-better work; I don’t
want struggling students trying to scribe notes
(you can’t write good notes without understanding what is going on).
Unless indicated otherwise, homeworks will be due at 4:30 pm every Monday.
Turn in homeworks in 2131 Kemper.
Sorry but 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.
I intend for you to find some of the problems challenging,
and it simply may not be possible for you to solve everything.
Doing a conscientious job on the homeworks is by far the best preparation
for the exams, and it is essential for mastery of the material.
Your writeups should be clear, terse and neat.
Aim for elegance.
Typeset solutions are appreciated, and serious, grad-school bound students are encouraged
to learn to use LaTeX.
Understandability of the solution is as necessary as correctness.
Don’t be surprised to lose points if you provide a "correct" solution with a
If you can’t solve a problem, indicate what you’ve tried and where
the difficulty lies; know what you know and be clear about it.
Oddly, many students are happier
to spend long hours hacking in front of a machine than peacefully thinking
beneath a tree.
Computer science is about thinking and problem solving, not about spending
endless hours pounding some hapless program into a
kind-of working state.
I permit but discourage collaboration on homeworks.
This is not the usual perspective you will hear (and it definitely
does not mean that I do not appreciate the value
of working with partners or on larger teams), but
I think that, for the material of this particular
class (and also 120 and maybe 122A), solitary struggling on homeworks is needed for mastering
the ideas. I think that my colleagues and I
all enjoyed solitary struggling through our math and theory courses when we were students.
Hopefully you will, too.
That said, many students insist that they learn best by collaborating, so
If you do, the
manner in which you collaborate will have a
profound impact on how much you get out of the homeworks
(and this, in turn, will
have a big impact on how you do on the exams).
First, think about the problems and try to solve them on your own.
If, after giving a problem some real thought,
you just can not get anywhere with it,
then you might wish to discuss it
with other students, with me, or with the TA.
In any case, you must individually write up all solutions.
Many students try to get through the homeworks by forming study groups
and jointly trying to solve the homeworks.
Evaluate carefully if you are learning
the desired problem solving skills better than if you were
spending the same time trying to get it on your own.
Your goal on the homeworks should not be to maximize your points,
but to help you learn a certain set of material and skills.
If you discuss problems with anyone,
you must acknowledge him/her/them on your homework, with the granularity of
You must likewise acknowledge any books or web pages you have consulted
other than your texts.
Please write up problems entirely on your own
(even if you discuss a problem with someone else).
Don’t look at other peoples’ solutions.
Some homework questions will have been used in prior years.
You may not consult any old problem set solutions from this or
any other class.
Instances of potential academic misconduct will be referred to Judicial Affairs.
If you have a problem or academic advising question you want to discuss, please feel welcome to come
I am forever too busy, have a terrible memory for names, and essentially cannot
recognize human faces at all. Honest.
Yet it doesn’t mean that I don’t care about my students.
This class will provide your first small glimpse of theoretical computer science. I hope you like
what you see.