Using CodeBug tethered via USB on a MacBook

It has been a few weeks since our CodeBugs arrived here in Milan and after playing around with some of the sample programs and thinking about their features I have decided to use these with next session’s Year 10 students as an introduction to the iGCSE Computer Science course in September.

While they worked really well with the Raspberry Pi I struggled to get the CodeBugs working with IDLE on the MacBook. Installing packages via Terminal updated the Python 2.7 install that comes with the OS and – for me anyway – Homebrew complicated what should have been a very easy process. In Visual Studio if you wanted to use a module library you simply added it to the project and IDLE does not have this function.

I found PyCharm today – an IDE for Python that allows me to add the codebug_tether module (and any others I need) with the minimum of fuss. Now my CodeBug can be programmed while connected via USB to my MacBook! As an added bonus I learned more about Virtual Environments.


To make it easier for my students to get going with their CodeBugs in September I created a 20-step guide linked here. It’s CC0 so please feel free to use and adapt as required. If you find any mistakes or it just doesn’t work for you in the same way please let me know.

Inspiration from “The ON House” Milano #thisismyclassroom

I was lucky enough to find out about this house through a parent of the school and visited it today. The ON House has been created by Simontech to demonstrate the various home and office automation products that they sell and how they can be integrated together via an overarching web app.

As you might remember from previous blog posts I am gathering inspiration, student wish lists and researching classroom design in order to develop a classroom with a clear Computer Science identity and purpose. In short I want a classroom that can be customised to suit particular learning and teaching tasks but also become integrated into the lessons I teach.

I plan to take some of my students there so they can also gain an insight into what is possible with current technology. What I particularly liked about The ON House was that the technology was not obvious or overwhelming however the integration of the technology made the house more accessible and customisable.

During the visit I thought about how some of the technology could be integrated into a Computer Science classroom. For example the ambient lighting presets could be used to indicate and suit different learning activities. Programmable colour changing LEDs in the ceiling or floor could also be accessed directly by students in their programming lessons. I think there would have to be a way of allowing access to these lights during lesson so that my classroom did not become a disco when a student got home!

The ability to change the machines that were displayed on the short throw projector via an app would also be very useful in class. At my previous school a custom SMART panel was used to switch sources which meant that any changes required software updates from the company. It also meant that if the panel broke – it cost a lot to fix it and rendered the AV unit useless. Multi-platform applications that perform the same function as a custom panel would, I think, allow changes in the future to be made much more easily. Also replacing an android tablet or iPad mini would be much cheaper than a custom SMART panel.

Simontech also explained that access levels can be set within their system and I think that this could be fantastic for lesson preparation. If you have the lighting, AV, etc. set appropriately for a particular task or topic you can quickly save this as a preset at the end of a lesson and recall that preset the next time the class comes in leaving you free to start the lesson without fiddling with the technology.

There were other interesting components built into The ON House including electric privacy glass. On returning to school I trawled YouTube for a while and found a great short video showing this in action.

In the video you can see that when the glass is set to white you can project on the surface and, if you think it’s useful, add a touch screen too. This could allow you to open out a classroom with few windows so that more natural light was let in and also function as a display space.

Another aspect they discussed was security. In their kitchen demo they showed that their app could prevent doors into other rooms as well as individual cupboards and drawers from opening depending on the preset.

I have linked a few videos and articles about the ON house below so you can find out more about it. If you are in the Milan area and would like to visit it you can send an email to or phone +39 02 40043548.

Using @EdPuzzle for the first time #flipclass #flipchat

EdPuzzle is not a new site to me, however I’ve never had the time to sit down and investigate it properly. I got the opportunity today as the rain made an overdue visit to Milan.

My Year 10 Computer Science students are revisiting the Python language and I gauged their knowledge during class last week. As they all selected similar problems to solve I decided to share my solutions via video and take advantage of the embedded questioning offered by EdPuzzle.

I had intended to link to the finished EdPuzzle from a Google Form and then mark student submissions using Flubaroo however I was happy to see that EdPuzzle linked to Google Classroom and recorded student results and progress for me.

I’ve attached a quick video walkthrough of one of the tasks below, in case you want to see how it works. I think that next time I’ll make one video so that students do not have two tasks to complete but would appreciate any other feedback or suggestions!

Trying to create a student understanding tracking system using Google Forms and Sites #gafe

I used (and sorely miss) Geddit. It was very useful in gauging student understanding during a lesson and was a low-cost, high-gain tracking tool that I could refer to after lessons, before end of topic tests and during parents evenings (if needed).

I decided to try and create something along a similar vein, but using Google Forms and Sites. The advantage of this is that I can restrict access to those within the school, automatically use GAFE login details, and – in the future – customise it with more complex Google Apps Scripts so that students can be emailed and Google Charts automatically generated into a dashboard (I’m thinking by student or class at the moment).

My late-night sketch was simple enough – the teacher could choose a class and enter a question into a teacher-only Google Form. This would then be parsed by a Google Script to somehow display the most recently entered class and question in or above the student Google Form. When I’m generating reports into the dashboard I can use the timestamps from each Google Form response spreadsheet to correlate which question the student response relates to.

Anyway this was easy enough to prototype:

Teacher question control form
Screen Shot 2016-01-04 at 01.48.33

Student response form
Screen Shot 2016-01-04 at 01.49.05

The problem however was getting the most recent teacher question to appear in the Google Form. I decided to create a new Google Site and see if I could publish a range of the teacher Google Sheet as a webpage. I thought that this would be the easiest way to display the current question.

First I used a Google Sheet query in a new tab (called Question Feed) to reverse the order of the Google Form submissions:

=query('Form responses 1'!A1:Z, "select * order by A desc", 1)

I then created another Google Sheet tab (called Web Page) to create the view to be embedded in the Google Site:

Screen Shot 2016-01-04 at 01.56.53

I managed to publish this tab as a web page and then went about embedding it into my Google Site. All worked great! However Google Sheets only seem to refresh every 5 minutes so I investigated a way of doing something similar using a Google Script.

Using code similar to the following I was able to change the page title of the Google Site’s current (only) page to the most recent question submitted:

function displayQuestion() {
var ss = SpreadsheetApp.openById("put your Google Sheet ID here");
var sheet = ss.getSheetByName('Web Page'); // or whatever is the name of the sheet
var range = sheet.getRange(2,1); // Get the question
var question = range.getValue();
var range = sheet.getRange(1,1); // Get the class
var data = range.getValue() + ": " + question; // concatenate
var site = SitesApp.getSiteByUrl("put your Google Site URL here");
var page = site.getChildren()[0];
page.setTitle(data); // Puts current question from SS into page title section


I added the script to the Google Site and set a trigger to run the function every minute.

The student view of the system currently looks like this:

Screen Shot 2016-01-04 at 02.03.25

Yes there are UX issues – such as the page refresh to get a new question, or the need to click on “Submit another response” to change the teacher question or add another student response, however I think I’m happy with it as a starting point.

Please feel free to use the above code if it is useful to you. I’m going to try it out with a few classes in the next few weeks and see if I can use some real data to create reports from. Any comments on how I can improve the system would also be greatly appreciated.

Vector Graphics using Google Drawings

I’ve been experimenting with Google Drawings over the past few weeks to see what is possible in the app. I’ve been impressed with the range of features this simple application has and, while it won’t replace Illustrator any time soon as your one-stop vector graphic package, it is fantastic for introducing students to the idea of vector graphics, layering objects and editing points on a path.

I’ve included two YouTube videos I created for my classes for reference. In the first the students are shown how to create a vector super hero (and then challenged to create their own). In the latest video students are shown how to create a complex vector shape using the polyline tool. The shape is then used to create their own interpretation of a stylish book cover that only uses a small number of colours and shapes.

Any comments on either video much appreciated. Do you teach vector graphics to your students? Do you jump straight to the industry standard packages or keep it simple? I’d love to hear from you in the comments…

Storage terms iBook (#Nat5, #iGCSE, #CompSci) #cc0


I had a few hours to fill on my flight this morning so decided to finish off a few iBooks which I’d been experimenting with this session. The one on storage terms is short and sweet, with video examples of conversion between bits, bytes, kilobytes, megabytes, gigabytes, terabytes and petabytes. There are also a few challenges (and answers) too.

Not on the iBooks store but you can download here

Feedback gratefully appreciated.

CC0 means use it as you like!

Say hello to almost universal custom fonts on your iPad #ipaded


This might be considered by some as fun or frivolous, but I think custom fonts are an important ingredient in helping you deliver a more authentic learning experience for your students in the iPad classroom.

Perhaps you could even take this a stage further and create a custom font that helps children to read and write , like Castledown School did earlier this year.

I used iFontMaker  and sketched out the characters in my handwriting. The stylus was handy for this, but to be honest you could just as easily create the letters with a finger.

Once complete I chose to upload to and almost instantly received an email with download instructions and a PIN code. The website itself offers an option to install on iOS and, on clicking this, you are able to install the app as a font profile on your iPad.

The font is accessible from a number of apps including:

  • Explain everything
  • Final argument
  • Pages
  • VideoScribe
  • Google docs, sheets and slides






I was sad to note that these fonts were not available using the following apps:

  • Notability
  • Book creator
  • Docs2go

Perhaps there is another piece to this puzzle. If you can help, let me know!

If you have six more minutes why not try this font-related quiz from the BBC?

iTunesU Course Creator #RGCdevicetrial

The end of term approaches and this means that the coursework and project submissions are pouring in and the focus of learning and teaching turns to final exam preparation. The iPad has been passed on to a colleague (hope you are enjoying it Wendy!) and I now have a brief opportunity to try out the Macbook Air.

I have been so impressed by the iPad in recent weeks that I want to try and replicate the functionality on a laptop to see if I have just been dazzled by technology. It wasn’t just functionality I was impressed with, but I feel that if I can augment my learning and teaching to the same degree as easily on another device it will make the final discussion on device choice much more balanced.

One of the things I found out about at a Apple Store event in Aberdeen during February was iTunesU. To be honest I’ve not found iTunesU that easy to navigate and usually find a keyword search turns up a lot of university level courses and nothing suitable for secondary students. When I heard that you can create your own course I  assumed that it was possible with the iPad. Unfortunately not as it only appears to work with Safari browser for Windows or Mac at present.

After reading this blog post from TNW I recorded a quick screencast using Quicktime Player on the Macbook and edited it slightly using iMovie before uploading to YouTube. There were a few issues with getting the movie from Quicktime Player into iMovie which I’ll put down to user inexperience for the moment (update, it was!)

There are a few things I’d like to see in future (or discover if they already exist!):

1. Importing of multiple web links embedded in a YouTube playlist

2. Importing of a document that contains the outline of a course e.g. page structure and content and turns weblinks in the document into resources in the Materials section.

3. A preview course feature within the browser!

Divide and conquer Twitter

I’ve used Twitter now for over 3 years (a late starter, making up for that now) but in all that time have never made use of its list functionality. I hate the way Twitter forces you to click , click, click and click again to add a single user to a list and then wait for you to close a window before continuing with the next user… and the next… so, up until now, I’ve made use of hashtags and browsing the main timeline. Not very efficient.

In contrast I really like the way Google+ allows you to build your circles without fuss using drag and drop. I hoped someone out there had created something for Twitter lists that worked in the same way, searched Google for a while and found Icotile (, free).


As you can see the main part of the interface is made up of small tiled images of your Twitter contacts. On the left hand side of the screen are the lists you have created and on the right is the biography of currently selected Twitter user (very handy!). To add a contact to a group simply drag the image on to the list.

It’s not perfect – I’d love to be able to select multiple contacts before adding them to the list for example. You should also ensure you have created all the lists before starting to use Icotile to avoid problems when adding (it doesn’t show any error messages should a contact already be in a list or cannot be added to one). I also think that being able to filter out contacts already added to a list would be very useful, especially when you have over 1500 to sift through! However Icotile has allowed me to begin to organise my Twitter streams more efficiently and allow me to customise my Chrome TweetDeck app (free) to show selected lists rather than the timeline and a series of hashtag searches.


Can anyone suggest alternative ways of organising your Twitter lists?

Using Excel, Macros and @Evernote for Course Planning

I use Evernote a lot. I store interesting tweets, grab sections of web pages for later, have a form of GTD in there (The Secret Weapon) to keep me focussed. I took part in the 30-day paperless challenge in September and had a lot of fun seeing what was possible. I’ve even started to get my colleagues interested in using Evernote. And last month I was very happy to discover my work opened up access to the web version of Evernote.

I’ve been thinking about this for a while now: There has been a distinct disconnect in my workflow. Found an interesting link? Send it to Evernote. Got a unit to develop? Plan it up in Evernote and assign a task in my GTD stack. Plan my weekly lessons? A paper desktop planner with scribbled notes on which resources I need to have ready?! It’s really daft but, up until recently, it was the most accessible way to work. I’ve even found myself taking pictures of my planner pages and sending them to Evernote so I can check I’m ready for the coming week!

Two weeks ago I attempted to set up an electronic planner in Evernote from my workplace. The web version didn’t really like being pasted into from a Word document and screwed up all the formatting and numbering so I figured I needed a few hours investigation time and a desktop version of Evernote to make progress. This weekend I made time.

Firstly I wanted to be able to create a template with the correct number of rows for each particular class for each term, so I created a simple macro that took values (class name, start date, end date, number of periods per week) and used them to populate a new Excel worksheet. Here’s the VBA if you want to use it yourself:

Sub btnCreateTermPlanner()
Dim AddSheetQuestion As Variant
Dim StartDate As String
Dim EndDate As String
Dim noPeriods As Integer
Dim noPPW As Integer

StartDate = Worksheets(“Start”).Cells(1, 2)
EndDate = Worksheets(“Start”).Cells(2, 2)
noPeriods = Worksheets(“Start”).Cells(5, 2)
noPPW = Worksheets(“Start”).Cells(4, 2)

AddSheetQuestion = Application.InputBox(“Please enter the name of the sheet you want to add,” & vbCrLf & _
“or click the Cancel button to cancel the addition:”, _
“What sheet do you want to add?”)
‘ create new workbook
ActiveSheet.Name = AddSheetQuestion
ActiveSheet.Move After:=Worksheets(Worksheets.Count)
‘ add header text
Cells(2, 2) = AddSheetQuestion
Cells(3, 2) = StartDate & ” – ” & EndDate & “, ” & noPPW & ” periods per week.”
Cells(5, 2) = “#”
Cells(5, 3) = “wb.”
Cells(5, 4) = “Topic”
Cells(5, 5) = “Learning Objectives”
Cells(5, 6) = “Resources”
‘ number rows
Call NumberPlanner(noPeriods)

‘ date rows
Call DatePlanner(noPeriods, StartDate, noPPW)

Worksheets(AddSheetQuestion).Columns(4).ColumnWidth = 30
Worksheets(AddSheetQuestion).Columns(5).ColumnWidth = 30
Worksheets(AddSheetQuestion).Columns(6).ColumnWidth = 30
End Sub

Sub NumberPlanner(ByVal noPeriods As Integer)
Dim count1 As Integer
For count1 = 1 To noPeriods
Cells(count1 + 5, 2) = count1
Next count1
End Sub
Sub DatePlanner(ByVal noPeriods As Integer, ByVal StartDate As Date, ByVal noPPW As Integer)
‘ One date at the start of every week
Dim date1 As Integer
Dim wb As Boolean
Dim daycounter As Integer
Dim weekcounter As Integer
wb = True
daycounter = noPPW
weekcounter = -1
For date1 = 0 To noPeriods – 1
If daycounter = noPPW Then
wb = True
daycounter = 0
weekcounter = weekcounter + 1
End If
If wb Then
Cells(date1 + 6, 3) = StartDate + (weekcounter * 7)
wb = False
End If
daycounter = daycounter + 1

Next date1

End Sub

It’s not refined and I have to admit I can’t remember how to make the macro populate a Word document directly yet but the code above generates something a little (ok, exactly) like this:

A little manual formatting after copying and pasting into Word resulted in this:

Finally, copying and pasting into the desktop version of Evernote was a breeze. It even took in the document header and footer (I’d recommend removing the footer as an Evernote note does not have a page break!).

The time consuming part will be linking Evernote notes into the resources column for each lesson, but I’m happy the structure is there. The aim is that, once completed, these plans will not only be synchronised between home and work (reducing the need for those photographs of paper planners!) but that revising them will be much more efficient as I can immediately add in a new resource or interesting news article link when I find it (because they always appear three months before or after you actually need them). If my colleagues need to look at them for any reason I can send it quickly via email.

The ultimate goal? No paper planner at all for my lessons. These folk have already managed it and, if the web version can handle editing the newly created notes, it won’t take long until I manage it too.