Design of class hierarchies: an introduction to OO program design

  • Authors:
  • Viera K. Proulx;Kathryn E. Gray

  • Affiliations:
  • Northeastern University, Boston, MA;University of Utah, Salt Lake City, UT

  • Venue:
  • Proceedings of the 37th SIGCSE technical symposium on Computer science education
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

We report on the experience of teaching an introductory second semester computer science course on Fundamentals of Computer Science that uses our curriculum How to Design Class Hierarchies and the ProfessorJ programming languages implemented within the DrScheme programming environment.This comprehensive curriculum for an introductory course focuses on principled design of class based programs in an object-oriented language (Java) with a carefully structured gradual increase in the complexity of the class structure and the programming language.The curriculum includes extensive lecture notes, programming assignments, closed lab plans, exams, and the first part of a textbook. The curriculum is supported by a programming environment ProfessorJ with a series of gradually more complex teaching languages that support a novice learner. The pedagogy focuses on teaching the students problem solving and design skills that transcend the study of programming. The organization of the topics draws its strength from the theory of programming languages by focusing on the structure of data rather than on algorithms, user interactions, or arcane details of the programming language syntax.