UCB Seal

Information about me

Courses I coordinate

Course staffing opportunities

The UC-WISE project

Programming case studies

My publications

Interesting links

Directions to campus and Soda Hall

Mike Clancy

Senior Lecturer
EECS Computer Science Division
UC Berkeley

Mike Clancy

Programming case studies

A case study consists of a programming problem, one or more solutions to the problem, and a narrative description of the process used by an expert to produce the solutions.

Rationale for case studies and ideas for using them in a programming course are laid out in the following papers:

  • “The Case for Case Studies of Programming Problems”, Marcia C. Linn and Michael J. Clancy, Communications of the ACM, volume 35, number 3, pages 121-132, March 1992.
  • “Case Studies in the Classroom”, Michael J. Clancy and Marcia C. Linn, proceedings of the 23rd SIGCSE Technical Symposium on Computer Science Education, Kansas City, Missouri, March, 1992; published as SIGCSE Bulletin, volume 24, number 1, March 1992. (A revised version of this paper is available here.)

Marcia Linn and I put together two collections of case studies in Pascal programming. You can get them used at amazon.com for around $2—such a deal!

  • Designing Pascal Solutions: Case Studies with Data Structures, Michael J. Clancy and Marcia C. Linn, W.H. Freeman and Company, 1996.
  • Designing Pascal Solutions: A Case Study Approach, Michael J. Clancy and Marcia C. Linn, W.H. Freeman and Company, 1992.

Other textbooks with a strong case study approach include the following:

  • (books will be listed here as I find them)

The Advanced Placement Computer Science examinations are partly based on a case study. Starting with the May 2008 exam, this will be the GridWorld case study.

Our Scheme-based introductory programming course for non-CS majors uses several case studies. The self-paced version of the course, CS 3S, uses the case studies listed below.

I'm still developing case studies. In particular, I've tried two new ones in CS 61B, our course on data structures and programming methodology. Comments and feedback are welcome.