How I approach the IGCSE Computer Science pre-release (2019-20)

If you’re reading this then I assume you already teach IGCSE Computer Science so are familiar with the structure. This blog post will go through how I approach the pre-release with my students and how we prepare for the exam. It also contains links to some worksheets which I have put together to help my students write their programs (these are at the end of the blog post). It provides them with a similar problem – shown in the image for this blog post – and scaffolding which they can refer to when programming their own solutions to the pre-release.

 

Introduction

Before I give students access to the pre-release, I ensure that they are confident with the concepts of selection, iteration and arrays. Arrays are one of the areas I find students struggle with the most, and they’re an important part of the pre-release, so I believe they should have a firm understanding of them before looking at the exam board’s problem. If they do not understand how they work, then their planning will suffer as they won’t have the foundation knowledge to start thinking about solutions.

Before giving the students any handouts, I explain the task as a real life scenario. For this one, I will explain that there is a shop who want to sell their products using an electronic system. I will show them the list of products (from the pre-release) and talk through what the program should do. I will explain the three tasks and how each one builds upon the one before it.

I will then give out the pre-release document, as presented by the exam board, and read through it with the class. I will encourage them to highlight any important parts (such as validation) and consider the wording carefully. I find that the pre-release can be ambiguous sometimes but I think this is intentional as it allows students flexibility in approaching solutions in different ways.

 

Planning

I will not allow students anywhere near a computer until I am happy they have thought about their plan to approach the problem. Students could simply get straight onto Python and start writing code, but from experience I find this will often cause problems later on, especially if lessons are a few days apart and students forget what they were doing. I tell my students that they need to provide me with a flowchart or pseudocode (in Python if they wish, but written by hand) and be able to talk through how they will approach the program.

This is the point which shows the greatest difference in student programming ability. Some will manage to plan out their flowcharts easily, with a clear idea of how to structure their data and how the user will work their way through a series of options. Others will struggle to know where to begin. Because of this, I allow students to work on their own (or in pairs) but if they want help, I run through my own approach on the board, live, and talk through it. I often find that students will come to the board initially and listen, then will move back more confidently to their own plan after being given the first few steps to scaffold their approach.

Once students have shown me a plan, I will give verbal feedback and allow them to tweak it if necessary. I do not expect the plans to be perfect, but they should provide enough structure that someone could start to put together some code by looking at them alongside the pre-release data.

 

Programming

Students will be given the opportunity to start programming a solution (to Task 1 initially). There are a number of layers of help I give here:

  1. Syntax sheets – these are simply sheets showing basic commands and how they are laid out (e.g. showing how a ‘for’ loop is written). Useful for when students know what they need to do but can’t remember the exact code. There are lots of examples of these on the TES.
  2. Similar worksheets – these are worksheets for each task that I have put together from my own solutions to the pre-release. They don’t provide code for the pre-release itself, but for a similar task which will hopefully help the student consider how to proceed with their own code. Links for these are available at the bottom of this blog post.
  3. Me – as a last resort I will look at the code, but I encourage students to look at the first two options first. If I provide the answer or tell them what to write, they are less likely to remember what they have done or why it works. This is a ‘desirable difficulty‘ which I want them to experience.

 

Validation & Testing

Once they have finished (or think they have finished!) their code, I get them to ask others to test it and try to ‘break’ it. This process reinforces the need for validation and reminds them about testing and different types of inputs they can use (valid, invalid, boundary etc).

 

Example Exam Questions

Finally, once the program is complete and students are happy with how it works, I give them some example exam questions to complete. I will put these together later this term and will add links to this blog with them. This encourages students to revisit their code and consider what they did and how it could be improved. It also gives them an opportunity to practice Paper 2 style questions which should help them in the exam.

 

LINKS

Click here to download the helpsheets for 0984 IGCSE Computer Science 2019-20 Paper 21 Pre-Release (FREE)

(there are some other resources on my TES page for IGCSE Computer Science which you may find useful, as well!)

Leave a comment