Computer programming is a process. Successful programming involves incrementally building and testing a solution. Students’ ability to program is determined by an assessment of the end product of a programming session rather than an examination of the actual process students are engaged in.
Imagine a driving test in which the candidate drives from A to B, yet the examiner determines whether to grant a license simply by whether the car ended up in spot B, with disregard for how the car was driven from A to B. Unfortunately, this is the current model of assessment of programming skills.
We will develop a model of the programming process and design assessment methods aligned to the programming process and not just the end product so that we may better support students with different learning styles and customize formative feedback based on learning styles.