Content posted here will automatically be forwarded to the course mailing list.
Blog
Sudoku
Good research? I haven't read it closely enough. But I like the idea of formulating and analyzing Sudoku as a graph-theoretic problem.
Bonus Week
We experience moments absolutely free from worry.
These brief respites are called panic.
— Cullen Hightower
Due to a clerical error, I never scheduled anything for the week beginning March 9th. Unless my colleagues suggest otherwise, I believe we should leave that week unscheduled. We will continue to meet, and use it as writing/editing time. The other option is to begin Prof. Kapfhammer's two-week session, but split it across the break. This, however, seems less-than-ideal to me.
So, until further notice, the week of March 9th will be given over to writing and editing, and the Junior Seminar sessions should be used for writing consultation.
Portfolio Marking
I apologize that the requirements for the CMPSC580 Portfolio were not posted sooner. Because the notion of the portfolio was well-discussed and documented for CMPSC220 (which all members of CMPSC580 are enrolled in this semester), posting this document escaped me. Please feel free to ask questions to clarify this document as necessary, or to challenge anything that you feel is unreasonable.
It was not my intent to "surprise" you with anything here, so please try not to feel affronted if something seems out-of-place or not-in-keeping with the spirit of our discussions about the portfolio earlier this semester. Your feedback, as always, is welcome.
What is a thesis?
I found Olin Shiver's reflections on the nature of the thesis to be concise. I found them online here, and replicated them locally on the 580 website.
Next Module: Evolutionary Computation
Our next module, led by Prof. Roos, will explore evolutionary computation. He has provided us with both an interesting collection of articles as well as a reading guide.
Start with the reading guide, and use it to structure your readings of the articles he has provided for the next module. All of the articles are linked in from the Readings section of the site as well as the guide.
Proposal Template
Prof. Roos has pointed me at the CMPSC 600 website, which has the current default template for CS department proposals.
You can grab the template from there, or you can snag the .tar.gz directly.
Readings this week
This should have been announced last week. I do not yet have the wrangling of CMPSC 580 completely "down". You will have more notice in future weeks; this is "my bad." (I think I got completely carried away presenting about presentations last Friday.)
On Thursday, I would like for us to discuss three papers, with a primary focus on the first of these three. They are currently linked in from the Readings page. Will has agreed to lead the discussion of the first paper.
The process we will be modeling is that of an academic reading group. If you find yourself in a research group, it is common for there to be an ongoing thread of reading, presenting, and discussing papers. In CMPSC 580, we hope to provide you with some of that experience as well.
Although Will is going to be leading the discussion, I believe that these tips (stolen from here) provide a good strategy for critical reading of a research paper.
Some tips for reading research papers
- Read the paper 3 times.
- First read the abstract, the introduction and the conclusion and look through the references. If the paper is well written, you should now know what problem the authors are addressing, why the problem is important, what the authors solution is, what their solution contributes to the area, and how the authors demonstrate/prove that their solutions works and that it improves on other solutions in some way(s).
- Next read through the entire paper starting with the abstract again. Don't skip over figures, re-read parts that you don't understand. Write down questions you have as you go along.
- Finally, re-read the paper critically. Did the authors do what they said they were going to do? What are the important ideas? (just because an author says something is important doesn't mean it really is) Do their results make sense? Are their methods sound? What assumptions are they making? How does their work fit in with other similar work? What improvements/extensions do they contribute?
- Make an outline of the paper
The idea is to create some organized information about the paper that will help you sort out the details
Highlight the major points of the paper
This can be as detailed as you need it to be - Create a list of questions
about parts that you don't understand
about parts where you question their solution/proof/methods/results - List comparisons of this paper to other related work with which you are familiar.
The first paper (by Brooks) foundational. The second is an example of the outcome from a final-year student project exploring Brooks's ideas on a small, mobile robotics platform using a novel programming language. The last paper will be interesting for us to critique, as it reports on a project-in-progress. In terms of focusing your time, your most critical reading should be spent on the Brooks, and the latter two papers should provide fodder for discussion, but should not be the focus of the brunt of your reading.
Report LaTeX example
I tried to get this online sooner, but also was working on the assumption that I'd be asked for help if you were stuck with LaTeX. That may, or may not, have been a good assumption.
I've uploaded a tarball (uncompress with tar xvf) that, by way of example, shows you how to do most of the things you'll need to be able to do in LaTeX. You probably can uncompress it, make your way into the "report" directory, and just say "make" on the command-line. (If you read the Makefile, you'll see the commands it is executing.) The PDF it generates lets you see what comes out as a result of the process, and you can read the files report.tex and report.bib to see what LaTeX was required to produce them.
Please ask if you have any difficulties working with LaTeX. Once you get into it, its not a problem. Before you get into it, it can seem confusing. After you get into it, you know it is confusing and infuriating, but it is better than Word any day of the week.
To get to the bundle, use my standard username/password for these things. Phone if you forget what that is. If you didn't write my number down when I gave it to you, shame on you. :)
PDF Annotation
It looks like PDF is a marvelous format unless you have a library that supports all of its marvelous features. In which case, it isn't marvelous.
Okular looks like a good candidate for PDF annotation under Linux.
Xournal looks like another option, but may be more complex/less useful than desired.
If you decide to give up on those, one blog author chose to go the Windows-software-under-Wine route.
Other tools mentioned today include Graphviz/Dot, Inkscape, XFig, and Dia.
Presenting Information
I mentioned Tufte (the "Davinci of Data"... mercy) with respect to information visualization. I do want to also mention Scott McCloud ("Understanding Comics"). He has written a fair bit about the authoring of comics. I point this out because comics and graphic novels do such a good job of presenting time-sensitive (process) information in a way that readers can easily follow. As we saw, many of my "failed" diagrams in my own papers are when I tried to capture a process. It seems to have gone poorly in the past.
Scott did the Google Chrome comic, which you may or may not have seen. Although you are unlikely to present a comic in a paper, it is important to remember that human beings are highly visual creatures, and diagrams and images will almost always speak more powerfully than any number of words.
Discussion Questions
Like I've done for the Programming Languages blog, I've set things up so that these posts are automatically sent to the junior-sem mailing list. Let me know if this is, for any reason, not desirable.
I've posted some questions you might consider as part of our reading of the Denning and Rettig articles.
When I post questions for discussion, reflect on them after reading and before coming to class. We might tackle some of them directly, or they might just serve to help focus our thoughts and come up with more interesting ways of approaching what we've read.

