Thought for the day

Why is it that, as a computer scientist, I get all bent out of shape when technology doesn’t work for me?

I’ve spent the better part of yesterday afternoon and this morning unsuccessfully trying to get a server up and running, and nothing is working.  I’m sure most normal people would just shrug, maybe take a break, and come back to try again later.  I, however, seem to take it as a sign of my professional incompetence.  “I’m a computer scientist!” I wail. “I actually understand this stuff!  So it should just work!”  After all, I’m a technology professional, so of course all technology should work perfectly for me, on the first try!

Do other professionals do this?  Do English majors despair when they can’t find the right words to write in a greeting card?  Do mathematicians question their credentials when their checkbook is balanced incorrectly? (“Damn, I always forget to carry the one!  Stupid stupid addition!”)  Do librarians lose it when they just can’t find that book?

Where in the world is Dr. Csizmar Dalal?

The title of this post is inspired by something my Mom often posts on Facebook in response to status updates that indicate I’m off and about somewhere (and that she has no idea where I am and what I’m doing.  Really, I am close to my Mom.  We just don’t talk as often as we should.  Mom, I owe you a phone call!).  I’m sure readers of this humble little blog have been asking the same question since there’s been a lot of radio silence here lately.  Let’s just say it’s been a busy few months.  In fact, since the end of January, I

  • submitted a grant
  • served on an NSF panel (luckily, unlike last year, I was not snowed in there this year!)
  • hired 13 student researchers in 2 different programs (and coordinated the hiring process in both)
  • presided over 9 oral exams of our Compsing seniors
  • met with all my advisees (we take advising seriously here around these parts, so this is a nontrivial task)
  • got 2 Comps groups ready for their final presentations
  • co-hosted, along with my colleagues, our annual Comps gala
  • attended (and chaired a session at) SIGCSE (my first time attending!)

in addition to the teaching/researching/mentoring/grading/service-performing aspects of my job that regularly happen….oh yeah, and the end of the term too, with all the grading that entails.

So yeah, you could say I’ve been busy.

In the midst of all this busy-ness, I continue to be completely inspired by what my students can achieve and accomplish, so I want to take some time to highlight some of that in this post.

My Intro class recently handed in their final projects (write a simulation or a game).  As part of their projects, I have them do a science fair-style presentation:  during the finals period for the class, we all meet in the computer lab, I bring snacks, and they all show off their projects to each other.  It’s a very casual atmosphere—everyone wanders around, tries out everyone else’s games/simulations, and talks to each other about their projects.  This is hands down my favorite class period of the term.  I love that the students get to show off their hard work, and the atmosphere leads, often, to some great conversations and suggestions among the students for improving the projects.  I also award a few (small) prizes to the best projects, as voted on by the class.

Here’s what the scene looked like:

Playing Battleship

A spirited game of Battleship vs. the computer. The AI on this was pretty good! (The co-author of the capture the flag project, in the next picture, is sitting at the computer.)

Cultural references are common in the submissions

This project, a Capture the Flag game, was voted "most creative" by the class. The student in sunglasses is one of the authors.

Mille Bornes, a card game

This project, a version of a card game called Mille Bournes, was well-liked by many of the students. I have to admit I spent a lot of time playing---er, grading---this game! (The author of the Battleship project is on the left.)

Frog chasing a fly game

This project, an event-driven game in which a frog chases a fly (controlled by keystrokes by the player), was voted "most artistic" by the class, and was also highly addictive. The author is the student on the right, in blue. This shot also shows a bit of the science fair atmosphere in the lab. The author of the card game from the previous picture is the student in green in the background.

In addition, my Comps group was busy finishing up their project—a “robot tour guide”.  While the robot won’t be ready to lead any campus tours any time soon, the students did an impressive job getting the robot to recognize where it was (via some pretty nice image processing) and to get it to travel to a pre-set destination within our building, while correcting for course drift along the way.  Here’s an example of the robot traveling from one of the computer labs to the CS student lounge.  (The robot is a Surveyor SRV-1.)  In the video, you can see the robot correcting itself—it uses a combination of knowledge about the distance between two rooms along the path and blob detection of the orange tape borders.

It’s so easy in this job to get worn down and burned out:  there’s so much to do, so many demands on our time, and not enough time to do it all or do any of it well.  These students, and their hard work, dedication, and creativity, are what keeps me motivated and inspired.  Every term, I am so proud of what our students accomplish, and every term, I am amazed at how far they come.  This is exactly why I do this job.

And for the last day of 2010, some levity…

To end 2010 on a lighthearted note, Jun Auza at TechSource has posted his favorite 50 programming quotes of all time.  (I spotted this originally over at Confessions of a Science Librarian.)  There are some gems in the comments as well.  Here are some of my favorites from the list and comments:

35. “For a long time it puzzled me how something so expensive, so leading edge, could be so useless. And then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match.”
– Bill Bryson
31. “Good design adds value faster than it adds cost.”
– Thomas C. Gale
10. “People think that computer science is the art of geniuses but the actual reality is the opposite, just many people doing things that build on each other, like a wall of mini stones.”
– Donald Knuth
2. “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.”
– Martin Golding
(from the comments) Creating computer software is always a demanding and painstaking process — an exercise in logic, clear expression, and almost fanatical attention to detail. It requires intelligence, dedication, and an enormous amount of hard work. However, a certain amount of unpredictable and often unrepeatable inspiration is what usually makes the difference between adequacy and excellence.
–(From the Unix “fortune” program.)
Happy new year, dear readers!  May your code always compile, your bugs be easily fixed, and your regular expressions parse correctly on the first try.  See you in 2011!

Geeky fun: The “sound” of different sorting algorithms

One of the topics every computer science student learns is sorting algorithms:  different mechanisms to put pieces of data in order.  It is sometimes difficult to get students to understand the differences and nuances between algorithms.  For instance, both insertion sort and bubble sort put things in order in roughly the same time, so why do we consider insertion sort better than bubble sort?

Visualizations are a great way to get this point across, but someone has taken this idea one step further and has come up with a way to make, in essence, sound maps for the different algorithms!

The post linked above also links to a heapsort sound map, and goes into a bit more detail about how the sounds were generated.

I think my favorite is bubble sort:  it sounds like Pac-Man!  In general, it’s neat how each sorting algorithm does in fact have its own sound.  I will definitely use this the next time I teach sorting!

(h/t Jack Goldfeather for the link)

Five things that helped me survive summer

A couple of days ago over at ProfHacker, there was a post (by all the contributors) listing five things—technologies, activities, random items, etc—that helped them get through the summer, made them more productive or happier, etc.  (Suprisingly, I haven’t seen too many other academic bloggers pick this up, other than here.)  I thought this was an interesting exercise and decided to give it a whirl.

So, here are my five things:

  1. Google Docs. This has been indispensable for my work this summer.  I’ve always had a very hard time getting my research students to maintain up-to-date notes and documentation about their work.  This summer, we decided to use Google Docs for this purpose.  It is so nice to have a complete record of all of our notes, crazy ideas, paper drafts, etc all in one place, all easily accessible and editable by everyone.  I’m also using it in two other collaborations—planning a linked course for Fall 2011, and planning a regional conference.  I’m not sure how I effectively collaborated without it!
  2. Running/daily exercise. I’m one of those people whose brain cannot function if the body has not been moving.  I need exercise to keep my sanity and keep my head clear.  This summer has been one of the few in recent memory that I haven’t been injured or sick or otherwise unable to run for part of the summer, and it’s been wonderful rediscovering the joy of running.  It makes getting up at the buttcrack of dawn much more bearable.
  3. A super support system. Peer mentors are a powerful thing.  I have a wonderful group of women whom I meet weekly for coffee.  Sure, many of these “working sessions” (ahem) turn into gossip fests, but they are also places for encouragement and butt-kicking.  We share each others’ successes and brainstorm ways to get each other unstuck.  We share information and strategies.  We keep each other sane, on-track, and laughing.
  4. A great group of research students. Selecting research students is always something of a crap shoot:  just because a student is bright in the classroom doesn’t necessarily mean s/he will be good at research, because the skill sets are somewhat different (a point I discussed in a previous post). Over the years, I’ve been mostly lucky in this regard.  This summer, my students have been especially strong.  They work very well together as a group, and individually as well, and have pushed our research way beyond what I expected this summer.  Most days now they shoo me out of the lab so that they can get work done!  Working with them has allowed me the time and space to concentrate on other aspects of my work as well, and to think more clearly about the future of my work.
  5. Interlibrary loan and ebooks (tie). I am almost certain that I have checked more out of the library through interlibrary loan this summer than I have in my previous 7 years at Carleton combined.  And this summer, I bought my first ebooks (because I was too impatient to wait for the paper versions to ship, but still).  Recently I’ve expanded my view of which subfields relate to my research, and by expanding my view, I’ve discovered a whole new set of literature that will help push my research forward (and possibly in all-new directions!).  I’m now way behind on my reading, but I’m also looking forward to scholarly reading in a way I haven’t for a long time.

Not making the list, but honorable mentions, include taking time away from Carleton (sometimes you just need to get away), rediscovering the joy of entirely free weekends and mostly free evenings, and my iPhone, which allowed me to go away for a week and not bring my laptop with me.

What helped you survive the summer?

What are you searching for?

If you’re visiting this blog, most likely something about writing conference papers or Moodle, apparently.

I love numbers and stats and trends and all that fun stuff, so about once every other week I take a look at my blog stats.  I like to see where people are coming from (referrals), what posts they’re reading, etc.  (My favorite discovery:  If you put “getting things done” in your blog title, you get a lot of hits!)

The most fun part, though, is looking at the search terms people use to get to this here blog.  So, what are the most popular search terms of all time for this blog?*

  1. Searches for me directly (N=59).  This was by far the most popular search item.  I had to laugh, though, about the 2 people who found me by searching for my URL.  Um, if you already know my URL….oh, nevermind.
  2. Moodle (N=37).  People came here to complain or learn about font sizing in Moodle.  Well, at least I fulfilled the first wish…
  3. How to write a conference paper (N=34).  Um, yeah, I hope those people weren’t looking for actual advice on that one…
  4. This is what a computer scientist looks like (N=16), and variations thereof like “how to look like a programmer” and “how to look like a scientist”.  I’m probably not the world’s authority on either, since no one believes me anyway when I tell them what I do for a living!
  5. Barbie-related searches round out the top 5 (N=14).

And here are some of my favorite random searches that led people here:

  • why do computer scientists like mountains.  Good question!  I know I like mountains, but I can’t speak for all computer scientists…
  • becoming a computer scientist when older.  Not sure how I am the authority on this, since I went straight through to grad school….although I did take a bit of a break before becoming a professor…
  • good problems to talk about.  I kinda dig this one.  I hope these 2 people found something to talk about!  (But as we all know, writing good problems is hard.)
  • innovative female design.  Again, another cool search term, and I wish I had more interesting links than these—but I guess it’s a start…

However you got here, whatever led you to this blog, thanks for stopping by and reading!

(And on a totally unrelated note:  I’ve been very bad about putting up any sort of blogroll, but I’m going to put one up Real Soon Now.  So if you’re a regular or semi-regular or hey, even a drive-by reader and you’d like to be on the blogroll, leave a comment.  Thanks!)

* I’m not exactly sure how WordPress calculates these—for instance, none of the GTD-related searches are showing up in these stats, and that’s been a fairly popular search term this week.  So these may be a bit inaccurate or out of date.