PRIMM for teaching programming Sue Sentance CAS London
- Slides: 30
PRIMM for teaching programming Sue Sentance CAS London Conference February 2018
Today … In this session I will demo and discuss the approach we have developed for teaching programming, drawing on computing research. The session will be a mixture of tasks and talking! Introduce yourself to the person next to you
In pairs discuss … What does this code do? PRIMM Draw on your post it
Moving on… Answer What does this code do? What did you draw?
And what about this one? What does this code do? What is different here? PRIMM Draw on your post it
And what about this one? … Answer What does this code do? What did you get?
In pairs answer these questions In what order does the computer run this program? The word square() is used three times – what is the difference between these? We can ask many more questions about this code – what the numbers mean, why the brackets might be empty, etc.
The PRIMM approach A suggested framework for working with beginners using text-based programming might be: • Predict – given a working program, what do you think it will do? (function) • Run – run it and test your prediction • Investigate – get into the nitty gritty. What does each line of code mean? (structure). Lots of activities here: trace, annotate, explain, talk about, identify parts, etc…. • Modify – edit the program to make it do different things (function) • Make – design a new program that uses the same nitty gritty but that solves a new problem (function).
PRIMM Examples Predict Run Investigate Modify Make Lesson 3
PRIMM Examples Predict Run Investigate Modify Make Lesson 8
PRIMM Examples Predict Run Keep starter programs on a shared drive Investigate Students should download, check what they do and compare with prediction Modify Make
PRIMM Examples Predict Run Investigate Modify Make Ask different types of questions
PRIMM Examples Predict Run Investigate Modify Make Variety is key – here we use a tracing exercise
PRIMM Examples Predict Run Investigate Modify Make
PRIMM Examples Predict Run Investigate Modify Make
PRIMM Examples Predict Run Investigate Modify Make Improve the pizza program so that it doesn’t print out “and X” at the end. You will have to add an “if” statement to do this. Modify the program to have a conversation with somebody about sport. An example is given below but you can add your own questions. Change your triangle function so that it uses a for loop Write a function pentagon() to create a pentagon (5 sides) with sides length 200 Write a function hexagon() to create a blue hexagon (6 sides) with sides length 50
PRIMM Examples Predict Run Investigate Modify Make
Research underlying PRIMM 1. Read before you write Work by many people but primarily involves Raymond Lister 2004 – large multi-institutional study shows better performance in programming by those able to trace confidently (Lister et al, 2004) 2011 - Lister described novices requiring 50% tracing code accuracy before they could independently write code with confidence
The Need for Greater Emphasis on Comprehension Creation Orientated • Easy for students to get stuck for long periods of time. • Copying examples can quickly go from eyes to fingers bypassing the brain. • Number of code examples is small- 2 -3 per lesson with large amount of time typing. Comprehension Orientated • Difficult for students to become completely stuck. • Examples have to be studied in order to successfully complete the activity • Number of code examples can be much larger 5 -10 depending on the type of activities chosen. Creating can be very motivating but only if the pupil feels they understand what they are doing
Research underlying PRIMM 2. The Block Model (Schulte, 2007) Distinction between Structure and Function Distinction between individual programming words, right up to the whole program – in four levels Text surface Execution model Program Function/Goals Identifying the individual program pieces The way in which actions in a piece of code are carried out What the function/ purpose of a piece of code is
The Full Block Model Macro Structure Overall structure How the algorithm works Relations References between separate regions of interest Sequence of related How subgoals are actions or data related to overall updates goals in context Blocks Regions of interestblocks like control structures or groups of adjacent statements Operation of a region of interest such as a block, subprogram or sequence Function of a region of interest- purpose of one subgoal in context Atoms Language elements Operation of a statement or expression Function of a statement or expression in context Text Surface Program Execution (data and control flow) Functions/goals of the program Structure The overall goal/purpose of the program in context Function
The Full Block Model Macro Structure Overall structure How the algorithm works Relations References between separate regions of interest Sequence of related How subgoals are actions or data related to overall updates goals in context Blocks Regions of interestblocks like control structures or groups of adjacent statements Operation of a region of interest such as a block, subprogram or sequence Function of a region of interest- purpose of one subgoal in context Atoms Language elements Operation of a statement or expression Function of a statement or expression in context Text Surface Program Execution (data and control flow) Functions/goals of the program Structure The overall goal/purpose of the program in context Function
Research underlying PRIMM 3. Use-Modify-Create • From Lee et al (2011) • Describes a pedagogical framework for teaching computing in the domains of robotics, game development and … • Students first use a program, then modify it, then create a new one • Good model but lacks an explicit focus on comprehension • Main contribution to PRIMM is to support students by providing a program that is “not mine” and so reduces the burden on students to create something that works straightaway. Use-Modify-Create
Use-modify-create adapted Not mine Predict - Run – Investigate Partly mine Modify All mine Make
Task 1 – 5 minutes Think of the next programming lesson you might be taking What might the students be able to Predict, download and Run at the beginning of the lesson – a PRIMM scenario Share with the people around you • Predict • Run • Investigate • Modify • Make
Task 2 – 5 minutes In pairs/groups choose one of the PRIMM scenarios that one of you suggested Think what tasks you would choose to: - Investigate - modify Feedback • Predict • Run • Investigate • Modify • Make
Our research We are currently in the middle of a small trial of PRIMM (our second) - 14 schools - 500 -1000 students - KS 3 only (year 8 & 9, second exposure to text-based programming) Future plans: KS 2 – 5, more schools and teachers, starting 2019
Research methodologies 1. Design-based research (DBR) An important methodology for understanding how, when, and why educational innovations work in practice DBR methods aim to uncover the relationships between educational theory, designed artefact, and practice DBR involves theory being put into practice in a naturalistic context and involves several iterations Teachers edit materials, give feedback and journal their experiences
Research methodologies PRIMM group Baseline test 10 PRIMM lessons Non-PRIMM lessons Control group Baseline test Final test The Baseline test assumes very little programming knowledge The post-trial test is to find out what students have learned about selection and iteration but does not use PRIMM type questions. It will include some questions from the Baseline test.
If you like PRIMM … Our materials will be available for KS 3 in July You can adopt this approach without any special materials Please let us know – as we are tracking teachers’ experiences with PRIMM Email us at primm@kcl. ac. uk with any questions about PRIMM or information about how you have been using it and we will showcase your work! Questions and feedback
- Sue sentance
- Primm model for programming
- Spanish sentance structure
- Primm python
- Components of system programming
- Linear vs integer programming
- Perbedaan linear programming dan integer programming
- Programing adalah
- Greedy programming vs dynamic programming
- Micro teaching definition
- Påbyggnader för flakfordon
- Inköpsprocessen steg för steg
- Anatomi organ reproduksi
- Egg för emanuel
- R formel
- Rutin för avvikelsehantering
- Klassificeringsstruktur för kommunala verksamheter
- Myndigheten för delaktighet
- Presentera för publik crossboss
- Kontinuitetshantering
- Tack för att ni lyssnade
- Mall debattartikel
- Tobinskatten för och nackdelar
- En lathund för arbete med kontinuitetshantering
- Atmosfr
- Vad är referatmarkeringar
- Vanlig celldelning
- Varför kallas perioden 1918-1939 för mellankrigstiden
- Lågenergihus nyproduktion
- Frger
- Arkimedes princip formel