Skip to main content

CPD Resources for pedagogical content knowledge (PLANC)

Downloaded: 7

Last edit: 17 February 2022

Imported Resource Type For Teachers, For Students, Meta-resource, For Hubs, Meetings, Universities and Research
Language/Platform Python, HTML/CSS/Javascript, Unplugged, Basic
Subject Knowledge Programming and Development, Communication and Networks

Professional Learning And Networking in Computing.

This project was sponsored by Scottish Government and administered by BCS Academy to develop and explore:

  • Community building to facilitate useful sharing among teachers of computing in Scotland
  • Explore and derive pedagogies appropriate for Computer Science teaching
  • To finding, develop, elicit pedagogical content knowledge for Computer Science (i.e. what makes a good teacher good!)
  • View programming as a vehicle towards developing Computational Thinking skills

NB. References to Scottish school phases and qualifications (e.g. N4, N5 etc) are used throughout.


Local Hub Resources

A series of CPD resources focusing on code comprehension and the development of pedagogy to help pupils and students think carefully about the code they write by analysing and reading existing code. Each session is supported by an easy to understand slide deck/presentation, pupil materials and further reading.

They are suitable to be used as part of a teacher meeting e.g. CAS Hub meeting, departmental training. There are a wide variety of activities, exercises and prompt questions which are well worth dipping into. Some may well work as classroom activities but it is left to individuals to amend and develop in this way.

All of these resources are listed individually below.

If any of the following are useful please do drop back and leave a comment. If you adapt any of the activities for your own classroom then please share them on for others to take and use.


Cup of Tea and Computer Science

This exercise involves getting members of the group to think carefully about the range of concepts pupils have to understand. The exercise involves them thinking about what understanding of natural language is needed to make a cup of tea and then looking at a program to unpick all of the concepts. NB. This activity goes beyond just recalling the steps required to carry out an activity and begins to explore the importance of understanding the mechanisms that underpin programming language constructs.

Resources


TRACS: Tracing for Learning and Assessment

TRACS is introduced, an advanced version of a simple hand execution / tracing exercise. Rather than just tracing variable values, TRACS ensures that all working is recorded while hand executing a program. This helps learners by making explicit the complexity of even quite simple programs and by reducing the cognitive load associated with hand execution. It helps teachers because a full record is kept of how the learner believes the program should execute, for inspection and correction, where necessary.

The purpose of TRACS is to re-affirm the importance of program comprehension in order to be able to write programs and develop an understanding of the execution of code. The exercises will introduce a new activity of benefit for (a) learners, to develop skills and deepen understanding, and for (b) teachers, to assist in diagnosing learners' misconceptions.

TRACS is a series of methods of annotating and tracing through code at different levels of detail designed to help novices understand how code executes. There is a different format for visualising programs with user defined functions and procedures and a version for visualising how expressions are evaluated which are covered in later sessions.

Resources


Alternative Conceptions

Explores the territory of students' faulty thinking and various ways to help in diagnosing that thinking and practical steps to correct it. For example, "Check age is 18 or over or 65 and under" means "Age >= 18 or < 65" and not "Age >= 18 and Age <=65".

The session starts with a small baseline test to use with other teachers though it could equally be used with students as well. Then follows an analysis of some of the more common misconceptions. Super useful for personal learning as well as then being able to spot these misconceptions being made by students in a class.

Resources


Why and How of HAGGIS

This session revisits the issue of formal vs. natural languages in computing education. Haggis was produced by Scottish educators as a mechanism for standardising a pseudocode for use in Scottish classrooms. The authors do emphasise though that HAGGIS is not pseudocode, it is designed as a formal language to assess program comprehension. The underlying rationale for Haggis (as a formal language, a reference language, shared across SQA and all schools) as a formal language for use in assessing program comprehension is introduced followed by activities to show it can be used as a teaching tool.

Resources


Block Model: Code Comprehension

Activity and discussion encouraging learners to read and understand code. If a student can read and explain what is happening in code they are more likely to be better at coding their own solutions, so goes the theory, and this session supports an investigation into that theory through sharing current techniques for code comprehension with discussion about its value and then an examination of the Block Model as a technique to analyse and explain existing code.

Resources


Code Comprehension for HTML and CSS

The principles of block level comprehension are applied to webpages (HTML and CSS).

Resources


The Role of Worked Examples in Programming Pedagogy

(NB. Weblink is broken in PPTX (Slide 27))

Expert programmers have written lots of lines of code, solved many problems and probably applied similar principles of thinking about these problems based on their experience. Those new to programming, like many of our students, do not have this experience to draw on so we need to work through examples step by step, encouraging them to ask questions about their problem at each step as they work through to a solution. This activity is designed to help this pedagogical approach and reinforce the benefits of spotting patterns.

Resources


Subgoal Labelling of Worked Examples

Worked examples are useful but sometimes students can follow them without developing real understanding or there may be a series of specific details related to the problem so common structures can be harder to see and they may encounter transfer difficulties. So, we need to help students organise what they see into meaningful 'chunks' by grouping together the steps and providing an infomrative label. This session explores sub-goal labelling with a worked example.

Resources


Pattern Orientated Instruction or How to Chunk Code More Effectively

Spotting those steps we've used in previous problems can be a challenge. Recognising how problem descriptions connect with previously used problems is likewise problematic as is producing a standardised format to allow reuse. This session introduces some simple syntax examples where the recognition of the pattern of steps aids in the solution. Several examples are provided to provoke activity and discussion.

Resources


Collaborative Code Review for Learning

Program comprehension skills are an important part of being able to understand the pupil's own programs. This session develops activities that bring together:

  • Tracing
  • Identifying and describing mechanisms
  • Discussing different ways of writing instructions, and
  • Evaluating choices made

It develops the skills to help us review another person's code to give constructive feedback, the emphaise being on doing this collaboratively to further reinforce understanding.

Resources


Variable Roles

Variables used in program code are used for declaration, initialisation and assignment, the overall function of a variable is a collection of smaller basic operations often spread throughout the program. A variable may take on the role of a "stepper", "a most recent holder", "a gatherer" etc.. This session encourages us to think about how variables are used at a higher level and extrapolates to help pupils link the code to the problem it’s being used to solve.

Resources


Values and References, Copying Variables and Parameter Passing

The title contains two different concepts that are often confused at all areas and all levels of computing. The purpose of this session is to tease out these differences so that they can be understood clearly in isolation from one another. The session presents a single consistent mental model for both concepts for use in education, along with exemplification in a number of different programming languages. (Note that the model may not map directly to the underlying language implementations, nor may it match with your own current mental model of various concepts, but it should be sufficient to thoroughly understand the execution of programs in any language.)

Resources


Data Modelling and ER Diagrams

A thorough introduction to database modelling using entity relationship diagrams using activities and knowledge from popular social media platforms.

Resources


What Do Pupils Find Difficult About Databases and Why?

An interactive session using peer instruction methods exploring some of the alternative conceptions (misconceptions?) pupils have when learning about databases and database modelling. What is it they find difficult and why?

Resources


Using TRACS Methodology with Sub-Programs

Earlier sessions have introduced an advanced version of a simple hand execution / tracing exercise known as TRACS. It has proven successful in classes for both pupils to check their understanding of the code and for teachers to introduce a way of understanding a programming construct. Standard TRACS helps pupils identify expressions within statements, mark up control flow, step through the code, monitor variable values and evaluate expressions. This session moves this on to applying TRACS to subprograms and functions with parameters and return values.

Resources


Parsons Puzzles - Simplifying Writing Code

Attributed to Dale Parsons an Australian CS teacher who has written about this exercise format the most. He developed the idea of taking a a problem and its solution, jumbling up the lines of the solution and get the student to "unjumble" the lines back into the correct solution! It's a great technique to force the students to consider the structure of the code and to think creatively about a solution i.e. where are those lines I know must be here in the solution somewhere!