1 of 59

What we’re learning about teaching computing

2 July 2016

Miles Berry | @mberry

ITTE Conference

These slides: bit.ly/itte2016

2 of 59

3 of 59

What’s working in schools

  • It’s not about the code - think before you click
  • You don’t have to use a computer
  • It’s easier to read code than to write code
  • It’s easier to edit code that to start from a blank screen
  • Making things matters
  • Pair programming is powerful
  • Debugging helps grow mindsets
  • Go for depth not breadth
  • Look for interesting contexts
  • This is for everyone

Berry, 2016

4 of 59

Classroom strategies

Situate programming tasks in students’ interests

Use guided exploration

Model algorithmic thinking

Use a range of programming activities

Assign buggy tasks

Make students read code and make sense of the program

Make them plan before they program

Describe a problem solution in natural language or pseudocode

Use different representations of the solution state

Use a mix of collaborative and individual projects

Use professional vocabulary

Provide opportunities to show and tell

Use a variety of formative and summative assessment

Grover, 2016

5 of 59

CPD matters

We know that teachers learn best from other professionals and that an ‘open classroom’ culture is vital: having the opportunity to plan, prepare, reflect and teach with other teachers... [and yet]�two-thirds of all professional development is ‘passive learning’ – sitting and listening to a presentation.

6 of 59

7 of 59

8 of 59

9 of 59

Communities of practice

10 of 59

Unplugged

11 of 59

Do you need computers?

Computer Science is no more about computers than astronomy is about telescopes.

Dijkstra (attrib)

12 of 59

13 of 59

Sandwich Bot

14 of 59

15 of 59

CS unplugged - another view

We examined the effect of the CS Unplugged activities on middle-school students’ ideas about CS and their desire to consider and study it in high school. The results indicate that following the activities the ideas of the students on what CS is about were partially improved, but their desire to study CS lessened.

We found that only some of the objectives were addressed in the activities, that the activities do not engage with the students’ prior knowledge and that most of the activities are not explicitly linked to central concepts in CS

16 of 59

Collaboration

17 of 59

Pair programming

programmers must understand the benefits of intercommunication outweigh their preferences for working alone and undisturbed.

they must confidently share their work, accepting instruction and suggestions for improvement in order to improve their own skills and the product at hand.

they must display humility in understanding they are not infallible and their partner has the ability to make improvements in what they do.

a pair programmer must accept ownership of his or her partner’s work and, therefore, be willing to constructively express criticism and suggested improvements.

Williams and Kessler, 2000

18 of 59

19 of 59

20 of 59

21 of 59

22 of 59

Project Quantum

23 of 59

Computational Thinking

24 of 59

Computing

A high-quality computing education equips pupils to use computational thinking and creativity to understand and change the world.

25 of 59

CT progression in the NC

KS1: understand what algorithms are ... use logical reasoning

KS2: solve problems by decomposing them into smaller parts … use logical reasoning … algorithms

KS3: design, use and evaluate computational abstractions … understand several key algorithms that reflect computational thinking … use logical reasoning … understand simple Boolean logic

KS4: develop and apply their analytic, problem-solving, design, and computational thinking skills

26 of 59

Programming develops thinking

I began to see how children who had learned to program computers could use very concrete computer models to think about thinking and to learn about learning and in doing so, enhance their powers as psychologists and as epistemologists.

27 of 59

But teach problem solving too

We find that the entry level of Logo does not present conceptual problems for the school-aged child... With accompanying instruction in thinking skills, developments in planning skill may in fact be achieved.

28 of 59

Computational thinking

Computational Thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent

Cuny, Snyder, Wing (np) in Wing 2010

29 of 59

Brennan and Resnick

  • computational concepts (the concepts designers employ as they program),
  • computational practices (the practices designers develop as they program), and
  • computational perspectives (the perspectives designers form about the world around them and about themselves).

30 of 59

31 of 59

32 of 59

33 of 59

The problem of knowledge transfer

The challenge to computational thinking is the problem of knowledge transfer. Applying computing ideas to facilitate computing work in other disciplines is clearly achievable. Applying computing ideas in daily life is less likely. There has not been a study since Wing’s 2006 paper that has successfully demonstrated that students in a CS class transferred knowledge from that class into their daily lives.

Guzdial, 2016

34 of 59

Computational doing

However there is a trend in CAS at the moment which is to denigrate programming in favour of lofty thinking skills. I think this is really wrong headed and unhelpful. Would computational thinking really be making a breakthrough into the classrooms of the world if it wasn’t useful in computational doing, designing and coding the software/hardware/systems that we all use? I think not.

We are also a community of teachers who are struggling to improve our own knowledge and many of us are learning to programme. To hear our efforts regularly denigrated and de-valued is soul destroying.

We can rightly value computational thinking without degrading computational doing.

Bagge, 2015

35 of 59

Scaffolding

36 of 59

Codecademy, code.org

37 of 59

38 of 59

Learning edge momentum

Any successful learning makes it somewhat easier to acquire further related concepts from the domain, and unsuccessful learning makes it somewhat harder.

Early success or failure to acquire concepts can become self-reinforcing, creating momentum towards extreme outcomes.

The concepts involved in a programming language are unusually tightly integrated, thus resulting in a stronger than average LEM effect.

39 of 59

40 of 59

Notional machines

Programming misconceptions studies, theories of mental models and constructivism, research on learners’ ways of experiencing programming, and the theory of threshold concepts all lend support to the idea that beginner programmers need to learn about one or more notional machines. �

41 of 59

Reasoning about code

KS1

use logical reasoning to predict the behaviour of simple programs

KS2

use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs

KS3

evaluate computational abstractions that model the state and behaviour of real-world problems and physical systems

understand several key algorithms that reflect computational thinking; use logical reasoning to compare the utility of alternative algorithms for the same problem

42 of 59

43 of 59

On the utility of flowcharts

No statistically significant difference between flowchart and nonflowchart groups has been shown, thereby calling into question the utility of detailed flowcharting.

44 of 59

Reading code comes before writing code

Many first-year programming students cannot program at the conclusion of their introductory courses. While a popular explanation for that inability is that students cannot problem-solv … this working group has established that many students lack knowledge and skills that are a precursor to problem-solving. These missing elements relate more to the ability of students to read code than to write it. Many of the students manifested a fragile ability to systematically analyze a short piece of code.

45 of 59

It’s easier to mod code that to start from scratch

46 of 59

Legitimate peripheral participation

When students develop toward being expert professionals, they frequently engage in a process that educators call legitimate peripheral participation (LPP)... These legitimate peripheral tasks serve as a stepping stone into the process, like writing documentation or running subjects in usability testing.

Guzdial 2010, qv Lave and Wenger 1991

47 of 59

Constructionism

Learning as “building knowledge structures” … happens especially felicitously in a context where the learner is consciously engaged in constructing a public entity, whether it’s a sand castle on the beach or a theory of the universe.

Papert, 1991

48 of 59

Context

49 of 59

50 of 59

51 of 59

52 of 59

53 of 59

More research is needed...

(says university lecturer)

54 of 59

Meta questions

Do the findings of research into effective teaching apply to computing education?

Do the findings of research into undergraduate CS education apply in schools?

55 of 59

Classroom investigations

How can students progress from learning visual programming to textual programming?

Do unplugged approaches for teaching X help to secure understanding?

Does pair programming help students to get better at debugging their programs?

Does programming with devices (eg Raspberry Pi, Arduino, Gadgeteer) increase motivation to learn?

Do activities involving tracing and labelling code enhance debugging skills for some of my students?

What benefits are there to copying code and getting it to work in terms of learning to program?

How do different questioning techniques enrich understanding of X?

What are the main misconceptions that students have when struggling to understand X?

Does flowcharting help with algorithmic thinking?

Sentance, 2015

56 of 59

57 of 59

Some CAS research questions

  • How should we teach programming to children?
  • How effective are “unplugged” approaches to learning computer science?
  • How should we assess computing?
  • Does an early education in computing improve outcomes in Maths or English?
  • How can computational thinking skills enrich learning in maths, science, and other subjects?
  • In what order are computational concepts best learned?
  • Women are massively under-represented in computing. What practical strategies help?

58 of 59

Royal Society: Computing Education

The curriculum is in its infancy and in the next few years students will become more and more proficient in computing, meaning the curriculum, its assessment and the resources available will need to evolve.

The Society wants to convene a consortium of educational partners, science organisations and businesses willing and able to take forward a strategic plan to support computing education in schools.

The first stage of the project will pull together evidence-based proposals for the programmes and policies that need to be in place to make the school computing curriculum flourish.

This will involve a six-month research stage to examine computing teaching in schools today and establish priority objectives for the second stage. A report will be published by early 2017.

Royal Society, 2016, qv Royal Society, 2012

59 of 59

Questions?

@mberry

m.berry@roehampton.ac.uk

milesberry.net

These slides: bit.ly/itte2016