Algorithms and OOD (CSC 207 2013F) : Handouts

Frequently (and not-so-frequently) Asked Questions

About the Site

The daily eboards look much nicer than what you type in class. How do I see what you type in class?

Replace the .html at the end with .md.

What technology do you use to build the course web?

I use two markup languages. For many of the pages (e.g., readings, labs) I use a form of XML called Docbook. But Docbook is wordy, so for other pages (e.g., the daily outlines and eboards), I use Markdown. I also have a bunch of scripts to help with all of this. You can find the scripts and source code on github.

I was curious about if and how we should report errors we see in the course web site and in any assignments or exams we’re given, and if you want to be informed of small grammatical errors or missing letters, or only errors that may directly affect the ability to interpret or complete course material.

I'd like to be informed about anything you notice. I prefer email, but I'll take comments in class, too.

About the Course

What environment/compiler will we be using?

We'll be using Eclipse for most of our development. We'll start with OpenJDK 1.7, which is the default, but we may need to switch to the Oracle JDK at some point.

About the Professor

Where did you find the tigger suit you wore last semester?

At the Disney store, about a decade ago. We were buying my eldest son a "Winnie the Pooh" costume (so maybe more than a decade) and saw that they had a Tigger suit in my size.

I looked at your CV, and saw that you attended U Chicago. I’m curious as to how you found out about Grinnell, why you chose to come here, and what you like most about the college.

Right before I finished my Ph.D., I took a short-term job at Dartmouth (teaching compilers). That stretched to four years, and probably would have lasted indefinitely. But I wanted a tenure-track job and looked around for a liberal arts college (since liberal arts colleges seemed to match my enthusiasm for and perspective on teaching). Grinnell was clearly the best match for me - I liked the students (much more interested in learning for the sake of learning, and nice people, too), the focus on teaching, and the faculty. And I seemed to have been a good candidate - before I got back from my interview, the department had arranged with the hospital for my wife to come out and interview. I remain thrilled to be at Grinnell - the students are special, I have great support for trying new ways of teaching, and the town is generally a good place to raise kids.

How did you get hooked on CS?

I was a math major as an undergrad. But it was quickly clear that I would not be a great mathematician. (My first year at Chicago, one of my first-year classmates placed in the top ten on the Putnam. I was in the fiftieth percentile, which means I got a 0.) I took my first CS course on a lark, and discovered that it had all of the things that I loved about math - particularly problem solving. And, more importantly, the solutions were "things", not just proofs. I haven't looked back since.

_What made you want to be a professor?

My mother was a psychology professor at Boston University. And it was clear that she made a big difference in her students' lives. (She received outstanding teacher awards from both BU and from her professional society; one's on the bookshelves right where you walk in to my office.) Even so, I wasn't planning on following in her footsteps. But I found in college that I liked tutoring and that I was good at it. I still appreciate the feeling I get when I see a student "click" on a concept and know that I had a place in it. Plus, good teaching is also an exercise in problem solving.

What is your favorite computer science course at Grinnell?

My favorite courses to teach: CSC 151, because I like introducing students to the field. This course, because I think it's where you really start to develop the tools of computer scientist and software designer. My one-credit "C & Unix" seminar, because I can make sure you learn things that are essential. (Whoops, that's three.)

Algorithms was my favorite class as an undergraduate.

What are you currently working on in terms of computer science research or projects?

My main research project is an investigation into scripting media applications, particularly using a functional approach. (You see some aspects of that project in the intro course.) I think the next step will be finding a way to script the Gimp with Scratch.

Are you a Monty Python fan? And if so, what is your favorite sketch?

When I was your age, I was a big monty python fan. I like the lumberjack song a lot. (Is it my favorite sketch? I'm not sure, but I like it a lot.) Hmmmm … maybe the political science seen(s) in Holy Grail. Maybe the witch scene in Holy Grail.

What do you do on your free time outside computer science?

Free time? What's free time? I have three sons, so most of my time is with my family (sometimes attending their events, sometimes just doing house stuff, sometimes just hanging out). I like to play board games. I sometimes get sucked into stupid video games (e.g., Plants vs. Zombies or Temple Run).

What's your favorite language to program in, and why?

Believe it or not, but it depends on the task.

I really love programming in C. It's efficient, it requires understanding of the machine, and it's concise. Plus, C macros are just awesome.

I love programming in Scheme about as much. I don't think I've ever seen beautiful C code, but I can say that some Scheme code that one could really call beautiful. (Okay, I think lots of map-reduce is beautiful.)

But when I need a quick text manipulation program, I hack it out in Perl.

Hmmm ... can we consider Make a programming language? I love Make.

About Other Things

Copyright (c) 2013 Samuel A. Rebelsky.

Creative Commons License

This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.