Fundamentals of Computer Science I (CS151 2003F)

On Teaching, Learning, and Grading


I like to begin each course with a meta-commentary on teaching and learning. Why? Because I care about the learning process, because I seem to have a different teaching style and personality than some students expect, and because I want you to think not just about what you are learning, but also how you are learning.

From my perspective, you are here to learn and I am here to support that learning. What will you be learning? The subject matter of the course, certainly. However, I expect that (or hope that) you will also be discovering new ways to think and learn or sharpening existing skills. For example, in most of my courses I hope that you will develop your collaboration skills and your think on your feet skills. In terms of subject matter, I tend to care more about the processes and concepts that you learn than about the basic facts.

Learning is an interactive process. You learn by asking, discussing, and answering questions, by playing with ideas (in computer science, you also learn by playing with programs), and by working with others. I know from experience that computer science cannot be learned passively: you need to experiment with ideas (in your head, on paper, or on the computer) in order to fully grasp these ideas.

My Role

How do I try to support this learning? In a number of ways.

I assign readings to give you a basis for understanding the subject matter. Sometimes these readings will be from the textbook, sometimes I will distribute appropriate supplements.

I lecture, lead discussions, and conduct recitations on the topics of the course. Sometimes these will be based on readings and assignments, sometimes they will vary significantly from your readings. Why? Because I feel it wastes your time and mine to simply reiterate the readings. If you let me know that you're confused about a reading, I will spend time going over that reading (either in person or in class).

To stimulate discussion and thinking, I regularly call on students in class. I know that not all of you are comfortable answering questions publicly, but I strongly believe that you need to try. Please feel free to say I'm not sure when I call on you. At times, I'll step through the class, asking each student in turn. At others, I'll call on you individually. I tend to call more on students I interact with regularly.

I assign work because I find that most people learn by grounding concepts in particular exercises that allow them to better explore the details and implications of those concepts. I expect you to turn in work on the day it is due and will impose severe penalties on late assignments (including refusing to accept some late assignments).

Some of my assignments may involve public presentation of your work. Sometimes, the best way to learn a topic is to have to discuss it or present it to someone else. In addition, I've found that many students need some work on their presentation skills. Most often, presentations will be of papers that you've read.

In general, I expect you to spend about ten hours per week on this class outside of class time. If you find that you are spending more than that, let me know and I'll try to reduce the workload.

I grade assignments to help you identify some areas for improvement. Note that I believe that you learn more from doing an assignment than from receiving a grade on that assignment. This means that you may not receive a grade or comments on all your assignments. I will tell you when an assignment won't be graded, but not until after you hand it in. I will do my best to be prompt about returning grades on assignments. At times, I will use a grader to help speed the process.

I give examinations because I find that many students only attempt to master a concept when preparing for an exam. Because I care more about processes and concepts than about facts, I almost always give open-book examinations. Because I do not feel that time limits are helpful, I tend to only give take-home exams.

I give quizzes to ensure that you are doing the reading and that you are understanding what I expect you to understand from the readings and assignments. At times, I will give quizzes to help illustrate a particular point. This semester, all of my quizzes can only affect you positively: good work on quizzes will lead to extra credit.

I build course webs to organize my thoughts, to give you a resource for learning, and to help those of you who need to work on your note-taking skills. I do my best to make my notes for each lecture available on the Web, in outline format. In general, these notes will be available approximately five minutes before class. Warning: these are rough notes of what I expect to talk about; the actual class may not follow the notes. I will also attempt to update the notes after each class.

I make myself available to discuss problems and questions because I know that some of you will need personal attention. In general, if I'm in my office you should feel free to stop in. Most of the time, I'll be willing to help. Once in a while, I'll be working on a project and will ask you to come back later. Students always have first priority during office hours. You should also feel free to send me electronic mail, which I read regularly, and to call me.

At times, I survey my students to better understand how the class is going. Because I do research on the effects of computers on learning, I sometimes give surveys to gather data.


At the same time that you learn and I try to help you learn, Grinnell and the larger community expect me to assign a grade to your work in the class. I base grades on a number of components, but primarily on assignments, examinations, and involvement in classroom discussions.

Because I understand that not everyone gets everything right the first time, I will occasionally allow you to substitute an extra assignment for one that you did poorly on. Unfortunately, the time pressures of the semester are significant enough that I will not be able to permit you to make up assignments except through this mechanism.

In computer science, it is often possible to do the same problem in multiple ways. Hence, I typically reserve class days to discuss particularly significant assignments. This semester, each exam will be followed by a day of discussion relating to the exam. We may also take time from some classes to discuss particulars of assignments.

I will admit to a fairly strict grading scale. Grinnell notes that A and A- represent exceptional work. To me, exceptional means going beyond solid, acceptable, correct work. Exceptional work entails doing more than is assigned or doing what is assigned particularly elegantly. Work limited to mastery of the core materials is B-level work. To help you demonstrate exceptional understanding, I will occasionally suggest extra credit work (although truly exceptional students will often suggest such work on their own).

To help eliminate biases, I typically use a numerical grading scale. 94-100 is an A, 90-93 is an A-, 87-89 is a B+, 84-86 is a B, and so on and so forth.

Your Role

How should you participate as a member of my class? (Or, how do you do well in my class?) By being an active participant in your own learning. In part, this means doing all the work for the class. It also means a number of other things.

Come talk to me when you have questions or comments about subject matter, work load, or how the course is going in general. I may also set up an anonymous comment page for those who are uncomfortable talking to me directly.

Do the readings in advance of each class period and come prepared with a list of things that you don't understand. I will try to spend time at the beginning of each class session answering these questions or will restructure the lecture to accommodate them.

Ask and answer questions and make comments during class periods. I consider active participation during class a particularly important part of the learning process.

Begin your assignments early. Students who begin assignments early have more opportunities to ask for help, to make sure that the assignment gets completed, and to sleep at night. Such students also do better in general.


I seem to have a different lecturing style than some students expect. As I mentioned earlier, I don't think it is the purpose of lecture to reiterate the readings. I do, however, think lecture and readings can provide alternate perspectives on the subject matter. At times, I will also discuss issues not covered in any readings.

I see no point in going on with a lecture or example if many students don't understand what's going on. You are the first line of defense: stop me when you are confused. In addition, I will occasionally stop the class and ask for a show of hands to see who is confused. Don't be embarrassed to raise your hand; if you are confused, it is likely that someone else is also confused. I realize that this show of hands leads to some pressure for understanding. However, you won't get much out of a class if you're confused (and therefore just copying down what I'm writing without thinking about it).

I deem it important for students to be active participants in lecture. This means that I will often ask you to help develop algorithms, solve problems, and even critique each other's answers. If I call on you and you're not sure of an answers, feel free to say I don't know or to venture a guess. I consider it very important for all of us to see the problem solving process, warts and all. Note that I often generate examples of discussion on the fly so that we can all be involved in the problem solving or development process.

It's More Than CS

While I teach courses in computer science, I hope that students in my courses leave with more than just more knowledge of CS. In particular, I expect students to have developed some problem-solving skills, some thinking skills, and even some discussion (or at least quick reaction to recitation questions) skills. I would hope you find the same in all Grinnell classes.


As the prior discussion suggests, I expect a great deal from my students. I also use many different strategies to get the best out of you. Feel free to discuss any of this with me (anything from concerns about this perspective to suggestions on improving teaching and learning).



Pre-Grinnell [Samuel A. Rebelsky]

Early Grinnell [Samuel A. Rebelsky]

Saturday, 21 August 1999 [Samuel A. Rebelsky]

Monday, 17 January 2000 [Samuel A. Rebelsky]

Thursday, 24 August 2000 [Samuel A. Rebelsky]

Friday, 12 January 2001 [Samuel A. Rebelsky]

Tuesday, 7 January 2003 [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 Tue Dec 9 13:58:48 2003.
The source to the document was last modified on Mon Jun 9 12:48:38 2003.
This document may be found at

You may wish to validate this document's HTML ; Valid CSS! ; Check with Bobby

Samuel A. Rebelsky,