Functional Problem Solving (CSC 151 2013F) : Handouts

Frequently (and not-so-frequently) Asked Questions

Note that there may be some repetition on this page, as different questions sometimes require similar responses.

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.

If you want to see the "source code" for a Web page, try replacing the .html with .md or .sect. (You may have to try both, what I use varies.)

Just to be sure, how am I supposed to figure out when assignments are due?

You can remember that almost all assignments are due Tuesday at 10:30 p.m. (But not all of them.) I'd recommend checking the course schedule, which lists all of the kinds of assignments.

About the Course

I see that the course is "Functional Problem Solving _with lab". When is the lab?_

The lab is mixed in with the the regular course. There is no separate lab session. However, you should know that this course meets four days per week and you are expected to show up all four days.

How difficult is the course?

That's a hard question to answer. Computer science is a different way of thinking. Some folks find it natural. Some folks find it nearly impossible. I see at least a factor of ten difference in time spent on some assignments. And I've found no good ways to predict how difficult someone will find the course. I'm not alone in this, faculty nationwide observe the same tenfold difference.

Of course, time spent is only one issue. Often, the people who seem to need to spend more time understand the material at least as well as people who spend less time.

How can I excel in the course?

Different students find different ways to excel. In general, one excels in my courses by taking an active approach to the material - read carefully, make lists of questions, ask questions in class, answer my questions, seek help when confused, discuss material with colleagues, and so on and so forth.

But I find students also excel when they engage enough with the material that they find natural ways to exceed my expectations - by finding new approaches, by doing creative things, by extending ideas.

Is the late policy the same for take-home exams as it is for assignments?

It's similar. I expect exams in on time. I expect you to start them early. But I understand that students get sick or that unexpected things come up. I'll admit that I don't recall a student ever turning an exam in late.

Can I eat small snacks (e.g., carrots, muffins) during class?

Yes, provided you keep them far away from the computers.

Is there a way to use a personal computer for the work in this course?

Option 1: Connect to one of our computers using VNC. Option 2: Install Linux on your personal computer (probably using Virtual Box) and then download, compile, and install the course software. Option 3: Wait a few weeks, and we'll probably provide a Virtual Box image for you to use.

Please explain the phrase "Each category is capped at 1.5 points."

1/2 point per lecture. Three lectures is 1.5 points. More than three lectures is also 1.5 points. 1/2 point per "support your classmate" events. Three such events is 1.5 points. More than three such events is also 1.5 points. (The points are on 100 point scale. So if you have an 87 average in my class at the end of the semester and have attended and sent paragraphs about three lectures and three "support your classmates" events, your grade will then be a 90, which is traditionally an A-.)

What's the typical grade spread in this course?

I do not report grade spreads.

Are there any good online resources that you recommend that might supplement my understanding of what I am learning in class?

The front door has a link to some general materials about Scheme and Racket. But our course is unique enough that the best resources are probably people.

About the Professor (i.e., About SamR)

When/how can I find you on IRC?

I tend to keep an IRC client running on my computer at all times. IRC protocol suggests that I should mark myself as afk (away from keyboard) when I leave the computer, but I'm bad at doing that. If you message me (type my username) and I'm at my computer, I'll get a notification and will try to respond quickly.

How did you get into computer science?

I entered college planning to be a math major (and I even graduated college as a math major). But I quickly learned that I would never be a great math major. More importantly, when I took my first computer science class (in Lisp, if I recall correctly), I found that CS had everything I liked about math (particularly problem solving) along with the ability to construct things and to see your solutions "in action" as it were. I've never looked back.

Over the past few years, I've started making art (mostly non-representational, sometimes with a performative aspect). I find making art and programming have many similarities, including the great positive of making something new and interesting.

Pick a category of objects and list five of your favorite objects in that category.

Favorite ways to spend time. 1. Doing almost anything with my wife and kids - just hanging, playing games, discussing some silly topic, whatever. 2. Reading (usually science fiction or nonfiction, but I have eclectic tastes). 3. Coding (yeah, I code for fun). 4. Playing board games. 5. Organizing things (books, CDs, whatever), even though you can't tell that by looking at my office.

I regret that "exercise" doesn't fall in that top 5. I'm working on it.

What are your favorite board games?

Mostly ones that few people have heard of (well, two of this board gamers know, but not many other people): Cosmic Encounter. Yacht Race, Carcasonne, Circus Maximus. But I play a lot of different games. The Rebelskys have been playing a lot of Ticket to Ride lately, with the occasional game of Anomia to break things up. I'd like to play more Roborally, but there's rarely time.

What is your favorite programming language? It may be easy to deny, but most people have a preference.

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.

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.

Why did you become a computer science professor?

I started studying CS because I found it really compelling - I like making things and I like formal problem solving. I became a professor because I discovered I love seeing students learn and feeling like I had a part in that learning. I also seemed to some talent at teaching.

How did you become a computer science professor?

I got a Ph.D. I taught while I was in graduate school to improve my ability to teach. When I nearlly finished my Ph.D., I applied for jobs.
I started with a one-semester teaching job at Dartmouth that expanded into four or so years. Then I applied for more jobs, interviewed for jobs, and found that Grinnell was my best match. Fortunately, the folks at Grinnell felt the same way, and so I came here. I've been happy here ever since.

What's the coolest thing you have ever created/programmed?

I built the software that lets Racket and GIMP communicate. Before that I'd build the software that we used to program the GIMP directly. I'm pretty proud of that. Using that software, I developed a fairly cool suite of genetic art images.

A colleage in art showed me this really awesome picture that someone drew with spiral line, where the thickness of the line varied and the overall thing was a very detailed face. I then wrote a program that takes an arbitrary image and has our laser engraver do something similar. (The program's not done yet, but I have some sample images.) I haven't described it well, but I'm really proud of it.

And I've written some programs that create some cool 3D cubes using the laser engraver and lucite. (Can you tell that I like the laser engraver?)

What made you want to teach?

My mother was also a college professor. (You can see her outstanding psychology teacher of the year award inside my office door.) Although I was impressed by the effect she had on her students, I didn't think I'd become a professor. But in college and grad school, I learned that I really liked teaching and seemed to be relatively good at it. And there are few feelings as good as seeing a student understand a complex concept and knowing you had a role in that understanding. Plus teaching is a really interesting and complex challenge.

What made you want to teach at Grinnell?

When I finished my Ph.D., I looked for places that cared about teaching but that would let me continue research. I ended up taking a non-tenure-track job at Dartmouth for a few years, but really wanted to be on the tenure track. At the time I applied, I visited lots of places. Grinnell was clearly the best fit - faculty who cared about teaching and who were willing to innovate, students who were engaged. And I was clearly a good fit for Grinnell as I got an offer really quickly after the visit. It's been a great place to be - I continue to love the students, value the colleagues, and find myself challenged and encouraged.

Have you ever published any software?

It depends on how you define "published". The CSC 151 software has been distributed to lots of people. A Web service I wrote, oh, two decades ago, got used pretty heavily for about five years. But almost everything I do is open source.

What's your favorite dessert?

I really like the Chocolate Oblivion they serve at Relish. It's a flourless chocolate cake. But there are times that berries are even better.

How did you come to develop your unique method of teaching? This is in reference to lesser focus on grades, more focus on sarcasm, learning and understanding the process rather than memorization.

There are many factors that led to my teaching style, which I don't really think is unique. I've never thought that memorization was the central goal of learning, so that's probably the fault of my elementary school teachers. And I expect that most Grinnell faculty place memorization relatively low. My emphasis on effort stems from an article a colleague showed me early in my time at Grinnell. (I think the colleague was trying to say "Students expect their grades to be based on effort not results, but results are what matter." I'm clearly contrary.) I also know that I teach a subject that is different and intimidating, and so consider it important to make it more approachable. I learned from my mother that different students show their skills differently, and so I try to give you a variety of ways to show your skills.

What would you do differently if you could do college again?

Let's see. 1. I'd learn good work habits. 2. I'd work on my writing. 3. I'd do internships.

  1. Work habits. I was able to get reasonably good grades in college by relying on my intellect, not on hard work. So when I got to grad school, I was screwed. Developing good work habits earlier would have made the rest of my life better.

  2. Writing. I did really well on writing when I was in high school (and even in a few college courses I took in HS). But my writing was not great. Not focused. Too much passive. Etc. I took a writing course my first year of grad school and it made me a much better writer. I wish I had done that earlier.

  3. Internships. I love what I do. But I really never explored anything but academia. I should have.

About Assignments

On the first assignment, which asked me to synthesize information from the course web, should I cite the course web?

The assignment clearly asks you to synthesize information on the web site, and so one could argue that such citations are unnecessary. Nonetheless, in an ideal world, you would provide a clear citation as to where you found each piece of information.

About Other Things

What's a "TLA"

Three-Letter Acronym. They appear a lot in computing (e.g., irc, pgp, gpg) and in other situations (e.g., irs, ssn). Too often, folks use TLAs without explaining them, and so I say "What was that TLA?" I also say that to myself, because I use TLAs a lot.

What's the attachment that seems to accompany every email message you send?

A digital signature. See

Do you prefer "freshman" or "first-year"?

The term "freshman" is genedered, and so the Grinnell Style Guide suggests that we use "first-year" or "first-year student". I prefer "freshling", but it hasn't caught on.

Why do you address us by last name, but expect us to address you by first name?

I enjoy playing with notions of power and authority. I'll probably use both first and last names with my students.

Samuel A. Rebelsky,

Copyright (c) 2007-2013 Janet Davis, Samuel A. Rebelsky, and Jerod Weinman. (Selected materials are copyright by John David Stone or Henry Walker and are used with permission.)

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.