Starting New Courses, Revamping Old Ones
Ph.D. Professional Seminar. 4 March 1997.
Keshav Pingali
Note: The slides
which were used in this talk are available in
postscript format.
Pingali spoke about his experience at Cornell with reviving and
revamping courses. Specifically he spoke about three courses, each
at a different "level" with a different role to play within the
department.
- CS 612: Compiling for High-performance Architectures. Graduate course.
- CS 314: Introduction to Digital Systems and Computer Organization.
Required for CS Majors.
- CS 211: Computers and Programmers. Required for some engineering and
science majors.
CS 612, before Pingali took over, was primarily a service course on
compilers. The new version became an advanced graduate course on
compilers which is ideal for those who are interested in material
which also coincides with Pingali's research. He offered a number of
lessons (pro and con) and some inside secrets to take from his
experience of revamping a graduate course:
- Re-orient courses towards your own research area.
- "Service" graduate courses are usually a disservice to everyone.
- Use graduate courses to get grad students.
- If it's not possible to completely re-orient the course, then at
least attempt to use examples and homework from your own
subject.
- Use the course to implement and evaluate ideas from the literature.
This is useful for yourself as well.
- If, on the other hand, the course becomes your own "autobiography"
then on one else will be able to teach it. Be prepared to do so
yourself every time around. Also, try to find other faculty whose
research interests intersect with your own. This may enable you to
take turns teaching from year to year, or even week to week if
team-teaching is an option.
- Keep in mind that presenting your "current" research may cause the
course to change dramatically from year to year, and such big swings
may unnerve both students and faculty, as well as cause yourself more
work.
- Revamping a graduate course is a great way to learn new material.
- If you are thinking of switching research, try teaching the
appropriate graduate course first.
- Use the course as a way to catch up on reading the literature.
The next course to be discussed was CS 314, a course required for
undergraduate CS majors. The previous version was a course on
assembly language and architecture. The new revised version is a course
on digital systems and architecture which includes a big implementation
project, namely: build processor using a CAD tool. Pros, cons and
inside secrets to revising this sort of course include:
- There is no such thing as a systems course without a project.
- A final exam is not an appropriate alternative to a final
project.
- However, a final project can be an alternative to a final exam,
especially if it's designed to bring together all of the course
material.
- Insist that there be a common project
- Make the project be layered, e.g., allow extra credit for extra work.
- Allow students the option of doing their own project, but be careful
about this and make sure their ideas are feasible.
- Go easy when grading the first time.
- It may be advisable to teach the course the "standard" way the
first time around. This allows you to get a feel for the undergrads,
the culture, etc.
- Adding a project to an existing course is a lot of work.
- There may be some "project recycling" by ecologically aware students.
Be careful to change the project enough each time around to
disallow this option. This can be done by keeping in mind an
"evolutionary path" that will allow the project to evolve from
semester to semester.
- Oftentimes, people who are doing their "own" project won't.
- Be sure to DO THE PROJECT YOURSELF.
- Be prepared to "blow it" totally the first time.
- Spend time in the lab with the students and cultivate the
best ones.
- Fire teaching staff (from the old version of the course) who
can't make the shift to the new project course.
- Next time, hire the "cultivated" students.
- Late-night debugging sessions can be stressful your marriage
and family.
The final course under consideration is CS 211, an undergraduate
engineering and science major course. The previous version was a course
on program development and verification, data structures, functional
programming and OO-programming. The new version is a course on
object-oriented programming with a big implementation project. This project
uses Java. One thing to keep in mind is that changing languages, somewhat
surprisingly, can really change the nature of a course.
Lessons and inside secrets include:
- To redesign this sort of lower-level "service" course calls into
play a huge number of constraints including students, your
colleagues and even other departments.
- Backgrounds of students will be extremely varied. Be prepared to
find zero intersection. Make no assumptions.
- Also, attempt to find out the expectations of students. What do
they really need/expect from the course.
- Keep in mind other departments' expectations as well. It may
be necessary to do some diplomatic "marketing" of your changes.
- With that in mind, be sure to at least consult with other departments
whose students may be in your course about the changes you plan to
make.
- Changing the programming languages can fundamentally alter the course.
For example, there are no pointers in Java, but threads are available.
- Never give students the option of doing their own project.
- Don't teach the course the "standard" way the first time around.
- It's very easy to burn out or turn off when teaching 250 people.
- Have a backup plan if the new project idea is a total failure.
- It helps to have some connections with people in other departments.
- If you don't have any of the above, it's a good time to start getting
to know people in other departments.
In summary, when redesigning a course at any level, keep the following
things in mind:
- There is no such thing as a CS course without a project.
- Preparation is crucial.
- Don't worry if you blow it the first time.
- Have a back-up plan, especially for the projects.
- Upsetting the status quo may ruffle some feathers. The more investment
people have in the status quo, the more upset they may become. Be
diplomatic.
The slides for this talk are available
here.
Back
to Ph.D. Professional Seminar Homepage.
Notes by millett@cs.cornell.edu.