Technique – Structured Programming Alternative Conceptions

Summary of Technique

This technique is used to interrogate pupils’ knowledge of structured programming by looking at alternative conceptions. A list of known alternative conceptions (see the approach post here) is used as the basis for programming questions. The questions can act as a diagnostic test, by providing feedback to pupils on why their understanding is flawed. The questions can also be used to get pupils to provide their own explanations for each question.

Exercises for Teachers

Taking the N5 programming concepts test yourself is an important first step. Once you’ve marked your answers you should then go back through the test and try to identify the most likely incorrect answers your students would choose. These questions use the SQA Reference Language Haggis so some of the concepts may work slightly differently in the language of instruction you use with pupils.

Ways of Using the Technique in the Classroom

A question from the question banks provided can be given to pupils in the Haggis reference language. It can also be rewritten to suit the programming language and environments pupils are familiar with. Some of the questions will not provide the same answer in every programming language (e.g. the use of loop counters, indexes and dynamic typing may be different between Haggis and your language of choice).

Here is an example alternative conception question.

Question with answer options:

Which code fragment, inserted in the position indicated between the WHILE and the DO keywords would ensure that the following loop body was only executed 3 times?

SET x TO 0

WHILE <Code fragment inserted here> DO

SET x TO x + 1


A) x > 3

B) x >= 3

C) x < 3

D) x <= 3

The correct answer is C.

A is incorrect because the loop will not run. This is because the WHILE loop executes when a condition is true, rather than when it becomes true.

B is incorrect because the loop will not run. This is because the WHILE loop executes when a condition is true, rather than when it becomes true.

D is incorrect because the loop will execute when x is three, bringing the number of executions to 4 (0,1,2 and 3)

This question has been based on the alternative misconception that value of the variable controlling a conditional loop matches the number of times the loop will repeat. The answers can also highlight similar alternative conceptions about the code.

There are two simple approaches you could use with alternative conception questions:

Use the question as a diagnostic test

As the teacher, keep the answer secret. Ask pupils to answer questions without any help or further explanation. Use the feedback session and knowledge of the alternative misconception to guide pupils towards a further understanding.

Use the question and ask pupils to explain why answers are correct/incorrect

When pupils provide an answer, they must also specify why it is right, and even why the other answers are wrong. This is similar in approach to Peer Instruction and the approaches can be combined. This will highlight deep understanding of how code works.

Benefits for Learners

  • Stronger understanding of alternative misconceptions based on feedback
  • A chance to interrogate their own understanding of a concept through discussion or explanation
  • Time spent focusing on common issues that they may come across in programming tasks later in the course.

Tips for Creating New Exercises

The list of alternative misconceptions is an ideal point to start when creating new questions. It may also help to look at previous materials in order to create isomorphic questions.

There may be alternative misconceptions that are consistently affecting pupil progress in your chosen environment (e.g. coordinates in Scratch games) – identifying these as targets of questions is a good starting point.

Pupil Materials

Pupil materials for National 5 should be created from the Nat 5 teacher materials so the teacher can decide what language etc to use.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *