|
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 |
All CS6161-related materials (including the problem sets) will be posted at the CS6161 Web site. The first three problem sets are already posted there.
If I am missing any CS6161 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 CS6161 Email list accordingly. The class Email list will serve as a primary means of communication among us for this course, so it is important that the CS6161 Email list includes *everyone* in the class (whether they are enrolled for a grade, auditing, or just sitting in on some lectures).
Please review the very useful handout reviewing some of the definitions of important concepts that we will use in this class, and refer to it throughout the course.
I posted some fun articles that I would like you to read, covering fascinating topics in theory, algorithms, exotic computation models, possible CS technology futures, etc. These essays will introduce you to many new ideas and will help expand your mind and your thinking processes. 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 submit 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.)
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.)
I also compiled links to more advanced topics in CS theory and algorithms (from the leading conferences and journals on these topics).
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 & 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. His "Time Management" lecture slides are also available. More information about him is available at the Randy Pausch Legacy Web page. (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 & resources as much as I do!
Finally, as I mentioned in class, start working on the problem sets (posted on the class web site) ASAP, 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.
Thanks,
Gabe
p.s. Here is the extra credit problem which is due next Tuesday (Aug 30):
"Write a C (or C++ or Java) program that prints itself out (i.e., your program should print out an exact *verbatim* copy of its own source code, without reading *any* files, keyboard, memory, etc.) Discuss a practical application of this problem."
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.
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! :)
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).
Our CS6161 TA is Michael Skalak and his Email is mskalak13@gmail.com. Michael will conduct weekly problem-solving sessions over (free!) pizza, on Wednesdays at 7:00pm - 9:00pm, and I strongly encourage everyone to attend these sessions.
Please feel free to ask Michael questions about any of the materials (my office hours are right after each class meeting, or by appointment, or generally whenever you can catch me in my office - please don't be hesitant to find the TA or myself whenever you need help).
EMail
to robins@cs.virginia.edu