Program comprehension

User guide

The investigate stage of TIME is based on a simplified version of the block model of program comprehension proposed by Carsten Schulte. This student and teacher friendly version provides a framework for questioning. It has been shown that a deeper knowledge of syntax and programming constructs allows students to adapt to new commands more easily. Being able to read code is an important pre-requisite to writing code.

Each learning program is presented with two questions for students to consider. These can also be used as the basis of class discussions and is an integral part of the dialogue between students and teachers during the oral feedback stage.

To facilitate differentiation and provide structure to questions, they should be based on one of our six pillars of program comprehension:

Block model of program comprehension

Lower order questions:

ITEM

Questions about what programming terminology means.

STRUCTURE

Questions about the syntax of lines of code.

PURPOSE

Questions about what a section of code achieves, returns or outputs.


Higher order questions:

REASON

Questions about why an item or structure is used.

RELATION

Questions about how different parts of a program relate to each other. The implications of moving statements in or out of code blocks.

APPROACH

Questions about other approaches that could have been taken to achieve the same result. The implications for space and time complexity.


You may notice that the learning programs only contain comments that separate the sections of code. They are not used to describe variables, selections, iterations, or subprograms. This is so that you can challenge students to add these comments to help with their program comprehension. Students could add a comment:

  1. After each variable is initialised to explain its purpose.
  2. Before each subprogram to explain its purpose.
  3. Before each selection: if, elif, match, case to explain the program branch and condition.
  4. Before each iteration: while, for to explain the loop and condition.
  5. To any lines of code that look complicated to explain their purpose and approach.

Some comments are included in the solution files.

Registered in England and Wales: 10442992

VAT Number: 290 9845 58

Telephone: 01452 947500

Email: admin@craigndave.co.uk

Craig'n'Dave logo

Craig 'n' Dave

Bett Awards 2024 Finalist