Welcome to the Theory of Computation course! (CS6160)

All CS6160-related materials (including the overhead slides) will be posted at the CS6160 Web site. The first lecture slide set is already posted there.

If I am missing any CS6160 students in this Email's "to:" list (or if you prefer to receive Email at a different address than the usual UVa-assigned Email address), please let me know and I'll modify my CS6160 Email list accordingly. This Email list will serve as a primary means of communication among us in CS6160, so it is important that the CS6160 Email list includes *everyone* in the class (whether they are enrolled for a grade, auditing, or just sitting in on some lectures).

Our textbook is Sipser's Introduction to the Theory of Computation, Second Edition (published in 2005), which is also available as a searchable PDF here. (While the downloadable PDF version of the book is convenient, please respect copyright laws and also purchase a properly licensed copy.)

If you are using the "international edition" of this textbook, please be aware that some of the page numbers and question numbers may be different there from the official Second Edition above. So please don't blindly use the international edition to refer to specific page numbers and question numbers, without also consulting the official Second Edition to make sure that you are solving the right problems, etc. This is an important issue, otherwise you'll be solving the wrong questions than the ones actually asked on the problem sets. (If necessary, you can borrow the official Second Edition version of this book from someone from your study group, photocopy the relevant pages, etc.)

Please read the very useful handout, which lists the definitions of most of the important concepts that we will cover in this class. Please refer to this handout throughout the course.

Here are some fun articles that you should read, covering numerous fascinating topics in theory, algorithms, exotic computation models, possible CS technology futures. These essays will introduce you to many new ideas and will help expand your mind, your thinking processes, and your problem-solving skills. You can read these essays at leisure over the course of the semester (say two to three articles per week - they are pretty short), but please finish reading all of these essays by the end of the semester.

One particularly good article there is "Who Can Name the Bigger Number?". Please read this article ASAP, and for extra-credit EMail to me a paragraph describing what new or surprising things you learned from this article. (All essays / articles / videos that you read / watch in connection with this class are worth one extra-credit point each. Simply Email me a paragraph description to claim the extra credit on anything.)

I also included on that CS Readings Web page some links to good Wikipedia articles on various topics relevant to this course, as well as links to several good books. For example, a good classic (and easy to read) tutorial book on problem solving is Polya's "How to Solve It" (also available as a PDF here). Another great easy-reading fun book on infinities and other deep and subtle mathematical concepts is Rucker's "Infinity and the Mind". I highly encourage everyone to read these two books. (These two books are probably one of the best ways to spend ten bucks that I can think of.)

Links to more advanced topics in CS theory and algorithms (from the leading conferences and journals on these topics) are available.

Remember: while I can *introduce* you to lots of cool ideas, it is then up to you to do the remaining "heavy lifting" yourself - i.e., following up on class discussions by reading up on these topics in greater detail, going to other sources, solving lots of problems, working in groups, etc. (Classroom time is relatively short, and as researchers and scientists, a lot of of your individual learning needs to occur outside of the classroom.)

If you haven't done so already, please watch the "Time Management" video lecture of Randy Pausch (given at UVa in Nov 2007), as well as his "Last Lecture".

The "Time Management" video in particular is the best talk on this topic that I ever heard, and the hour that you spend watching it will pay you back by a factor of thousands over your career in terms of time saved and productivity gains. The slides for the "Time Management" lecture are available also, along with more information about Randy Pausch. (BTW, Randy's lectures& book are required reading for all entering students at CMU.)

Please watch these two videos ASAP (and for extra-credit submit a paragraph describing what new / surprising things you learned from each).

Finally, another fascinating video that I'd like you to watch is "Powers of Ten", which presents a wonderful visual depiction of the power of exponentials, in terms of the scale of the physical universe.

I hope that you enjoy the above materials and resources as much as I do!

Finally, as I mentioned in class, start working on the problem sets and please work in groups on these problems. Recall that I promised that most of the midterm& final exam questions will come verbatim from these problem sets.

Please solve as many of the pending extra-credit problems as you can, and try to give proofs and arguments that are as elegant, simple, and general as possible.

I look forward to sharing with all of you a fascinating journey of discovery, insights, and problem solving!


Dr. Gabriel Robins
Professor of Computer Science
Department of Computer Science
School of Engineering and Applied Science
University of Virginia
151 Engineer's Way
P.O. Box 400740
Charlottesville, VA 22904-4740
(434) 982-2207