Using GitHub and Koding to manage A2 Computing projects

One of the key parts of the A-level computing course is the completion of a piece of extended coursework. With a group of students working on a variety of devices it can be hard to keep track of the state of the coding completed by each student.

For a long time we have used Google Docs as a means of supervising the documentation of the project and this has worked very well. Both students and teachers have found the ability to comment on each others work and to gently nudge completion as an effective way of keeping the documentation moving forwards and we have been on the look out for a means of applying similar ideas to the coding.

Having tried out a few ideas we have settled on using Koding. We have subscribed one account so that we can have an always on virtual machine and then shared this VM out to teachers and students. The other teachers and students only need to create a free account (even better if they use the referral link from the first paid for account as this then increased your storage!).

Koding means that students can edit in a browser (anytime/anywhere) and also see their code working. It also means that they can comment and look at the other projects which helps everybody move forwards.

We have also setup a GitHub account for the school and setup a repository for the A2 projects which means that we can pull code over to the Koding VM (and push back regularly as the students make changes). This just gives us another backup of the code and also gets the students use to the idea of using GitHub for software development.

Will put up another post as we find out how this works but so far so good.

BrainPads play Binary Sunset

Having worked with the BrainPad for a few lessons we wanted to explore how devices could be synchronised together.

First attempt is making use of the LED and the light sensor…..

No real communication protocol yet (this is being thought about by the students) but more of a ‘start playing when I see the light’.

Students are now trying to generate a 10 part piece to be synchronised by the switching off of the lab lights……

Using JES to manipulate sounds and images

One of the key topics for both GCSE and A-level Computing is data representation. Along with the usual number work (binary!) we are expected to look at how sounds and images are represented on a computer.

Whilst the theory behind this is not too complex – most students can appreciate what a pixel is and a sound sample – how it all hangs together to actually make an image and sound could do with being explored a bit further.

This year we have found JES (Jython environment for students) which provides a simple interface and functions that allow you to work with both images and sounds using Python code.

With a few lines of code you can pick an image file and then start to manipulate it pixel by pixel. It is quite easy to convert to greyscale or morph off into different colours.

jes4

A challenge was to take an original image of one caterpillar and then, with the same image size, turn it into a four smaller images.

jes5

It was great to come into a lesson and find one student having created a ‘musical expression of an image’. Basically his Python code looks at the pixel data of the image and represents the pixel data as a note. It was quite interesting to see how different images responded to his code and you could begin to pick up patterns and therefore relate how parts of the image created different sounds. Has the Mona Lisa ever been so musical?

Working with SVG graphics

Vector graphics has for a long time been part of the specification for both GCSE and A-level computing yet we have struggled to find an easy solution to allowing students to really manipulate the language behind the graphics and then visualise the image.

Having found a reference to SVG graphics in Kevin Bond’s new textbook for the A-level computing course we set out on exploring this area and seeing what our students could come up with in a 50 minute lesson.

With a few SVG tags and primitives like rectangle, line and circle you can quickly build up an image and also focus on the idea of a vector image being made up of objects and properties. You can even zoom in and look at how the bowser responds by re-drawing the image – no pixellation with these.

We also did an experiment to look at relative file sizes using the house image below made from SVG and then taking a screen capture and saving in a variety of formats.

SVG file – 1.6 KB – can compress down to 0.4 KB
PNG file – 4.5 KB
JPG file – 17 KB
GIF file – 29 KB

So we also had a discussion over file format and the idea of compression both lossless and lossy.

demo_svg1
A house by T Varnish.

test
Face by J Langley