CAS Conference 2017 Diving deep into primary programming - design for quality and independence 11:10 to 11:50 Jane Waite [email protected] @cas_london_crc #casconf17 Sharing research for classroom practise @cas_london_crc #casconf17 Activity 1. What would you call these? A C B D @cas_london_crc #casconf17 Task (problem) Code Design/ Algorithm Running the code @cas_london_crc #casconf17 Levels of abstraction 1. Task 2. Design (including algorithms) 3. Code 4. Running the code (Waite, Curzon, Sentence and Marsh, 2011) What % of your SOW are at each level? @cas_london_crc #casconf17 Design can be used as • Aid memoire – improve independence – tick/what next? • Completeness check – improve cohesion/quality • Contract for pair programming • Annotation - scaffold implementation of code • Self assessment - growth mindset • To think about ‘do-ability’ • Reminder of design patterns used • To teach abstraction! For the teacher • To know what to teach next • Differentiation • Assessment @cas_london_crc #casconf17 How might a simple sequence be represented by pupils as an algorithm /design? 1 Norway Longboat sprite move say 2 3 say ??? Map background @cas_london_crc #casconf17 4 Denmark Longboat sprite Labelled diagram & Storyboard Background with stars and moon Santa sprite go to Tree sprite go to Snowman sprite go to Mouse sprite go to Move ??? say move say say say @cas_london_crc #casconf17 Move Remixing to teach repetition forever Stars twinkle all the time repeat 4 4 times across repeat until Until space bar clicked @cas_london_crc #casconf17 Activity 2 – annotate a design @cas_london_crc #casconf17 Concerns about design @cas_london_crc #casconf17 Short 15 minutes survey on how you teach programming! Please help with research on primary programming! https://goo.gl/forms/1drFEXGk0oKiXUMo1 https://tinyurl.com/design-JW @cas_london_crc #casconf17 Which is the most scaffolded task? Least scaffolded? Change this code (remix) 1 Shared coding (like shared writing) Live coding 2 Copy this code (from an online system or paper based script) 3 Write the code for this design 4 Read this code and predict what it will do 5 Design and make a program (open goal) 6 Fix this buggy code 8 Explore these 3 commands. (Guided discovery) 9 Tinkering (no goal, no constraints) 7 @cas_london_crc #casconf17 Handout 3 Scaffolding Copy code Targeted tasks Shared Coding Guided exploration Project design and code • Imitate • Innovate • Invent Vs • Remix What % of your SOW are in each section? Compare to other subjects. @cas_london_crc #casconf17 Tinker Tips for independence • Use a blended approach Copy code Targete d tasks Shared coding . • Introduce design and annotate! Please complete my survey https://goo.gl/forms/1drFEXGk0oKiXUMo1 https://tinyurl.com/design-JW @cas_london_crc #casconf17 Guided exploration Project design and code Tinker Use modify create learning progression (Lee et al., 2011) @cas_london_crc #casconf17 Research themes Pedagogical Content Knowledge @cas_london_crc #casconf17 • 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–7 • 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. • Sebrabce 2017 https://blogs.kcl.ac.uk/cser/2017/02/20/exploring-pedagogies-for-teaching-programming-in-school/ @cas_london_crc #casconf17 Would you like ALL your Year 6 pupils to be able to independently and confidently create a Scratch project that meets the task "Make a resource for year 2 to teach them about rainforests", where each pupil creates high quality code, that is not copied? In this session we will look closely at the role of design and how annotated storyboards, mind maps, labelled diagrams can help pupils become more independent to tackle open ended creative projects. We will look at international research, example projects, unpick progression, compare approaches in other subjects to figure out how we can scaffold learning about 'how' to create projects and enable pupils build the experience they need to do it themselves. Jane Waite [email protected] @cas_london_crc #casconf17 Pedagogy for programming 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! @cas_london_crc #casconf17 In order to teach primary programming Pedagogical Content Knowledge Content Knowledge (PCK) Pedagogical Knowledge Sequence Repetition … Adapted version of pedagogical content knowledge (PCK) (Shulman, 1986) @cas_london_crc #casconf17
© Copyright 2026 Paperzz