Skip to main content

On teaching and learning


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? Clearly, you will learn the subject matter of the course. However, I expect that (or hope that) you will also discover new ways to think and learn or will sharpen existing skills. For example, in most of my courses I hope that you will develop your skills and working with other people and your ability to “think on your feet”. 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, and 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, sometimes I will write the readings myself. In upper level classes, I tend to assign “reading journals” that are due the night before class. The reading journals provide me with an opportunity to identify difficulties and to better plan class.

I recommend that you “read actively”. That is, when you’re reading about new ideas in Scheme, you should try some of them out to see if you understand them and can use them. It’s certainly okay if you don’t understand everything; that’s why we have labs (and short Q&A sessions at the start of most classes).

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. In most cases, I call on students randomly, typically using a stack of cards to ensure that there is no bias. And, at times, I’ll ask for volunteers and call on you individually.

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. In many cases, 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, and I consider it my responsibility to help students develop those skills. Most often, presentations will be of papers that you’ve read.

In general, I expect you to spend about eight to 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 or help you use your time better. If you find that you are spending significantly less than that, please come chat with me, too. I won’t give you more work (unless you want more work), but it may be that you are missing some key issues.

I grade assignments to encourage you to do your best and 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 or even a majority of your assignments. I will do my best to 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 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 provide an electronic record of portions of course. I call this electronic record the “EBoard”.

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 text or call me during reasonable hours.

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. If I plan to use my surveys for research purposes, I do my best to clear my work with the College’s Institutional Review Board (IRB).


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. In CSC 321, I base grades primarily on your on assignments, reading journals, 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. I will often drop one assignment grade. 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 these mechanisms.

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. We may also take time from some class periods to discuss particulars of assignments.

I will admit to a fairly strict grading scale. Grinnell notes that A and A- represent excellent work. To me, excellent work entails going beyond solid, acceptable, correct work. Excellent 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 (or check-level work, if I’m using a plus/check/minus grading scheme). 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. I do not scale grades. It is possible for everyone in my class to earn an A, if you all do exceptional work.

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.

Do the readings in advance of each class period and come prepared with a list of things that you don’t understand. I will often spend time at the beginning of each class session answering these questions or will restructure the lecture to accommodate them. Further notes on reading</link> appear later in this document.

Come talk to me when you have questions or comments about subject matter, work load, or how the course is going in general. If you don’t feel comfortable critiquing me directly, feel free to express concerns to the class mentor or one of the tutors, who will relay them anonymously.

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.


My colleague Janet Davis suggests that you use the SQ3R method when reading. I’ve paraphrased her description of the SQ3R steps, as I believe she paraphrased the information from elsewhere.

  • Survey. Skim the material to get a big picture and to see what’s important. You might read the introduction or abstract and the summary in a bit more depth. You should also look at the headings to get an overall sense of the reading.
  • Question. You are reading something to learn. Ideally, you learn by asking questions. So, figure out what questions you think the reading will answer. (And no, “Why is Rebelsky making me read this?” is not an adequate question.) Your initial survey should help you figure out good questions to ask.
  • Read. Read the work thoroughly, considering how it answers the questions you’ve asked and what additional questions it might raise.
  • Recite. Check that you can answer your questions, in your own words, without referring back to the reading.
  • Review. Verify that you’ve answered the questions. Figure out what’s still left unanswered. (It’s okay if some things are still unanswered, particularly questions that came up along the way. We’re here to help you figure out answers.)


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 is to reiterate the readings; students should come to class having done 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 against wasted class time: 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. I tend to call on students randomly, rather than to use volunteers. If I call on you and you’re not sure of an answer, 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).