skip to main content
article

Revealing the programming process

Published:23 February 2005Publication History
Skip Abstract Section

Abstract

One of the most important goals of an introductory programming course is that the students learn a systematic approach to the development of computer programs. Revealing the programming process is an important part of this; however, textbooks do not address the issue -- probably because the textbook medium is static and therefore ill-suited to expose the process of programming. We have found that process recordings in the form of captured narrated programming sessions are a simple, cheap, and efficient way of providing the revelation.We identify seven different elements of the programming process for which process recordings are a valuable communication media in order to enhance the learning process. Student feedback indicates both high learning outcome and superior learning potential compared to traditional classroom teaching.

References

  1. Alford, K., "Video FAQs -- Instruction-On-Demand", Proceedings of Frontiers in Education, Boulder Colorado, 2003.Google ScholarGoogle Scholar
  2. Astrachan, O. & Reed, D., "AAA and CS1: The Applied Apprenticeship Approach to CS1", Proceedings of the twenty-sixth SIGCSE Technical Symposium on Computer Science Education, Nashville, Tennessee, 1995, pp. 1--5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bennedsen, J. & Caspersen, M. E., "Programming in Context -- A Model-First Approach to CS1", Proceedings of the thirty-fifth SIGCSE Technical Symposium on Computer Science Education, Norfolk, Virginia, 2004, pp. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bennedsen, J. & Caspersen, M. E., "Rationale for the Design of a Web-based Programming Course for Adults", Proceedings of ICOOL 2003, International Conference on Open and Online Learning, Mauritius, 2003.Google ScholarGoogle Scholar
  5. Berkeley, http://webcast.berkeley.edu/courses/Google ScholarGoogle Scholar
  6. du Boulay, J.B.H., "Some difficulties of learning to program", in Spohrer, J.C. and Soloway, E. (Eds.), Studying the Novice Programmer, Hilldale, NJ, Lawrence Erlbaum Associates, Hillsdale, 1989., pp. 283--299.Google ScholarGoogle Scholar
  7. Boyle, T., "Design principles for authoring dynamic, reusable learning objects", Australian Journal of Educational Technology, 19 (1), 2003, pp. 46--58.Google ScholarGoogle Scholar
  8. Fowler, M., Refactoring -- Improving the Design of Existing Code, Addison-Wesley, 1999. ISBN 0-201-48567-2Google ScholarGoogle Scholar
  9. Gantenbein, R. E., "Programming as Process: A 'Novell' Approach to Teaching Programming", Proceedings of the twentieth SIGCSE Technical Symposium on Computer Science Education, Louisville, Kentucky, 1989, pp. 22--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gries, D. & Gries, P., ProgramLive, John Wiley & Sons, 2001.Google ScholarGoogle Scholar
  12. Kölling, M. & Rosenberg, J., "Testing Object-Oriented Programs: Making it Simple", Proceedings of the twenty-eighth SIGCSE Technical Symposium on Computer Science Education, San José, California, 1997, pp. 77--81. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kölling, M., "Teaching Object Orientation with the Blue Environment", Journal of Object-Oriented Programming, Vol. 12 (2), 1999, pp. 14--23.Google ScholarGoogle Scholar
  14. Kölling. M, "The Curse of Hello World", Invited lecture at Workshop on Learning and Teaching Object-orientation -- Scandinavian Perspectives, Oslo, October 2003.Google ScholarGoogle Scholar
  15. Linn, M. C. & Clancy, M. J., "The Case for Case Studies of Programming Problems", Communications of the ACM, 35 (3), 1992, pp. 121--132. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Ma, W., Lee, Y., Du, D.H.C. & McCahill, M. P., "Video-based Hypermedia for Education-On-Demand", Proceedings of the fourth ACM International Conference on Multimedia, 1996, pp. 449--450. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. MIT, www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/Google ScholarGoogle Scholar
  18. Ronins, A., Rountree, J. & Rountree, N., "Learning and Teaching Programming: A Review and Discussion" Journal of Computer Science Education, Vol. 13 (2), 2003, pp. 137--172.Google ScholarGoogle ScholarCross RefCross Ref
  19. Smidth, T, Ruocco, A & Jansen, B., "Digital Video in Education", Proceedings of the thirtieth SIGCSE Technical Symposium on Computer Science Education, New Orleans, Louisiana, 1999, pp. 122--126. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Soloway, E., "Learning to Program = Learning to Construct Mechanisms and Explanations", Communications of the ACM, 29 (9), 1986, pp. 850--858. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Spohrer, J. & Soloway, E., "Novice Mistakes: Are the Folk Wisdoms Correct?", Communications of the ACM, 29 (7), 1986, pp. 624--632. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Spohrer, J. & Soloway, E., "Analyzing the High-Frequenzy Bugs in Novice Programs", In Iyengar, S. & Soloway, E. (Eds.), Empirical Studies of Programmers, Ablex, New York, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Revealing the programming process

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader