Remember Me
Or use your Academic/Social account:


Or use your Academic/Social account:


You have just completed your registration at OpenAire.

Before you can login to the site, you will need to activate your account. An e-mail will be sent to you with the proper instructions.


Please note that this site is currently undergoing Beta testing.
Any new content you create is not guaranteed to be present to the final version of the site upon release.

Thank you for your patience,
OpenAire Dev Team.

Close This Message


Verify Password:
Verify E-mail:
*All Fields Are Required.
Please Verify You Are Human:
fbtwitterlinkedinvimeoflicker grey 14rssslideshare1
Caspersen, Michael E.; Kölling, Michael (2006)
Publisher: ACM
Languages: English
Types: Unknown
Subjects: QA76
Exposing students to the process of programming is merely implied but not explicitly addressed in texts on programming which appear to deal with 'program' as a noun rather than as a verb.We present a set of principles and techniques as well as an informal but systematic process of decomposing a programming problem. Two examples are used to demonstrate the application of process and techniques.The process is a carefully down-scaled version of a full and rich software engineering process particularly suited for novices learning object-oriented programming. In using it, we hope to achieve two things: to help novice programmers learn faster and better while at the same time laying the foundation for a more thorough treatment of the aspects of software engineering.
  • The results below are discovered through our pilot algorithms. Let us know how we are doing!

    • [1] Back, R.-J., On the Correctness of Refinement Steps in Program Development, PhD thesis, Department of Computer Science, University of Helsinki, 1978.
    • [2] Back, R.-J., Refinement Calculus: A Systematic Introduction, Springer-Verlag, 1998.
    • [3] Beck, K. Extreme Programming Explained: Embrace Change, Addison-Wesley, 2000.
    • [4] Beck, K., Test-Driven Development by Example, AddisonWesley, 2003.
    • [5] Bennedsen, J. and Caspersen, M.E., ”Revealing the Programming Process”, Proceedings of the thirty-sixth SIGCSE Technical Symposium on Computer Science Education, St. Louis, Missouri, USA, 2005, pp. 186-190.
    • [6] Cohen, E., Programming in the 1990's, Springer-Verlag, 1990.
    • [7] Dahl, O.-J., Dijkstra, E.W. and Hoare, C.A:R., Structured Programming, Academic Press, 1972.
    • [8] Dijkstra, E.W., “A Constructive Approach to the Problem of Program Correctness”, BIT 8, 1968.
    • [9] Dijkstra, E.W., “Notes on Structured Programming”, EWD 249, 1969. In [7].
    • [10] Dijkstra, E.W., A Discipline of Programming, Prentice-Hall, 1976.
    • [11] Dr. Java, http://drjava.org, Accessed 12 July 2006.
    • [12] Fowler, M., Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999.
    • [13] Gries, D., “What Should We Teach in an Introductory Programming Course”, Proceedings of the fourth SIGCSE Technical Symposium on Computer Science Education, 1974, pp. 81-89.
    • [14] Gries, D., The Science of Programming, Springer-Verlag, 1981.
    • [15] Hunt, A. and Thomas, D., Pragmatic Unit Testing in Java with JUnit, The Pragmatic Programmers, 2003.
    • [16] JUnit. www.junit.org.
    • [17] Kölling, M., Unit Testing in BlueJ. www.bluej.org/tutorial/ testing-tutorial.pdf. Accessed 12 July 2006.
    • [18] Kölling, M., Quig, B., Patterson, A. and Rosenberg, J., “The BlueJ System and its Pedagogy”, Computer Science Education, Vol. 13, No. 4, 2003, pp. 249-268.
    • [19] Martin, R.C., Agile Software Development: Principles, Patterns, and Practices, Prentice-Hall, 2003.
    • [20] Morgan, C., Programming from Specifications, PrenticeHall, 1990. http://users.comlab.ox.ac.uk/carroll.morgan/PfS/ Accessed 12 July 2006.
    • [21] Wirfs-Brock, R. and McKean, A., Object Design: Roles, Responsibilities, and Collaborations, Addison-Wesley, 2003.
    • [22] Wirth, N., “Program Development by Stepwise Refinement”, Communications of the ACM, Vol. 14, No. 4, April 1971, pp. 221-227.
    • [23] Wirth, N., Systematic Programming, Prentice-Hall, 1973.
  • No related research data.
  • No similar publications.

Share - Bookmark

Cite this article