[John's picture]

Notes on Teaching

John Ousterhout
Computer Science Division
The University of California at Berkeley

Abstract:

Teaching, like most forms of communications, isn't a native skill. It can be learned through practise. Here are some techniques I use to improve my teaching.

Personalize:

Know the students and how much they are learning.

Conceptualize:

Extract the key ideas from the details. Everything you say must boil down to a few key ideas (3-7?), at each level. Have themes that keep re-appearing.

Relate:

New ideas are hard to understand if they come out of the blue. Must relate each new idea to things people understand already; describe how alike and how different. Relate to conceptual themes of course. Or relate to humans, e.g. my stories about refrigerator.

Good Examples:

Ideas are hard to understand in the abstract. Need examples that illustrate the concepts clearly, with minimum detail.

Humor:

CS provides great material for jokes (particularly when comparing to people). Ex: Reaganomics, thrashing on classes. Depends on your personality, but most people can learn to be funny if they try. Humor can deepen the learning experience, make it more memorable.

Prepare:

No one is a good spontaneous lecturer.

Enthusiasm:

Show that you love the material: think each day about why you love CS, what about the material is interesting. Let that come out in your lectures/discussions.

Things to remember: