Traditional
 Instructor lectures
 Students submit summaries/discussion questions for most
classes
 Students work problems
 individually
 groups of 2 or 3
 Student Lectures
 3 students lecture on a topic
 Schedule guides flow of material
 Student presentation covers much of material
 Each student in group would present 1015 minutes
 Instructor may add perspective at end of each class
 Groups likely change from one set of lectures to next
 other students work 23 problems
 individually
 groups of 2 or 3
 Problembased Course
 First class on topic
 Students ask questions on section of reading
 Class discussion clarifies questions
 Assignment given (e.g., 23 problems)
 Next class students present answers
 individually
 groups of 2 or 3
 selection of presenters could be random, volunteers, minimum
number required for semester, etc.

Programmingbased Course
 course focuses on series of programming assignments
 individually
 groups of 2 or 3
 if groups, would likely change often
 several potential difficulties
 pseudocode often given in text, so programming may entail
considerable syntax translation
 often support structure needed to set up a problem
 (e.g., construct a group, print a graph)
 programming effort may consume considerably more time
than applying algorithm on paper by hand
 multiple implementations often possible for the same algorithm
 (e.g., graphs might be implemented by hash tables,
adjacency lists, or adjacency matrices)
 multiple implementations complicates analysis
 analysis of algorithms may be difficult to cover in a
programming assignment
 Inclass Small Groups
 students work in class on problems in small groups
 answers might be written up
 answers might be presented in class
 mechanisms for presenting answers open
 presentations could be same day or next class

