Frequently (and not-so-frequently) asked questions

These are my attempts to answer some questions that students have asked
(in the first assignment, in office hours, via email, etc.)

Note that there may be some repetition on this page.

About the course

About the professor (i.e., about SamR)

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
art-making 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 these board
gamers know, but not many other people): Cosmic Encounter. Yacht Race,
Carcasonne, and Circus Maximus. But I play a lot of different games.
One recent fave in the Rebelsky household is “Apples Against Humanity”:
questions from Cards Against Humanity with answers from Apples to Apples.
(The answers in Cards Against Humanity are not suitable for children or,
well, anyone.) My eldest would like us to play more Canasta. I’d like
to play more games, 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.) I play around a lot with the Mediascript code just for fun.

But when I need a quick text manipulation program, I hack it out in Perl.
(However, the most recent text manipulation program I had to write, I wrote
in C.)

I’m starting to find that I enjoy programming in Javascript, too, although
I need a better environment for doing so. Javascript gives me many of the
things I like about Scheme (other than a nice syntax) with some additional
capabilities.

I’m working on expanding my use of Ruby. I hope, at some point, that
I can say I enjoy working in Ruby. But I’m not there yet.

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.

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. My latest software is published on the Web.

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.

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 voice. 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.

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

What’s the one food item you can’t live without?

I want to say chocolate, but I think “fruit” is probably the answer if
you’ll accept that. If I have not narrow, I think it’s pears. Of course,
to be literal, I think it’s water (although water isn’t food).

What is your favorite section of computer science?

My favorite courses to teach: CSC 151, because I like introducing
students to the field. CSC 207, because I think it’s where you
really start to develop the tools of computer scientist and software
designer. CSC 282, my one-credit “C & Unix” seminar, because I can
make sure you learn things that are essential. (Whoops, that’s
three; I can’t choose a favorite.) Oh, I also like teaching tutorial.

I hear rumors that you are attempting to write an essay each day.
Is that really the case?

Yes. Since the start of Fall 2016, I have written an essay on some
topic each day. You can find them all at

About the course web

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. If there’s no terminal
.html, just at .md.

What technology do you use to build the course web?

I write most of the pages in a markup language called “Markdown”. I
use a broader system called Jekyll to build the site. I use Bootstrap
to handle some of the formatting and UI elements.

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. These days,
TLA may also stand for Grinnell’s Center for Teaching, Learning, and
Assessment.

Do you prefer “freshman” or “first-year”?

The term “freshman” is gendered, 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.

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