Although this approach worked well, its
success absolutely depended upon student
buy-in. This was how the students wanted
the course to proceed, and they followed
through on their commitments.
STUDENTS CHOOSING PEDAGOGY
Since that time, I have started a semester in
a few courses by outlining several possible
class formats. The students and I then discuss
possibilities over the first few class meetings
(while also covering some foundational material). By the end of the first week, students
had decided how the course will proceed.
(Depending upon a school’s environment,
discussions of class format and pedagogy
might take place before classes start via
email or online discussion, but to date I have
preferred face-to-face discussions/debates to
encourage everyone to contribute.)
As a specific example, the last two times
I taught an upper-level algorithms course, I
began the semester highlighting five distinct
class formats that might be considered:
• Instructor lectures (perhaps with
• Students submit summaries or questions for discussion, based on readings, before most classes.
• Students work problems (sometimes individually, sometimes in groups of 2 or 3).
Student Lectures (a scaling of the 1978
version discussed earlier)
• About 3 students organize and lecture
on the topic specified for the day.
The day-by-day schedule guides the
flow of material.
Student presentations cover much of
Each student in a group presents
The instructor may add perspective
at the end of each class.
Groups likely change from one set of
lectures to the next.
• Other students work problems
(sometimes individually, sometimes in
groups of 2 or 3).
• First class on a topic
Students ask questions on the assigned reading.
Class discussion clarifies questions.
An assignment is given (perhaps 2–3
• Next class: students present solutions.
Students might present individually.
Groups of 2 or 3 might present
The selection of presenters might be
random, based on volunteers, etc.
Course rules might dictate that a
student present a specified minimum number of solutions for the
semester or other time interval.
• A course might focus on a series of
If groups tackle problems, the
composition of groups might change
• Although this approach may resonate
with those interested in software-de-velopment, several potential difficulties sometimes arise.
If a textbook presents much pseudo-code, programming itself may
emphasize syntax translation rather
than a mastery of ideas.
Some topics (e.g., graph algorithms)
may require a support structure that
provides a framework for the topics
In studying graph algorithms, a
framework might require a program to set up a graph and print
its vertices and/or edges.
Without a support structure, more
programming effort may be con-
sumed for a foundation platform/
library than for applying the algo-
rithms or techniques under study.
Multiple implementations may be
possible for some algorithms, and
programming assignments may
need to focus on one approach or
For example, graphs might be
implemented with hash tables,
adjacency lists, adjacency matrices,