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.
- Alford, K., "Video FAQs -- Instruction-On-Demand", Proceedings of Frontiers in Education, Boulder Colorado, 2003.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- Berkeley, http://webcast.berkeley.edu/courses/Google Scholar
- 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 Scholar
- Boyle, T., "Design principles for authoring dynamic, reusable learning objects", Australian Journal of Educational Technology, 19 (1), 2003, pp. 46--58.Google Scholar
- Fowler, M., Refactoring -- Improving the Design of Existing Code, Addison-Wesley, 1999. ISBN 0-201-48567-2Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Gries, D. & Gries, P., ProgramLive, John Wiley & Sons, 2001.Google Scholar
- 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 ScholarDigital Library
- Kölling, M., "Teaching Object Orientation with the Blue Environment", Journal of Object-Oriented Programming, Vol. 12 (2), 1999, pp. 14--23.Google Scholar
- Kölling. M, "The Curse of Hello World", Invited lecture at Workshop on Learning and Teaching Object-orientation -- Scandinavian Perspectives, Oslo, October 2003.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- MIT, www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/Google Scholar
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- Soloway, E., "Learning to Program = Learning to Construct Mechanisms and Explanations", Communications of the ACM, 29 (9), 1986, pp. 850--858. Google ScholarDigital Library
- Spohrer, J. & Soloway, E., "Novice Mistakes: Are the Folk Wisdoms Correct?", Communications of the ACM, 29 (7), 1986, pp. 624--632. Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Revealing the programming process
Recommendations
Revealing the programming process
SIGCSE '05: Proceedings of the 36th SIGCSE technical symposium on Computer science educationOne 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 ...
A novice's process of object-oriented programming
OOPSLA '06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applicationsExposing 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 ...
Programming in context: a model-first approach to CS1
SIGCSE '04: Proceedings of the 35th SIGCSE technical symposium on Computer science educationThe recommendations of the Joint Task Force on Computing Curricula 2001 encompass suggestions for an object-first introductory programming course. We have identified conceptual modeling as a lacking perspective in the suggestions for CS1. Conceptual ...
Comments