ECS 20 — Discrete Math for Computer Science — Course Information — Fall 2013

Time and place

We meet TR 1:40 - 3:00 in Giedt 1003.

There were two discussion sections.
    Section 1 meets M 11:00-11:50 in Wellman 230.
    Section 2 meets M 3:10-4:00 in Wellman 216.
You may attend whichever section you prefer (not necessarily the one you are officially enrolled in).


My name is Phil Rogaway. I am a professor here (=UCD) whose work is in cryptography.
My office is in 3009 Kemper.
I can also be reached at — but please use office hours or the newsgroup, rather than email, for routine technical questions.
Please seem my homepage for my current office hours.

Teaching Assistants and Reader

There are two TAs assigned to the class:

Course webpage

The course web page it is where you’ll find assignments, solutions, and so. It is a click away from my homepage, on the CS Department’s web server (not on SmartSite). Please check the page frequently.

Chat room

You are welcome to use the
chat room to ask questions of me, the TAs, or your fellow students. But please don’t “give away” the answer to homework questions on this page..


The grading criteria this term is: To get a passing grade in the class, you must pass the final exam. Also, you must turn in the first two homeworks (with reasonable attempts at solutions) and take the first quiz. The reason for the rule of the last sentence is enrollment pressure: to make space for those who want to take the class, I need to “force” people to drop the class if they’re not going to be engaged in it from the beginning. There is no making up a missed quiz, but contact me if a documented illness caused you to miss a quiz. All exams are closed book, notes, and gadgets.

I expect that only a proper subset of your homework questions will be graded. With a class this big, there isn’t time to grade every problem, every week.

If you believe that a problem was misgraded you may resubmit it to a TA 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.


In this class, I hope that you will: (1) gain some mathematical maturity; (2) improve your ability to think creatively in a rigorous domain; (3) improve your skills with technical writing; and (4) learn some standard material in discrete math. You will not succeed in this class by way of memorization or pattern matching; it just won’t work. Your goal is to thoroughly understand what we cover and to be able to invent around it.


I haven’t really liked any of the books I’ve seen in this area: they are often boring, or ludicrously expensive, or poor examples of how to be write mathematics. Often all three. Nor am I sure that all students need a book for a course like this. All that said, most students do want to have some particular book(s) at hand, so I requested the UCD bookstore to order the following, recommended texts.
  1. Discrete Mathematics, by Norman Biggs, 2003.
  2. Schaum’s Outline of Discrete Mathematics, by Seymour Lipschutz and Marc Lipson, 2009.
Another nice books for this class is How to Prove It, by Daniel Velleman (2006). Its emphasis is on improving your ability to write proofs.

There are a zillion more discrete math texts. The most popular ones are by Susanna Epp and by Kenneth Rosen. Either would work well if you want a more traditional text. These and other popular textbooks are updated frequently (the above pointers are to the fourth editions), but the old editions are as good as the current one, and should be way cheaper.

I don’t expect to assign homework problem by reference to any book: I will explicitly write down each question in full.

Problem sets

Unless indicated otherwise, homeworks will be due at 4:15 pm every Wednesday. The first problem set will be due October 2. Turn in homeworks in 2131 Kemper. Homeworks will probably be picked up promptly. 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 the best preparation for the exams, and 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 (if the two can even be distinguished). Don’t be surprised to lose points if you provide a “correct” solution with a poor writeup: presentation (always) counts.

If you can’t solve a problem, please indicate what you’ve tried and where the difficulty lies; know what you know and be clear about it. Never try to “bullshit” an answer you can’t figure out.

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 teams). But I think that, for the material of this class (and also for ECS 120 and maybe ECS 122A), solitary struggling on homeworks is needed for mastery. When we were students, my colleagues and I enjoyed working, alone, on our math and theory courses. Hopefully you will too.

That said, I understand that there are many different learning styles, and that many students do best (or think they do) by collaborating. If you do work with others, the manner in which you do so 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 exams). Here’s what I suggest. First, think about the problems and try to solve each on your own. If, after giving a problem some real thought, you can’t get anywhere with it, then discuss it with others.

Your goal on the homeworks should not be to maximize your points, but to learn a certain set of problem-solving skills.

Academic misconduct

If you collaborate with anyone on a homework problem, you must identify them on your solution. You are not penalized in any way for this—it is just a matter of academic honesty. You must likewise acknowledge any books or web page you have consulted other than the two “official” official texts. Unless otherwise instructed, you must write up problems entirely on your own.

Some homework questions will have been used in prior years. You absolutely may not consult any old problem set solution in preparing your own. This includes both problem set solutions from prior years of ECS 20 and problem set solutions from other institutions. In recent terms we keep “catching’ people violating this. It is easier to spot than people seem to think.

All instances of apparent academic misconduct will be referred to Student Judicial Affairs (SJA). And, I should tell you, I have grown tired of students cheating. If asked (and we usually are), I will likely advocate for the maximum penalty that SJA will permit.

If you have a problem that is driving you towards academic misconduct, please come see me.


I am one of the CS Department’s UG advisors (indeed I’ the “Chair” for UG advising), and I really do like to help advise students where I can. Top students especially should come see me, for advice on matters like admission to top graduate programs. I am forever busy, and have a terrible memory for names, and really cannot recognize human faces whatsoever (honest). All of this might make you think me indifferent. It is not so.


A final little request: please do not wear scented products when you come to see me in advising hours: I might not be able to breathe. I will also have problems if you’re a smoker (but, hopefully, none of you would do something as off-putting as that).

Closing remark

This class will provide your first small glimpse of theoretical computer science. I hope you like what you see.

Kind regards,
Phil Rogaway

Instructor’s homepage