$30 off During Our Annual Pro Sale. View Details »

Teaching children to program Python with the Pyland game

Alex Bradbury
September 28, 2014

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.

Alex Bradbury

September 28, 2014
Tweet

More Decks by Alex Bradbury

Other Decks in Programming

Transcript

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

    View Slide

  2. Who is this guy?
    ● Alex Bradbury, @asbradbury, [email protected]
    ● 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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  6. DEMO!!!!1111

    View Slide

  7. A blast from the past

    View Slide

  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

    View Slide

  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

    View Slide

  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?

    View Slide

  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

    View Slide