Learning to program = learning to construct mechanisms and explanations
Communications of the ACM
Programming pedagogy—a psychological overview
ACM SIGCSE Bulletin
Learning programming in Prolog using schemata
ACM SIGPLAN Notices
Programming by numbers: a programming method for novices
The Computer Journal
A pattern-based problem-solving process for novice programmers
ACE '03 Proceedings of the fifth Australasian conference on Computing education - Volume 20
A multi-national study of reading and tracing skills in novice programmers
Working group reports from ITiCSE on Innovation and technology in computer science education
A study of the difficulties of novice programmers
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
ACM Computing Surveys (CSUR)
A tool for programming learning with pedagogical patterns
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Delocalized Plans and Program Comprehension
IEEE Software
A survey of literature on the teaching of introductory programming
Working group reports on ITiCSE on Innovation and technology in computer science education
A goal/plan analysis of buggy pascal programs
Human-Computer Interaction
STREAM: A First Programming Process
ACM Transactions on Computing Education (TOCE)
Communications of the ACM - Scratch Programming for All
Hi-index | 0.00 |
Introductory programming courses have been continuously reported as having a high rate of failure or withdrawal. This research aims to develop a new approach for teaching novice programming, which is both easy to introduce and effective in improving novice learning. Our approach combines three key ideas: using a visual programming language; using strategies, specifically using the concepts of "goal" and "plan"; and having a well-defined process. We present a way of representing goals and plans in a visual notation together with a plan library that we developed in a visual programming environment (VPE). A key feature of the approach is that a design, i. e. an unmerged "plan network", is executable and can be tested, giving feedback in the VPE. Furthermore, we describe a detailed process for using existing plans and building new plans in the VPE. This approach had been evaluated experimentally and the results indicated its potential to significantly improve teaching programming to novices.