I have been doing a course ( https://www.futurelearn.com/courses/secondary-programming-pedagogy) which reminded me about the ‘why’ and ‘how’ of teaching programming; keeping the students at the center of it all. Quite often I got straight into teaching coding without having a plan, specifically a pedagogy of any sort. As part of the course requirement, we have to complete a lesson plan for a programming project which will be assessed by our peers. The project should outline:

Project briefThis is the worksheet or project outline that you would give to your learners before they start the project. It should outline the problem and the requirements of the solution.
CodeProvide a complete example solution.
Pedagogical approachAdd a description of which pedagogical approaches that you will take, and when in the project you will apply them.

There are two examples to build on.

1) A high/low game ( Number guessing game)

2) Ticket machine ( ticket dispenser with specific note values/ return change)

I chose the Ticket machine since I have already made a high/low game before. The ticket machine also sounds like a decent challenge for a year 11 class which I am about to try this unit with.


The ticket machine

Develop a program for a ticket machine where you can purchase a ticket for a theme park. The user should be able to select:

  • An adult ticket (£10)
  • A child ticket (£6)
  • A family ticket (£20)

The machine will only allow the user to enter values of £1, £2, or £5. Once the ticket price has been reached or exceeded, the machine will work out and return (print to screen) the correct change if the user has exceeded the ticket price.


  • You are to make an interactive vending machine program which will accept the ticket choice , accept certain coins and return change.
  • A GUI is not expected
  • variables, conditional, try except are expected


I would use a mix of pedagogies to get into this problem. To begin with, I would present the problem as a local problem to our city and the need of software guys like the students to work it out. It creates the context for the students. Once they have worked out the requirements they will work in pairs to model the ticket selection part. As there are 3 choices of tickets, I would ask them what are the possible commands they would use in this section of code. In pairs they would come up with solutions for this section. If they struggle , then I will have that section of code on the screen and they would need to write out comments explaining what’s going on.

For the calculations which is the next part I would intend to live code with students picking up one of the solutions that students have made. This would enable students to see end points of where it could have lead should their code be used.

Parsons problems could be used in the calculation function.


Please leave your feedback on this assignment if you like.

Notify of
Inline Feedbacks
View all comments