The goal of this paper is to present in context the key didactical principles behind the Program by Design curricula, motivate the need for the supporting software, and describe in detail the How to Design Classes component for teaching introductory object oriented program design using Java and Java-like languages. The key innovations are a systematic test-first program design, and the introduction of programming language concepts by designing abstractions based on existing programs.


Informatics in primary and secondary education design principles software for novice programmers abstractions 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Barnes, D.J., Kölling, M.: Objects First with Java: A Practical Introduction using BlueJ. Prentice Hall / Pearson Education (2008)Google Scholar
  2. 2.
    Bootstrap Project,
  3. 3.
    Dann, W.P., Cooper, S., Pausch, R.: Learning to Program with Alice, 3rd edn. Prentice Hall, Englewood Cliffs (2012)Google Scholar
  4. 4.
    Felleisen, M., Findler, R.B., Flatt, M., Krishnamurthi, S.: How to Design Programs. MIT Press, Cambridge (2001)zbMATHGoogle Scholar
  5. 5.
    Felleisen, M., Findler, R.B., Flatt, M., Krishnamurthi, S.: How to Design Programs, 2nd edn.,
  6. 6.
    Felleisen, M., Findler, R.B., Flatt, M., Gray, K., Krishnamurthi, S., Proulx, V.K.: How to Design Classes,
  7. 7.
    Findler, R.B., Flanagan, C., Flatt, M., Krishnamurthi, S., Felleisen, M.: DrScheme: A pedagogic programming environment for Scheme. In: Hartel, P.H., Kuchen, H. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 36–388. Springer, Heidelberg (1997)Google Scholar
  8. 8.
    Klaeren, H., Sperber, M.: Die Macht der Abstraktion, B. G. Teubner Verlag, Wiesbaden (2007)Google Scholar
  9. 9.
  10. 10.
    Proulx, V.K.: ReachJava Libraries,
  11. 11.
    Proulx, V.K.: Test-Driven Design for Introductory OO Programming. SIGCSE Bulletin 41(1), 138–142 (2009)CrossRefGoogle Scholar
  12. 12.
    Proulx, V.K., Gray, K.E.: Design of Class Hierarchies: An Introduction to OO Program Design. SIGCSE Bulletin 38(1), 288–292 (2006)CrossRefGoogle Scholar
  13. 13.
    Riley, D.D.: The Object of Data Abstraction and Structures Using Java. Addison Wesley, Reading (2003)Google Scholar
  14. 14.

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Viera Krňanová Proulx
    • 1
  1. 1.Northeastern UniversityBostonUSA

Personalised recommendations