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

You are responsible for all information on this webpage.

Homepage

The course webpage is a single click from my personal hompage. It is not on smartsite. Please visit the course webpage page regularly. I will assume that any announcements put there will be read within 24 hours. It is where assignments and most everything else can be found.

Meetings

Staff

See Prof. Rogaway’s homepage for current office hours.

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 pass the class you must pass the final and submit serious attempts at the majority of homeworks.

Quizzes will be about 20 min and will start promptly at the beginning of class. The midterm 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 missing grade.

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

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:45 am sharp. Turn in your homework at the appropriately-labeled box in Kemper 2131. Late homeworks are not accepted. Homeworks may not be turned in in class.

You are responsible for picking up all material returned to you and retaining all material until the end of the term. If for some rany 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 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. It’s a good book, but the standard US edition is unconscionably expensive (like $191). Shop around. You are quite welcome to use a prior edition, 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 gently 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

For all exams (quiz, midterm, or final), you may not sit next to a friend. “Friend” means anyone you’ve ever discussed course-material with and whose name you know (first name, last name, or nickname). “Next to” means that the person is the person on your left, right, front, front-left, or front-right. Not only does this rule help avoid temptation, but students who have worked closely together can end up making similar errors on exams. If you are sitting next to that person, we are more likely to notice and be concerned by the similarity.

For exams, cell phones should must be turned off (not just silenced). In an exam, a cellphone may not be used as a timepiece.

If you discuss homework 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). Unfortunately, some terms I have many referrals. I personally believe that those who cheat should be dismissed from the university on on first offense. SJA takes a more liberal approach, giving people second chances and sometimes more.

If you cheated on an assignment or exam then, beyond whatever SJA does, please do not show up for the final exam. Instead, please take your “F” grade for this term and retake the class.

If you are having personal or academic problems motivating you towards academic misconduct, please come and talk to me instead. Really I am not an ogre!

If something looks suspicious on an exam or homework, I might request to see your prior homeworks or exams. You are responsible for picking up your old homeworks and exams, retaining them until the end of the term, and producing them if so requested. I appreciate your understanding.

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 my favorite technical class in the CS/CSE curricula. We get to forget about those messy physical machines that lead man to every greater distraction and mischief and address the question of what is computation. What could be more interesting or fun?

Parting thoughts

This is my favorite technical class in the CS/CSE curricula. We get to forget about all those physical machines that lead men to every greater distraction and mischief, and get at the question of what is computation. What could be more interesting or fun?