32
#LGfL17 @cas_london_crc LGFL Conference 2017 CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression Lower River Room 10:30 to 11:00 Jane Waite [email protected] Whether you are new to teaching programming, or have a few years under your belt, come along and get a list of top tips for helping your learners develop independence, help you differentiate plans and give you ideas about progression. Based on research, and what works in class, as you do much of this already in other subjects, the objective is to give you confidence to try things out in programming lessons. Be prepared to take away lots of ideas, links to free cross curricular resources, activities, chants and actions to use in class straight away. Wifi “LGfL-2017” password: cloudtransform

LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

LGFL Conference 2017CAS - Pedagogy for programming.

Teaching tips for pupil independence, differentiation and progression

Lower River Room 10:30 to 11:00

Jane Waite [email protected]

Whether you are new to teaching programming, or have a few years under your belt, come along and get a list oftop tips for helping your learners develop independence, help you differentiate plans and give you ideas aboutprogression. Based on research, and what works in class, as you do much of this already in other subjects, theobjective is to give you confidence to try things out in programming lessons. Be prepared to take away lots ofideas, links to free cross curricular resources, activities, chants and actions to use in class straight away.

Wifi “LGfL-2017” password: cloudtransform

Page 2: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Page 3: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Copy this code(from an online system or

paper based script)3

Tinkering(no goal, no constraints)

7

Read this code and predict what it will do

5

Fix this buggy code8

Shared coding (like shared writing)

Live coding2

Change this code (remix)

1

Design and make a program (open goal)

6

Write the code for this design

4

Explore these 3 commands. What do

they do?9

Which is the most scaffolded task? Least scaffolded?

Page 4: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Copy code

Targeted tasks

.

Sharedcoding

Guided exploration

Project design

and code

Tinker

• Imitate• Innovate• InventVs• Remix

Review your SOW, where are most your lessons?

Compare to other subjects.

Page 5: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Content Knowledge

Pedagogical Knowledge

Pedagogical Content

Knowledge (PCK)

SequenceRepetition …

Adapted version of pedagogical content knowledge (PCK) (Shulman, 1986)

In order to teach programming

Page 6: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Rising StarsPhil Bagge

Mark Dorling

Program of study – progression grids

Pedagogical Content

Knowledge ScratchMaths

Page 7: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Copy code

Targeted tasks

.

Sharedcoding

Guided exploration

Project design

and code

Tinker

• Imitate• Innovate• InventVs• Remix

Pedagogical Content

Knowledge

Page 8: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Pedagogical Content

Knowledge

Research themes

Page 9: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Tips • Review your SOW. Look at using a blended

approach

• Read code before running it

• Design vs coding

• Where next

Copy code

Targeted tasks

.

Sharedcoding

Guided exploration

Project design

and code

Tinker

Page 10: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Reading code, predict what it will do

Pedagogical Content

Knowledge

Summarise vs Trace

Think first or click first?Read before run.Predict, run….

Page 11: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Reading code, predict what it will do

Cross curricula

ScratchMaths

Page 12: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Reading code, predict what it will do

Pedagogical Content

Knowledge

Addressing a misconception

Page 13: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Matching code1

2

3

4

5

1

2

3

4

5

A B

Pedagogical Content

Knowledge

ScratchMaths

Page 14: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Which is the best piece of code?

Why?

How could you make it even better?

What computational thinking are you doing?

Comparing code

Pedagogical Content

Knowledge

Page 15: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

Pizza Pickle Activity

• I can debug a program.

• I can say what a program will do.

• I can explain what the bug was and how I fixed it.

It makes a base, adds cheese, puts in the oven and starts cooking, but does not add the sauce!

The steps are in the wrong order!

It makes a base and puts it in the oven, but does not cook it

Page 16: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Write new snippets of code

ScratchMaths

Page 17: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Adapted from Lee et al 2011, Sentence 2017

"Mine""Not Mine"

Read

Predict

Design

Create

Modify

Page 18: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Tips • Review your SOW. Consider a blended

approach.

• Read code before running it

• Design vs coding

• Where next

Copy code

Targeted tasks

.

Sharedcoding

Guided exploration

Project design

and code

Tinker

Page 19: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Levels of abstraction1. Task

2. Design (including algorithms)

3. Code

4. Running the code

Page 20: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Bee-Bot 1,2,3 Activity

Working in pairs can you create an algorithm to draw the shape of a numeral?

I can write an algorithmI can program a Bee-Bot

Implement the algorithmCode the Bee-Bot

Write the algorithm using command cards

Test the algorithm using the Fakebot

www.barefootcas.org.uk

Create the algorithm

Page 21: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Programming is a 2 step processUse computational thinking to analyse the problem and design a solution, including creating an algorithm

Implement these ideas in a

programming language on a

computer: coding.

Programming

Page 22: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

AlgorithmTask (problem)

Code Running the code

Page 23: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

AlgorithmTask (problem)

Code Running the code

Page 24: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Tips • Review your SOW. Consider a blended

approach.

• Read code before running it

• Design vs coding

• Where next

Copy code

Targeted tasks

.

Sharedcoding

Guided exploration

Project design

and code

Tinker

Page 25: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Next Steps…

CAS QuickStart• a CPD toolkit to help deliver inspiring computing lessons in primary • www.quickstartcomputing.org

Barefoot• Free cross-curricular Lesson plans and self teach concepts• Free staff meeting workshops• http://barefootcas.org.uk

BCS Certificate• Online training and certification for computer science education• http://www.bcs.org/category/19012

Other

• Join CAS • Self review tool https://community.computingatschool.org.uk/resources/4681• #casinclude http://www.casinclude.org.uk/• Project Quantum https://community.computingatschool.org.uk/resources/4382

ScratchMaths• Year 5 and 6 planning materials for maths taught using Scratch – fantastic

pedagogy • https://www.ucl.ac.uk/ioe/research/projects/scratchmaths

Page 26: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Page 27: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

@LGfL facebook.com/LondonGridforLearning

Page 28: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

#1 Situate programming tasks in student interests

#2 Use Guided Exploration

#3 Model Algorithmic thinking (worked examples)

#4 Use a range of programming activities (remember rubrics)

# 5 Assign buggy tasks

# 6 Make students read code and make sense of the program

# 7 Make them plan before they program

# 8 Describe a solution in natural language or pseudocode (or diagrams JW)

#9 Use different representations of the solution state.

#10 Use a mix of collaborative and individual projects

#11 Use professional vocabulary

#12 Provide opportunities for show and tell

#13 Use a variety of formative and summative assessment (Grover, 2016)

Page 29: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Biggs et al 1982

Page 30: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

1. Use computational thinking

• Create algorithms (plan before you program)

• Remember to abstract, decompose, spot patterns, use logical reasoning

• Incorporate tinkering to learn a language then move to purposeful programming

• Include buggy tasks to teach tracing

• Teach collaboration e.g. pair programming

2. Don’t be scared of technical vocabulary (split vowel diagraph)

3. Start with unplugged then draw then program (concrete/iconic/abstract)

4. Situate in cross curricular work

5. Show your thinking - make mistakes, show alternative choices, model testing (worked examples/

scaffold tasks/ shared programming)

6. For projects, teach the process for progression of independence (closed to open tasks,

imitate/innovate/invent, use/modify/create)

7. For assessment, the code won’t tell you much – how did they get there? (KSU)

Don’t just copy code – be creative, solve problems!

Pedagogy for programming

Page 31: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

Ask pupils to a. read code and predict what it doesb. compare codec. fix buggy coded. create snippets of code that do the same thing as another snippete. modify (remix/ amend) codef. write code for a given design g. change a designh. make a new designi. evaluate other people's code and improve itj. make buggy codek. pair programl. Use automated code review products like Dr Scratch and review resultsm. Set up activities that have misconceptions in mindn. teach other pupilso. USE Unplugged activitiesp. Incorporate Computational Thinking

Page 32: LGFL Conference 2017 Wait… · LGFL Conference 2017. CAS - Pedagogy for programming. Teaching tips for pupil independence, differentiation and progression. Lower River Room 10:30

#LGfL17@cas_london_crc

• Armoni, M., Meerbaum-Salant, O., & Ben-Ari, M. (2015). From scratch to “real�? programming. ACM Transactions on Computing Education (TOCE), 14(4), 25.

• Ben-Ari, M. (1998). Constructivism in computer science education. Acm sigcse bulletin (Vol. 30, pp. 257–261). ACM.

• Ben-Ari, M. (2004). Situated learning in computer science education. Computer Science Education, 14(2), 85–100.

• Benton, L., Hoyles, C., & Noss, I. K. anRichard. (2016). Building mathematical knowledge with programming: insights from the ScratchMaths project. Constructionism.

• Benton, L., Hoyles, C., & Noss, I. K. anRichard. (2017). Bridging Primary Programming and Mathematics: some findings of design research in England. Digital Experiences in Mathematics Education.

• Bers, M., Flannery, L., Kazakoff, E. R., & Sullivan, A. (2014). Computational thinking and tinkering: Exploration of an early childhood robotics curriculum. Computers & Education, 72, 145–157.

• Brennan, K., & Resnick, M. (2012). New frameworks for studying and assessing the development of computational thinking. Proceedings of the 2012 annual meeting of the American Educational Research Association, Vancouver, Canada.

• Busjahn, T., & Schulte, C. (2013). The use of code reading in teaching programming. Proceedings of the 13th Koli Calling International Conference on Computing Education Research (pp. 3–11). ACM.

• Curzon, P., McOwan, P. W., Cutts, Q. I., & Bell, T. (2009). Enthusing & inspiring with reusable kinaesthetic activities. ACM SIGCSE Bulletin (Vol. 41, pp. 94–98). ACM.

• Cutts, Esper, S., Fecho, M., Foster, S., & Simon, B. (2012). The abstraction transition taxonomy: developing desired learning outcomes through the lens of situated cognition. Proceedings of the ninth annual international conference on International computing education research (pp. 63–70). ACM.

• Denner, J., & Werner, L. (2007). Computer programming in middle school: How pairs respond to challenges. Journal of Educational Computing Research, 37(2), 131–150.

• Du Boulay, B. (1986). Some difficulties of learning to program. Journal of Educational Computing Research, 2(1), 57–73.

• Falkner, K., Vivian, R., & Falkner, N. (2014). The Australian digital technologies curriculum: challenge and opportunity. Proceedings of the Sixteenth Australasian Computing Education Conference-Volume 148 (pp. 3–12). Australian Computer Society, Inc.

• Franklin, D., Hill, C., Dwyer, H. A., Hansen, A. K., Iveland, A., & Harlow, D. B. (2016). Initialization in Scratch: Seeking Knowledge Transfer. Proceedings of the 47th ACM Technical Symposium on Computing Science Education (pp. 217–222). ACM.

• Grover, Pea, & Cooper. (2015). Designing for deeper learning in a blended computer science course for middle school students. Computer Science Education, 25(2), 199–237.

• Grover, S., & Pea, R. (2013). Computational Thinking in K–12 A Review of the State of the Field. Educational Researcher, 42(1), 38–43. doi:10.3102/0013189X12463051

• Hansen, A., Hansen, E., Dwyer, H., Harlow, D., & Franklin, D. (2016). Differentiating for Diversity: Using Universal Design for Learning in Elementary Computer Science Education. Proceedings of the 47th ACM Technical Symposium on Computing Science Education (pp. 376–381). ACM.

• Kafai, Y. B., & Burke, Q. (2013). The social turn in K-12 programming: moving from computational thinking to computational participation. Proceeding of the 44th ACM technical symposium on computer science education (pp. 603–608). ACM.

• Kafai, Y. B., & Vasudevan, V. (2015). Constructionist Gaming Beyond the Screen: Middle School Students’ Crafting and Computing of Touchpads, Board Games, and Controllers. Proceedings of the Workshop in Primary and Secondary Computing Education on ZZZ (pp. 49–54). ACM.

• Lee, I., Martin, F., Denner, J., Coulter, B., Allan, W., Erickson, J., Malyn-Smith, J., et al. (2011). Computational thinking for youth in practice. Acm Inroads, 2(1), 32–37.

• Lister, R. (2011). Concrete and other neo-Piagetian forms of reasoning in the novice programmer. Proceedings of the Thirteenth Australasian Computing Education Conference-Volume 114 (pp. 9–18). Australian Computer Society, Inc.

• Lister, R. (2016). Toward a Developmental Epistemology of Computer Programming. Proceedings of the 11th Workshop in Primary and Secondary Computing Education (pp. 5–16). ACM.

• Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (2011). Habits of programming in scratch. Proceedings of the 16th annual joint conference on Innovation and technology in computer science education (pp. 168–172). ACM.

• Meerbaum-Salant, O., Armoni, M., & Ben-Ari, M. (2013). Learning computer science concepts with Scratch. Computer Science Education, 23(3), 239–264.

• Ruvalcaba, O., Werner, L., & Denner, J. (2016). Observations of Pair Programming: Variations in Collaboration Across Demographic Groups. Proceedings of the 47th ACM Technical Symposium on Computing Science Education (pp. 90–95). ACM.

• Schulte, C. (2008). Block Model: an educational model of program comprehension as a tool for a scholarly approach to teaching. Proceedings of the Fourth international Workshop on Computing Education Research (pp. 149–160). ACM.

• Shulman, L. S. (1986). Those who understand: Knowledge growth in teaching. Educational researcher, 15(2), 4–14.

• Statter, D., & Armoni, M. (2016). Teaching Abstract Thinking in Introduction to Computer Science for 7th Graders. Proceedings of the 11th Workshop in Primary and Secondary Computing Education (pp. 80–83). ACM.

• Teague, D., & Lister, R. (2014a). Programming: reading, writing and reversing. Proceedings of the 2014 conference on Innovation & technology in computer science education (pp. 285–290). ACM.

• Teague, D., & Lister, R. (2014b). Longitudinal think aloud study of a novice programmer. Proceedings of the Sixteenth Australasian Computing Education Conference-Volume 148 (pp. 41–50). Australian Computer Society, Inc.

• Waite, J., Curzon, P., Marsh, W., & Sentance, S. (2016). Abstraction and common classroom activities. Proceedings of the 11th Workshop in Primary and Secondary Computing Education (pp. 112–113). ACM.

• Werner, L., Denner, J., Campe, S., Ortiz, E., DeLay, D., Hartl, A., & Laursen, B. (2013). Pair programming for middle school students: does friendship influence academic outcomes? Proceeding of the 44th ACM technical symposium on Computer science education (pp. 421–426). ACM.