Slide 1

Slide 1 text

Teaching children to program Python with the Pyland game Alex Bradbury @asbradbury @ProjectPyland

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

DEMO!!!!1111

Slide 7

Slide 7 text

A blast from the past

Slide 8

Slide 8 text

● 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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

“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?

Slide 11

Slide 11 text

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