ECS 120 – Theory of Computation – Spring 2014 – Phillip Rogaway

You are responsible for all information on this webpage.

Homepage

The course webpage is a single click from my homepage, www.cs.ucdavis.edu/~rogaway/. It is not on smartsite. Please visit the course page regularly: I will assume that any announcements put there will be read within 24 hours.

Staff

See Prof. Rogaway’s homepage and the course webpage for office hours.

Meetings

Courtesy

While some of the following may seem too obvious to say, experience has taught me to say it.

Grading

The anticipated breakdown is To get a passing grade in the class you must turn in the first homework, take the first quiz, and get a passing grade on the final.

Quizzes will be 15-25 mins, starting promptly at the beginning of class. The mideterm will consume the whole class. If you are ill for a single exam other than the final, please provide medical documentation and I’ll use the other non-final exams to determine your exam grade.

In assigning grades I may deviate from the stated numerical percentages if I see a good reason to do so.

We no longer have adequate instructional resources to grade all problems on all the problem sets, so I expect that only random problems will be graded from each.

If you believe a homework problem was misgraded, please return it to the TA, with a note, within one week of when the problem set is returned. If you think that an exam was misgraded, please return it to the instructor, with a note, within one week of when the exam was returned.

Homeworks are due on Fridays at 10:40 am sharp. Turn in your homework at the appropriately-labeled box in 86 Kemper (in the basement).

As a convenience to you, I will also accept homeworks that are placed on the table in the front of the classroom before lecture begins. Beware that once I start lecturing, at 11:00 sharp, I gather these up and don’t accept additional homeworks. Late homeworks are not accepted.

You are responsible for picking up all material returned to you and retaining all material until the end of the term. If for some reason I ask to look at any of your work again, you need to be able to produce it.

Much of what one learns in this course comes from trying to solve the homework problems, so please work hard on them. I intend for you to find some of the problems challenging. If you’re keeping up with the course and are reasonably creative, you should be able to solve most or all of the problems within a few hours. But a few of the problems you might not be able to get. Don’t let this discourage you. Doing a conscientious job on the homeworks is the best preparation for the exams, and it is essential for mastery of the material.

In preparing homework solutions, you absolutely may not consult old problem-set solutions, either the instructor’s or another student’s, either of this course or someone else’s course.

Oddly, many students are more willing to spend long hours hacking in front of a machine than to spend them peacefully thinking beneath an old oak tree. Give the other mindset a try, I suggest.

Your writeups should be clear, grammatical, terse, and neat. Obsess a little. Aim for elegance. Writing quality is considered. Exams may include essays. I encourage you to typeset your solutions. I encourage top students, including anyone bound for graduate school, to use LaTeX. The elegance you should strive for includes everything from high-level ideas to making sure the ink cartridge in your printer isn’t about to run out. As with an English paper, please do not turn in a first draft. Your writeup should be prettier than any first draft could be.

For additional information, see my note on grading.

Text

The official course text is by Michael Sipser, Introduction to the Theory of Computation, 3rd edition, 2012. We will cover most of what’s in Chapters 0–5 and 7.

The book is unconscionably expensive — something like $175. Given the excessive price and just how standard and old the material is, you are quite welcome to use a prior edition of Sipser, or to employ any other theory-of-computation book you like.

Online Lectures

Prerequisites

ECS 20 is a “serious” prerequisite in the sense that you will not do well in this course if you do not have a level of mathematical maturity consistent with having taken, and understood, ECS 20. In particular, you need to be able to understand and create proofs. If you are a CS major who has trouble with math, consider taking some or all of your math electives before taking this class.

Collaboration

For this particular class, I discourage collaboration on homeworks. I believe that learning the material in this subject is a struggle for which lots of time working with others probably will not help. When I have asked theoretical computer scientists if they collaborated on theory or algorithms homeworks when they were undergraduates, they answer is invariably no. (Of course you can explain that in a variety of ways.)

The above said, I do not prohibit collaboration on homeworks, and some students sincerely believe that they learn better with it. No doubt some of them are right. If you do collaborate, the manner in which you do so may have a profound impact on how well you understood the homeworks (which will likely have a profound impact on how you do on exams). First, think about the problems. Figure out precisely what they mean and try to solve them on your own. If, after giving a problem some real thought, you still can’t get it, then you might wish to discuss it with other students, with me, or with the TA. That’s my suggestion.

Academic misconduct

If you discuss problems with anyone, you must acknowledge him/her/them in your writeup. Also acknowledge any books or web resources you consulted other than Sipser. You’re not penalized in any way for doing this, but a failure to acknowledge people or resources used is both impolite and dishonest. Write up problems entirely on your own even if you worked a problem out with someone else.

Some homework questions will have been used in prior years, either by me or by other professors. You may not consult old problem-set solutions for this class, nor those of any related classes. Not “official” solutions dug up from the web, and not those from another student in a prior term.

I refer all academic misconduct matters to Student Judicial Affairs (SJA). If you are having personal or academic problems motivating you towards academic misconduct, please come and talk to me instead. I’m not an ogre. (Then again, most ogres do say that.) Last time I taught the class (Spring 2013), there were 13 referrals to SJA.

If something looks suspicious on an exam , including suspicious things on someone else’s exam, I might request to see some or all of your prior homeworks or exams. You are thus responsible for picking up your old exams, retraining them until the end of the term, and producing them if so requested.

Hints

I’ve heard some students claim this to be the hardest class they take at UCD. So let us give you a few hints explaining what I am after and how to do well.

First, I really want you to think. Don’t try to solve the problems by doing some sort of “pattern matching.” It might sound like the quickest way to get there, but it just doesn’t work. This course is about learning a certain sort of problem-solving skill more than about learning some specific material. Keeping this in mind may help put things into better perspective.

Even more than with other courses, you must not get behind. The class keeps building on what has come before. Don’t lose the thread. If you get seriously behind you will probably find it impossible to get back on track.

Be selective in note-taking. Actually, I would suggest that you take no notes at all: the book is good, and I think it works best to sit back, listen, think, and follow. If you feel you must have notes, you might team up with others and take turns.

If you get involved in a study group, don’t let it degenerate into an attempt to get as many homework problems aren’t worth that much of the grade, and their purpose is to guide you to learning how to do this stuff. If you don’t learn the material in the homeworks, you won’t be able to do the exams. You’ll probably learn more struggling on your own.

Parting thoughts

This is one of my favorite courses in the CS/CSE curricula. We get to forget all those silly machines and get at the question of what is computation. What could be more interesting or fun?