A computer programmer’s approach to learning music

Learning an instrument is hard. For example, to master the flute (which I’ve been learning for a couple of years and am way off mastering) you need to perfect: melody, rhythm, tone, dynamics (quiet and loud), articulation (slurred, staccato), not to mention scales, arpegios, …

Read more...

Why Algebra?

Algebra is study of mathematical symbols (you might have seen: x, y, θ) and the rules for manipulating them. We most often use algebra to express relatioships between things (the symbols) and numbers.

But do we really need algebra? Can we just get along without it? Those symbols and all those rules are really confusing at first, is it worth the effort to learn them?

Read more...

How to learn to program

In my last post I shared some tutorials for Making Classic Games in Python, these have proven to very popular in our code club, helping kids learn Python with Pygame Zero.

A key part of successful learning is the learner’s motivation. If this is strong then they will be focussed and determined to make progress, even when they hit challenges or get frustrated (which is very common when learning to code).

Read more...

Making Classic Games in Python

Python is a great programming language to learn however there’s no denying it’s a step up from block-based programming languages like Scratch.

When teaching Python it’s a big help if you can provide a hook to get new Python programmers interested. You will find that classic games like Candy Crush and Flappy Bird provide a great motivation for students.

../../../_images/flappy_bird.png

Flappy Bird in Pygame Zero

Read more...

Team Retrospective Principles

A retrospective makes time for the team to reflect on recent activities and identify actions to improve their performance.

There are many ways to run a retrospective, and many resources to help you to discover and practice new methods. So how do you pick which methods to use?

Read more...

Pixel perfect collision detection with PygameZero

PygameZero is a great framework to help young coders step up from block-based coding in Scratch. However it doesn’t have all the features of Scratch: one notable omission is pixel perfect collision detection.

As the name suggests, PygameZero is based on Pygame and this does have many collision detection methods, so can we use Pygame features to improve PygameZero?

Read more...

Functional programming at code clubs

I’ve been mentoring at Brighton Coder Dojo and Code Clubs for a few years now and I’m always on the lookout for new things to try that might broaden the mind, offer alternative approaches and get students thinking differently.

So what about functional programming? How would that work at a code club with 6-16 year olds? Is it even possible in the programming environment we use most often: MIT Scratch?

Read more...

A safe place to store photos at home

I’ve been taking photos for years and now have many thousands, in fact too many to store on my laptop. My family take photos too, and we all like to share them.

None of us are particularly happy with Facebook or other online photo sharing sites, and anyway most of these are geared towards individual photographers, not a family of photo sharers.

As I’m a programmer I like to know how things work and strongly favour a solution where I can see and test the photo and metadata storage, so that I know that everything is safe. (And OK, yes, as a programmer I’m much more motivated to create my own solution rather than use an existing one!)

Read more...

An education manifesto

I’ve been involved in home school learning and education for over 5 years, enough time to start to make sense of my values and principles – what I stand for when guiding the learning of others.

So I’ve created a first draft education manifesto. I hope this will start a conversation about how we educators go about our work and how we support people on their learning journey.

Read more...