Fundamentals of Computer Science I: Media Computing (CS151.02 2007F)

Responses to Assignment 1

This set of notes is also available in PDF.

Summary: Assignment 1 was a get acquainted assignment. It asked students to read the course Web site and to tell me a bit about themselves. It also gave them the opportunity to ask questions. In this document, I respond to comments and questions


Initial Reflections on Your Responses

Most of you figured one of the three reasons that I give this first assignment - it ensures that you read the syllabus, which is something that many students neglect to do. But there are others, too. By having you read and respond to the materials, I am able to free class time that might otherwise be spent going over those materials (and past history suggests that you forget what's gone over in class unless you read it yourself). Finally, when I am able to respond to the assignment (individually or en masse), I think I help build the student-faculty relationships that we claim are central to a Grinnell education.

I was thrilled to see that many of you are taking the course purely out of intellectual curiosity - CS is something you don't know much about, other than knowing that it's different than other disciplines you know, and so you want to expand your knowledge.

I was also happy to see that many of you were doing so in spite of a bit of concern that because CS is different, you may not do well in it. (I've found that in most students, those concerns are misguided; I have my minimum grade policy to help alleviate some of those concerns.)

It appears that my grading system is a bit confusing, particularly since it's in transition. I've moved to a Plus/Check/Minus grading scheme. If you do everything correctly, or nearly everything, you get a check. If you go beyond the assignment, you are more likely to get a Check Plus or a Plus. If you get things wrong, you are more likely to get a Minus.

I don't want these regular assignments to be overly burdensome. If you spend two hours on an assignment, you should stop immediately and let me know, and I'll give you a check or higher.

Just so you know, I've tried to make the assignments available in a variety of ways. The list of assignments is one. The current assignment link is another. The course at a glance is a third.

Questions and Comments on The Course

Preparation, Skills, and Challenges

I've used computers but have never programmed. I'm worried that I'm behind the rest of the class.

Yup, you and 90% of the rest of the class worry about this. Those who've programmed should be worried that we're doing things differently. (That was intended to be reassuring.) More importantly, the course is designed for folks with no prior knowledge, and folks with no prior knowledge regularly do well, so don't worry!

I'm not very good at math. Will that be a problem?

We do use math in the course, in part to remind folks that math is important. Dr. Davis works hard to make sure that I don't put too much math in the course, so you should be okay. If you find that I'm using math that is too complicated, stop me and let me know.

I've heard that CS tends to be one of those subjects that some people either 'get' or don't get and that thought troubles me.

It's not quite that cut and dried, but, yeah, there are really smart people who just aren't able to think this way. That troubles me, too. If it's any comfort, it seems that we're able to help most Grinnellians learn this way of thinking. If that's not a comfort, note that there are also really smart people who can't appreciate (or compose) music or apply the scientific method with rigor or ....

Course Resources

It's not explicitly stated, but I'm assuming all of our readings/books are on the Web.

Yup. Everything is on the Web. Since it's sometimes easier for you to have paper, I'll also distributed some things (particularly the labs) in printed form.

There were a few references to a textbook on the site. What is this textbook? Is this any textbook in the library?

I'll have to eliminate those references. The only real textbook for this course is the collection of readings (and labs) that Dr. Davis and I are preparing for the course.


On the On Teaching, Learning, and Grading Page, you state that you may also refuse to accept late homework (Rebelsky, n.d.). When does this happen and why? It does not seem clear as to why some days you will have a drop in letter grade per day, whereas at other times you will not accept the homework.

On some days, we end up talking in class about the homework immediately after it is turned in. On those days, students who turn in the homework late would have an inappropriate advantage, so I do not allow them to turn in the homework at all.


How much of class time/outside reading will be spent on strict coding and programming, and how much will be spent on the critical thinking skills that don.t require a computer? Basically, how much time will we be spending on and off a computer?

It varies from person to person. I generally expect you to express solutions in a form that the computer understands, but different people take different times to come up with solutions and to transform those solutions into Scheme. For example, I have seen students who can look at a problem and describe how to solve it in just a few minutes, but will spend hours trying to get the particulars of Scheme right. On the other hand, I have also seen students who take hours to figure out the solution, but once they've done so, they can translate it immediately into Scheme. On average, I think of it as about 2/3 on the computer, 1/3 thinking in relation to being on the computer.

Will the majority of work outside of class require computers in a computer science lab in Noyce? If so, are there specific hours for those labs?

We would prefer that you do your work in the labs in Noyce. We try to keep a lab open all day on weekdays. (In the design of the building, 3815 was designated as a lab in which we would not hold classes. Unfortunately, the schedule of our courses means that there are a few times when 3815 is not available.) During the day, you can simply wander in, but there won't be anyone on duty. TC's will be on duty from about 6pm until about midnight Sunday-Thursday. On Saturdays, we hope to have it open from noon-5pm, but it sounds like we don't yet have TC's arranged.

We will also have Tutors on duty Sunday-Thursday, typically from 9-10 p.m. 151 TAs also tend to be on duty from 8-9 the night before an assignment is due. (Both sections have the same assignments, so a TA from either class can help you.)

We do realize that some people prefer to work from home or dorm, and we're working on a way to support that preference.

Questions and Comments on The Instructor

Personal Details

Where are you from?

Born in Newton, MA. Spent ages 1-3 in Holland. Back to Newton. College and grad school at University of Chicago (S.B. with honors, Math, 1985; S.M., Computer Science, 1987; Ph.D., Computer Science, 1993). Four or so years back east, teaching at Dartmouth or living with my wife in Maine. Here in Grinnell for ten years. These days, I think it's fair to say that I'm from Iowa.

Do you have any children?

Yes, I have three boys, aged 12, 9, and 6. My wife prefers that I not put their names on pages that appear on the Internet.

Are people often surprised that you are a left-handed science professor?

No one has ever commented on it, at least that I recall. Not so surprisingly, there is a higher proportion of left-handed people in the sciences, particularly the mathematical sciences, than in the general population. (From my understanding, many aspects of creativity seem to reside in the right hemisphere, so it makes sense that lefties, with right-brain dominance, end up in the sciences.)

What made you choose to be a teacher? Specifically, why did you choose to teach computer science as opposed to pursuing other careers within the field?

I find teaching CS quite rewarding. That is, not only do I get the reward of good pay (not necessarily compared to folks in industry, but compared to most of the nation), I also get the reward of seeing that I've helped students learn. I like the intellectual challenge of figuring out how to make complicated stuff understandable. I also love the freedom that being a College faculty member brings - I (mostly) get to teach what I want, study what I want, say what I want, and schedule my hours as I want. (I wrote this answer at midnight, and I'm not sure that I really want to work at midnight, so the answer isn't quite perfect.) I get to work with smart and interesting people. What more could one want?

In current Grinnell-speak, teaching is my vocation. It is what I feel called to do, and I seem to have some ability at it.

What are your hobbies?

Spending time with my kids. Reading. Playing cards. Accumulating too much stuff. Programming (yeah, I program for fun).

If you were to complete question i, what would you choose?

What I choose would probably differ depending on a host of environmental factors - time of day, what I had been doing recently, what I felt like revealing about myself. In the past, I think I've chosen favorite genres of popular music, favorite ways to waste time, and favorite programming languages, among other things. I'm always tempted to choose favorite student answers to that question and favorite courses to teach. So, there you go, my five current favorite categories of things to use as answers to question i.

What were you like as a student in high school and college (if you don.t mind me asking)? In other words, what was your work ethic like?

I had what was at best an inconsistent work ethic. I learned things well and fast, so I generally never figured out how to study things that were hard for me. In many classes, I did not do as much work as I should have done, preferring to get by on good instincts and a quick intellect. On the other hand, n high school, I would rewrite most of my papers a minimum of three times (in the days of typewriters, where a rewrite was significant work) and I took my non-academic work quite seriously. I worked an after-school job in high-school (stocking the shelves at a magazine stand) and generally worked twenty hours or so a week in College. I worked the graveyard shift as a TC equivalent, and can't really recall how I was able to do that while taking classes. Yeah, I think inconsistent is the best description.

Can you explain your experiences as a student? How about as a teacher?

I'm not completely sure what you mean by explain your experiences, so I'll try doing a short narrative. I went to college at the College at the University of Chicago. In contrast to Grinnell, with it's "mentored individual curriculum" (previously known as the open curriculum), Chicago had a strong core. In essence, every Chicago undergraduate took one of three year-long humanities courses, one of three year-long social science courses, one of three or four bio sequences, math, a foreign language, and a year of some physical science. (I may not have that quite right; they've compromised it again and again over the decades.) I learned in those courses that it was useful to have a common set of academic knowledge (something I miss at Grinnell), that I'm a loudmouth in my classes, and that I'm better in math-like disciplines than in anything else. I took my first CS course in my 3rd year at Chicago (I think; maybe it was late in my second year) and found that I loved it (see elsewhere in this document for more details). I also took an astounding number of film courses, both as an undergraduate and as a graduate student, all with Gerald Mast. In those classes, I learned that I had good ideas, but could not express them in writing to the satisfaction of Mr. Mast. The grade of which I am proudest is that on my last paper for him - his comment read (approximately): Sam, it's good to see that your writing has finally reached the level of your ideas. A-.

Almost forgot to include teaching experiences. At Chicago, I was a teaching assistant/tutor for both CS and Math as an undergraduate, at least until the College figured out that I was working more than twenty hours per week at those two jobs plus my other tasks on campus. That was not permissible. They were, however, perfectly happy to let me do the same work, as long as I was a volunteer tutor. Perhaps because of that volunteering, I was permitted to act as TA for a summer session of Calculus with W.H. Meyer. Meyer, who was nearing the end of his career, let me teach many of the classes in the second half of the course. The following summer (immediately after I graduated college, I think, but perhaps the year after that), I taught the whole course. My first few years in grad school, I taught introductory CS. After that, more time was spent on research. When I left Chicago, I went to Dartmouth, first as a temporary fill-in for a single course, then as a long-term visitor. After that, I came to Grinnell. At Grinnell, I've taught a wide variety of courses (about a dozen different topics). I also supervise a lot of summer research projects because I think the intensive work permits better learning. (One of my best experiences as a teacher was hearing a B-level student gain great confidence as she realized that she could design and carry out a substantial project.)

How long have you been teaching at Grinnell?

This is my eleventh year at Grinnell. I took one year off (I think it was my fourth year, but I wouldn't swear to it) - half was for parental leave, have was for pre-tenure leave.

Have you ever owned a pair of Tweety-bird slippers, or something similar to Tweety-bird slippers?

I own yellow Crocs, which are similar in color to Tweety-bird. I've owned some silly slippers, at least one of which was some Looney Tunes character (Taz, perhaps). I certainly own a tie that has Tweety-bird on it. Does that combination count?

The Discipline

What interested you about CS?

Well, I was a math major in College because I liked the abstraction and I liked the problem-solving aspects of math. However, when I took my first CS course, I realized that it was the discipline for me - Not only could I solve problems (both abstract and real), but I could build solutions that I could watch work. Playing as builder in electronic universes is fun, and, from my perspective, that's one of the key aspects of CS.

What first interested you in computers and what was your first interaction with a computer like?

Boy, you're asking me to remember a long time ago. A friend got an Apple II back in 1978 or so. I thought it was fun to play games on, and the idea that we might be able to write things on it was also interesting, although I never got that far. So ... my first interaction was playing games.

What areas/topics have you researched or specialized in during your career as a computer scientist?

In graduate school, I studied lazy functional languages, a variant of languages like Scheme which make some interesting assumptions about how computation should work. I looked at how you bridge this model of computation with a more traditional model. (Sorry, describing the models will take a few pages, and I'm pretty sure no one will care.)

At Dartmouth, where I taught after grad school, I got sucked into a multimedia research group. In that group, I tended to focus on issues of authoring multimedia and hypertext.

At Grinnell, I started out looking at ways to violate norms on the Internet. In one project, my students and I built tools that let you modify arbitrary Web pages and share those modifications with others. (Ideally, you could collaboratively modify these pages.) That project violated the norm of copyright (but not the norm of fair use). In the second project, my students and I built tools that let you observe how students make use of the Web and then explore data from those observations. This project violated norms of privacy.

These days, I'm returning to my love of functional languages, and looking at ways to apply functional languages to problems in media computing. Much of the work now is very practical - my students and I are building systems that form part of larger open-source software projets.

To you, what is the most exciting computer science related breakthrough in the past 3 years?

It's hard to say when they started, but recent advances in biologic computing (that is, building biological mechanisms that compute) are particularly interesting to me. In particular, it is possible to encode algorithms in molecules in such a way that the interaction of the molecules can solve a problem. By relying on loads and loads of molecules, one can try multiple solutions simultaneously, something that is much more difficult to do on traditional computational devices. There is some promise in using this technique to solve problems that could not be otherwise computed in a reasonable amount of time.

I would like to know if you genuinely like computers.

No, I do not genuinely like computers. I genuinely hate computers. They are evil and do what they can to make our lives more difficult. However, I do like computer science and computer programming and teaching, so I accept the compromise of working with these evil machines.


Why is there a huge pixelated image of you in the CS commons?

Tim Miller and Max Kuipers made and posted the pixelated image of me over the summer. You'd have to ask them why they chose to make and post the image. One theory is that they're trying to suggest that I have a big head or inflated ego. Another is that students do things late at night without much rationle. You'd have to ask them. It's been enough of a conversation piece that no one has wanted to take it down yet.



Saturday, 8 September 2007 [Samuel A. Rebelsky]

Sunday, 9 September 2007 [Samuel A. Rebelsky]


Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Mon Dec 3 09:56:15 2007.
The source to the document was last modified on Sun Sep 9 22:28:32 2007.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky,

Copyright © 2007 Janet Davis, Matthew Kluber, and Samuel A. Rebelsky. (Selected materials copyright by John David Stone and Henry Walker and used by permission.) This material is based upon work partially supported by the National Science Foundation under Grant No. CCLI-0633090. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation. This work is licensed under a Creative Commons Attribution-NonCommercial 2.5 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.