PCK – Pedagogical content knowledge is a theory related to understanding the overlap of subject-specific knowledge and general teaching knowledge including Learning Objectives, Assessment Approaches, Instructional Approaches, and How People Learn specific to any subject area.
Computational Thinking is a set of concepts and approaches that have been identified as ‘basic’ skills for solving programming and other computing problems, e.g. decomposition, logical reasoning, abstraction.
About the National Curriculum for teaching computing (in England): https://www.gov.uk/government/publications/national-curriculum-in-england-computing-programmes-of-study
Levels of abstraction (LOA) is the idea that when learning to program it is very important that people clearly develop a mental model of which level they are working at and that they can ‘transition’ easily between each level. These levels are the requirements, the design (including the algorithm), the code and the code executing.
Bloom’s Taxonomy is a hierarchy of verbs used to indicate the depth of learning that will be achieved for a learning objective, e.g. remembering, applying, evaluating.
Solo Taxonomy is a theory related to a hierarchy of experiences one has that leads to a greater depth of understanding. The levels include having never seen something before, having seen it once, having seen something several times, having had several experiences and having compared what is the same or different, starting to generalise and then generalising a concept.
Semantic waves is a theory related to learning, whereby one varies the density and gravity of meanings of concepts. This includes unpacking a term by using simpler vocabulary or using it in a specific familiar context and packing meaning by using more technical vocabulary and abstract scenarios.
Continuum of Scaffolding is the idea that there is a range of instructional approaches, each of which gives the learner more or less support. By fading this support, we help learners manage the cognitive load of learning. Examples of activities were copy-code, targetted tasks such as parsons problems and buggy tasks, modelling (or demonstrating) solutions, guided exploration, remixing and free-play (tinkering)!
PRIMM, stands for predict, run, investigate, modify and make. PRIMM is a sequence of teaching activities which draws together code reading, levels of abstraction, use modify create and the block model. In the first phase, learners read high- quality code and predict what it will do when they run it to develop logical reasoning. Next, carefully constructed questions lead learners through the block model to support the depth of understanding of a concept before modifying the code and then finally applying there learning to a new creative activity.
Code reading before writing is the idea that programmers must be able to accurately trace at least 50% of a program before they can write a similar program. There are two notions involved, firstly that they can transition to the execution level and predict exactly what the code will output (trace the code) and secondly that they can say what design the code is achieving, so work at the design or more functional level to summarise the code.
Use modify create is an instructional technique which advocates learners should first use high-quality example code, then modify it and only then move onto creating new code which uses the underlying concepts earlier exemplified.
The block model depicts learning programming as having two dimensions. Firstly the vertical axis is the granularity of code fragments being learned about from code elements through regions of interest to the whole program. The horizontal axis has an understanding of the syntax and the function of the code. The block model can be extended to include time learning about programming aspects and the idea that knowledge is ‘holey’.
Smelly code is the idea that some code is elegant and sweet smelling, and other code is poor quality and has bad smells. Associated with this is the idea of a grain of correctness and that any code that works is correct.
Data competency model. This is a model of the different aspects of working with data. It includes a life cycle and definitions.
Enacting concepts physically is the idea that we remember concepts better if we act them out with our bodies — for example, the variable as a box analogy.
Using stories or a real-life scenario is the idea that concepts are linked to memorable, meaningful stories to help anchor new ideas and build related knowledge, for example, using the locked-in syndrome to explore data representation.
Using analogies and metaphors is the idea that concepts are linked to existing understanding to help anchor new ideas and build related knowledge. For example, the variable is a box (with a photocopier and shredder) analogy.
Using trace tables to teach about program flow and data assignment.