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, USA

robins@cs.virginia.edu
www.cs.virginia.edu/robins
Phone: (434) 982-2207, Fax: (434) 982-2214
Office: 210 Olsson Hall
Gabe's vitae / resume (NIH Biosketch)


CS6160 - Theory of Computation Blog, UVa

Questions and answers regarding the CS6160 Theory of Computation class material will be accumulated in this file throughout the semester. Please browse through it often.
The questions in this file are organized by the following categories; you may peruse this file sequentially, or jump directly to the category of your choice by clicking on one of the following links:

General administrative Q and A


The best way to see the latest state-of-the-art in theory and algorithms research is to look at the most recent papers published at the top theory & algorithms conferences and journals, namely:

Most of the citations in the Web pages above do not include the full text / PDF of the actual paper, but if you do a Google search for the paper's title (and/or author list), you'll very quickly find the full text / PDF of the actual paper (usually located off of the author's home page).

To do specific topic searches for CS papers, two great online bibliographic search resources are Citeseer and Google Scholar, which data-mine the Web's publication archives and rank the papers by the number of citations (i.e., how many other papers refer to a given paper), so the most relevant papers tend to be listed first (like Google search does). It also provides the PDF/PS to most of the papers there (hundreds of thousands of CS papers in all). I highly recommended both Citeseer and Google Scholar as literature-searching resources!

Keep in mind that the sources listed above contain thousands of very interesting papers (as well as hundreds of thousands of other papers), so you can spend a lifetime on these sites and still not read everything. So please don't get lost or discouraged by this mountain of knowledge.

If you want a more gentle introduction to recent theory and algorithms research, I recommend starting with the Sipser theory textbook, and the Cormen et al. algorithms textbook (especially the "advanced topics" chapters) and tracking down the original papers mentioned in the "Chapter Notes" at the end of each chapter, and also looking at more recent papers published in those same conferences and journals, etc.) Some of the puns in the Cormen algorithms textbook are explained in http://mitpress.mit.edu/algorithms/profjokes.html - Enjoy! :)


Note: "extra credit" points will not hurt those who don't receive them in this class, since as I explained in class once, at the semester's end, I take a first pass and assign grades while *completely ignoring* extra credit points for everyone; then, I take a second pass and raise (but never lower) the grades of those who received enough extra credit points to bring them up into a higher category w.r.t. the first pass.

This is really the only fair way to implement "extra credit" so it is exactly that, namely "extra" (i.e., so it does not hurt those who didn't earn it). Also, I have no grades "quotas" - if everyone aces the course, then everyone will receive A's.

So, please view extra-credit as the positive and helpful opportunities that they are intended to be.

For the project, I offer one extra credit point for every day that you turn it in early (last day to turn it in is the day of the final).


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 my Emails' "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. The 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". 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.

And one interesting extra-credit problem that will be described in the first lecture is whether five test tubes can be simultaneously spun in a balanced way in a 12-hole centrifuge. (Please rigorously prove or disprove it, using 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!


Q and A regarding the handouts/slides


On the definition of antisymmetric relations, lets use the slightly modified definition, where a relation R is antisymmetric if R(a,b) is not equal to R(b,a) unless a=b. This (i.e., excluding self-related elements (a,a) from the antisymmetric constraint) allows a relation to be reflexive and antisymmetric simultaneously. Thanks to the people who pointed out this issue!

Q and A regarding the project


Q: We are done with our class project. When can we show you the demo?

A: You can demo your project after any class meeting.


General technical Q and A


Q and A regarding homework number 1


Q: Is a closure _necessarily a minimum_ set that satisfies a property on a set, i.e. { reflexivity, symmetry, transitivity, ... } ? A relation that contains a closure on a set is not itself called a 'closure' because it is not minimum, is that correct?

A: A closure of a set is a "minimum" superset containing the set, and still closed under the operation or propetry in question. (By "minimum" we mean the intersection of all sets satisfying that property.) So if a set contains a "smaller" (subset) that's still a closure (w.r.t. the same operation), then that set is not the "smallest" closure of the original set.


Q: RE "the rationals crossed with the integers", what is this set?

A: The rationals crossed with the integers is the set of all ordered pairs such that in each of the ordered pairs in this set, the first element is a rational number and the second element is an integer; i.e., it is the set: { (a/b , c) | a, b, and c are all integers}


Q: Does the term dovetailing have any special meaning other than interleaving? I have been used to using the later but not the former. The Wiki explanation doesn't seem to suggest anything in particular. Perhaps interleaving is just more general and may not imply dovetailing as a procedure?

A: Dovetailing and interleaving are certainly similar concepts. The description at http://en.wikipedia.org/wiki/Dovetailing_%28computer_science%29 seems too short and should probably cover more cases and examples. There are more subtle examples of dovetailing / interleaving where we take a systematic path through a very abstract mathematical space (e.g., Chess / Go board positions, multivariate polynomials, higher-dimensional matrices, hyper-graphs, etc.) where there may be no nice and easy single "picture" to illustrate it graphically, like we did in class with our "dovetailing" through the rational numbers. But these are still (more general) instances of "dovetailing", or "interleaving", however you prefer to think about it.


Q: For question #19, do you want a proof or just examples?

A: In #19, examples *are* proof, actually.


Q: If the complex numbers are closed under exponentiation, then when you pick a complex number and apply an exponentiation operation, the result is a complex number, right? When you were asking what was the value of i^i, if that resulted in a non complex number, that would imply that the complex numbers were not closed under the exponentiation?

A: Yes - the question was general - namely to determine whether it is always the case that (a+bi)^(c+di) is a complex number (as opposed to something else), for any real a, b, c, d (except perhaps when they are all zero, in which case the result 0^0 is undefined). The case of i^i is a special case of the above general question (and i^i happens to be equal to a periodic set of real numbers, as we discussed in class yesterday). If i^i was not a complex number, then the more general question above would be answered in the negative through this counter-example. But since i^i is indeed a complex number (and in fact even a real number), that does not settle the general question above either way, and a more general proof is still needed.


Q: In Problem Set 1, I am confused by the expression 2^{1,2} and how to interpret it.

A: This is the "powerset" or set of all subsets, as described on page 5 of the handout I mentioned in recent Email (and which is also linked from the class Web site) - see: http://www.cs.virginia.edu/~robins/cs6160/basics.pdf


Q: In question 11b, what constitutes a function "mapping reals to reals"? Does this mean any function that maps at least one real to another real? Or does it only include functions whose domain is the whole real line?

A: The domain and range of such functions is the set of real numbers R, but note that such a function does not have to be a bijection, be even defined everywhere on R. For example, the sqrt(x) function from reals to reals is not defined on the negative reals, 1/x is not defined at zero, and the function "f(x) = 1/(x-x)" is nowhere defined on the reals, but these are all still "functions from reals to reals". So the set of functions in this question refers to absolutely *all* possible functions from R to R, regardless of their other properties.


Q: For Problem 20b which reads (L+ = L* - {^}), what does the "{^}" notation mean? Is it correct to assume it's the circumflex character? Also, does the subtraction notation mean "the language L* without {^} in it?"

A: The symbol ^ in the context of formal languages denotes the empty string (sometimes also denoted by the Greek letter epsilon). And yes, the expression L* - {^} denotes set subtraction (i.e., the set L* minus the set {^}).


Q: For True/False or Yes/No questions, how much explanation are you looking for in the answers?

A: For any problem in this course (whether on homeworks, exams, or for extra credit), you should always supply an explanation/proof of your answer. Basically, please explain your answers to me similarly to how you would like me to explain my answers to you. It does not have to be a *completely* detailed and formal writeup, but it must be rigorous enough so that it contains all the essential insights, and can be easily converted into a rigorous formal proof, if necessary (i.e., please try to make your answers as convincing and detailed as the explanations & proofs that I give in class).


Q: In 16 of Homework 1, is the question stating that you can only have either 3 mutual strangers or 3 mutual acquaintances, but that you can't have both? By 3 mutual acquaintances, does it mean that each person in this group of 3 knows the other two people (ie A knows B, A knows C, and B knows C)?

A: Mutual friends all know each other (i.e., each one knows each and every one of the others). Similarly for mutual strangers. The question asks for a proof that there always exists either a group of three mutual strangers, or a group of three mutual friends, or possibly both. (Or even larger groups of mutual friends or strangers; but note that a group of four mutual friends also automatically contains a group of three mutual friends - i.e., any subset containing three of the four would constitute such a subgroup). So these various case are not mutually exclusive.


Q: Question 11 on the HW asks "What is the cardinality of each of the following sets?" I am not sure what an answer "looks like", since most of these sets are infinite.

A: The answer should indicate how "big" of an infinity each set is (e.g., that of the Naturals, the Reals, the Powerset of the Reals, etc.)


Q and A regarding the midterm



Q and A regarding the final



Return to Gabriel Robins' home page


EMail to EMail to robins@cs.virginia.edu