Fundamentals of Computer Science I: Media Computing (CS151.02 2007F)
[Skip to Body]
Primary:
[Front Door]
[Glance]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Assignment]
Groupings:
[Assignments]
[EBoards]
[Examples]
[Exams]
[Handouts]
[Labs]
[Outlines]
[Projects]
[Readings]
[Reference]
Reference:
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151.01 2007F (Davis)]
[CSC151 2007S (Rebelsky)]
[CSCS151 2005S (Stone)]
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
Contents:
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.
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!
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.
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 ....
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.
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 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.
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.
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.
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.
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.
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.)
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.
Spending time with my kids. Reading. Playing cards. Accumulating too much stuff. Programming (yeah, I program for fun).
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.
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.
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.)
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.
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?
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.
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.
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.
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.
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.
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]
[Skip to Body]
Primary:
[Front Door]
[Glance]
-
[Academic Honesty]
[Instructions]
Current:
[Outline]
[EBoard]
[Reading]
[Lab]
[Assignment]
Groupings:
[Assignments]
[EBoards]
[Examples]
[Exams]
[Handouts]
[Labs]
[Outlines]
[Projects]
[Readings]
[Reference]
Reference:
[Scheme Report (R5RS)]
[Scheme Reference]
[DrScheme Manual]
Related Courses:
[CSC151.01 2007F (Davis)]
[CSC151 2007S (Rebelsky)]
[CSCS151 2005S (Stone)]
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 http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2007F/Assignments/responses.01.html
.
You may wish to validate this document's HTML ; ;
Samuel A. Rebelsky, rebelsky@grinnell.eduhttp://creativecommons.org/licenses/by-nc/2.5/
or send a letter to Creative Commons, 543 Howard Street, 5th Floor,
San Francisco, California, 94105, USA.