Teaching children to program Python with the Pyland game

Teaching children to program Python with the Pyland game

Presented at PyCon UK 2014.

See the code at: https://github.com/pyland/pyland

This summer, a team of interns at the University of Cambridge Computer Lab have been working on a project to teach children to program in Python through a programming game. The primary target platform is the Raspberry Pi, though multi-platform ports are planned for the future. It is, of course, open source. The game consists of a number of challenges and puzzles which invite the user to apply programming techniques in order to progress. I will discuss the motivation for the game, give a demo, give some insight into its implementation, our plans for the future, and how you can get involved.

192080b948eec6cef8275daf1e7c11fc?s=128

Alex Bradbury

September 28, 2014
Tweet

Transcript

  1. Teaching children to program Python with the Pyland game Alex

    Bradbury @asbradbury @ProjectPyland
  2. Who is this guy? • Alex Bradbury, @asbradbury, asb@asbradbury.org •

    Researcher at University of Cambridge Computer Laboratory (compiler! many core architectures!) • Contributor to Raspberry Pi since the beginning • Co-author of Learning Python with Raspberry Pi • Writes the LLVM Weekly newsletter http://llvmweekly. org @llvmweekly • Co-founder of lowRISC, a project to create a mass produced open-source System-on-Chip http://lowrisc. org @lowRISC
  3. What is Pyland? • A programming game consisting of a

    set of challenges - solve the puzzles, get the treasure • Characters can be controlled with Python scripts • Featuring lovely 2D tile- based artwork • Summer intern project: Ben Catterall, Heidi Howard, Joshua Landau and Ashley Newson supervised by me and Robert Mullins
  4. Pyland motivation and aims • “To provide a fun and

    creative environment on the Raspberry Pi to aid children learning programming and more general Computer Science concepts.” • Provide a bridge between Scratch and Python (11-12 year olds?) • Be engaging, appealing, fun! • Give motivations for programming: demonstrate how programming can be used to achieve goals much faster
  5. Status • It was a 10 week project... • Runs

    great on the Raspberry Pi • Core engine features implemented and working well • Three ‘sample challenges’ • Not quite ready for exposure to the little ones • Support multiple characters, concurrent execution of multiple scripts
  6. DEMO!!!!1111

  7. A blast from the past

  8. • Code plus some architecture docs at github.com/pyland/pyland • MIT

    licensed code, Creative Commons Attribution-ShareAlike (CC-BY-SA) art assets • SDL2, OpenGL and OpenGL ES rendering • Python 3 (of course!) • Main engine: C++11. Each user script runs in a different Python thread • Python API calls push to the event queue to be processed by main event loop • Maps created using Tiled map editor, challenges implemented with some C++ code :/ Implementation details
  9. What’s next for Pyland? • Full set of challenges ◦

    This is *difficult* (thanks for your help, PyCon UK teacher attendees!) • Integrated text editor • Multi-platform support • Better error message feedback (see Khan Academy etc) • GUI prettification Further future: • Make your own levels in Python and share them • Collaborative programming over the network
  10. “Hey Alex, how can I help?” • Sponsorship (we’re looking

    for matched funding for art assets, more development work, ...) • Code (try it out, add new features, bugfix) • Challenge design (we have a bunch of art assets currently unused) • Test it out with kids (in a few months time) • Advice - how do you think we should take this further?
  11. Questions? Twitter: @ProjectPyland, @asbradbury Github: github.com/pyland/pyland Web: http://www.pyland.org Thanks to:

    our summer interns (Ben Catterall, Heidi Howard, Joshua Landau and Ashley Newson) and the Broadcom Foundation