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 |

For additional important information and announcements, please read all the "Emails to the Class" on the CS6161 Web page.

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
- Q and A regarding the handouts/slides
- General technical Q and A
- Q and A regarding problem set 1
- Q and A regarding the Midterm
- Q and A regarding the Final

Q: Just to clarify, although three assignments are due each week, if if I was to submit 9 the first week, would I would be fine for the next 3 mondays?

A: Yes, that would be fine - the idea is to not drop below the 3-per-week average overall, cumulatively speaking. This policy is designed to help you avoid "cramming" at the end of the semester, and also to help you retain more of the knowledge by pacing it more evenly.

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:

- Symposium on Discrete
Algorithms (SODA)
- IEEE Symposium on Foundations of
Computer Science (FOCS)
- ACM Symposium on Theory of
Computing (STOC)
- ACM Symposium on
Computational Geometry (SCG)
- Theoretical Computer
Science
- ACM Transactions on
Algorithms

Most of the citations in the Web pages above do not include only titles and abstracts rather than 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.

For a great introduction to algorithms I highly recommend Cormen et al's Introduction to Algorithms, 3rd Edition (2009) (especially the "advanced topics" chapters). For your convenience, a searchable PDF version of the textbook is available (but please respect copyright laws). Some of the puns in the Cormen algorithms textbook are explained in here.

A great introduction to computation theory is Sipser's Introduction to the Theory of Computation, Second Edition (published in 2005). (The Third Edition of this book came out more recently). A searchable PDF version of the textbook is available (but please respect copyright laws). For a deeper understanding of a topic please track down the original source papers mentioned in the "Chapter Notes" at the end of each chapter, and also look at more recent papers published in the relevant conferences and journals.

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.

Q: For question 2, the shortest path and minimum number of edges, which holds higher priority?

A: It's not a matter of priority, but rather a tie-breaking issue: among all shortest paths (all having the same minimum-cost pathlength), pick the one with the least number of edges.

Q: Does question 5 refer to the number of paths between two specific given nodes?

A: Yes.

Q: For the question regarding "N segments on a line", do "intersections" mean the same thing as "overlaps"?

A: Yes.

Q: What does "mutual intersection" of N recrangles mean?

A: It means the intersection of the interiors of all N rectangles, if it exists.

Q: Can we assume non-negative edge weights for graphs?

A: Yes.

Q: On the midterm, there are two parts, namely "Algorithm Idea" and "Algorithm Details", on the answer sheet. What's the difference between the algorithm idea and the algorithm details?

A: the "Algorithm Idea" part is a *short* (one sentence or so) description of the key insights of the algorithm, while the "Algorithm Details" expands on that and describes the various details of the algorithm, data structures, subroutines used, etc.

EMail to robins@cs.virginia.edu