Michael E. Caspersen: Stepwise improvement – revealing the best kept secret in programming education

V sklopu spletnih seminarjev NAPOJ – IZZIVI POUČEVANJA RAČUNALNIŠKIH VSEBIN V OŠ in SŠ vas v sredo, 16. 11. ob 19:30 vabimo na webinar  (ZOOM:  https://uni-lj-si.zoom.us/j/94591171819?pwd=NUlMaitEczcvS3lia2xPaDR1bjd6dz09)

Michael E. Caspersen: Stepwise improvement – revealing the best kept secret in programming education
AbstractProgramming is recognized as one of the seven grand challenges in computing education. Decades of research have shown that the major problems novices experience are composition-based—they may know what the individual programming constructs are, but they do not know how to put them together. Despite this fact, textbooks, educational practice, and programming education research hardly address the issue of teaching the skills needed for the systematic development of programs.
We provide a conceptual framework for incremental program development, called stepwise improvement, which unifies best practices in modern software development such as test-driven development and refactoring with the prevailing perspective of programming methodology, stepwise refinement. The conceptual framework enables well-defined characterizations of incremental program development.
The conceptual framework provides the background for a programming methodology for novices and an instructional design for an introductory programming course in which stepwise improvement is supported explicitly by the programming process and a model-driven approach to object-oriented programming and implicitly through the cautious design of the teaching material.
Our approach is founded in cognitive science and educational psychology, primarily cognitive load theory, cognitive skill acquisition, and cognitive apprenticeship, as well as research in programming methodology.


Michael E. Caspersen is the Director of the Centre for Science Education and Associate Professor at the Department of Computer Science, Aarhus University, Denmark. His research interests are computing education, programming didactics, programming methodology, and object-oriented programming. He has published more than 50 papers on computing education and is co-author of a two-volume textbook on programming and coeditor of “Reflections on the Teaching of Programming” published by Springer-Verlag, 2008.