A busy few months

I know you guys love hearing about what I’m up to so here are a few fantastic events that I’ll be appearing it either running workshops or giving talks – it’d be great if you could come along and join in the fun!

Firstly, this weekend I’m taking the pi-top Champions to The National Museum of Computing and Bletchley Park museum for a weekend of training and fun – the most exciting thing about it is that on Sunday 19th the Champions will be running workshops in the National Museum of Computing, showing off exactly why we chose them – I’m so excited about this weekend and hope some of you can join and bring your kids along to what will be an incredible day of opportunities. Let us know you’re coming by signing up here!

tnmoc-logo_3

I’m really excited about the Champions day as I feel like we’re bringing together some of the best of the best when it comes to running workshops, training and all things Raspberry Pi – we’ve picked an amazing team of people for our Champions and I can’t wait to share further details with you all!

I’m looking forward to joining Nic Hughes at the London CAS conference on Saturday 25th February. Nic and I are working together with him leading a Crumble workshop and me leading a Physical Computing Raspberry Pi workshop. It’s always good fun working with Nic and we’re looking forward to inspiring some teachers to innovate their computer science classrooms.

Raspberry Pi is celebrating it’s 5th year at the Junction in Cambridge on 4th and 5th of March and I’ll be there both days and doing a talk on the importance of teaching children to code on Saturday 4th at 1.30. The birthday party is always a great fun community event and tickets can be bought here.

Throughout March and April, I’m running workshops through pi-top for a number of great charitable groups such as STEMSussex, BECSLink and London CLC which will be great fun and I’m hoping to be able to do something for International Women’s Day on 8th March.

</edit> I forgot to mention my own event – Coding Evening for Teachers, in Twickenham on Friday 24th March – tickets are here.</edit>

At the end of March, I’m VERY excited to be attending three incredible events – first up, the NAACE conference in Leicester (28th-29th March), where I’m running not one, but TWO break out sessions – one for pi-top and one talking about the amazing Active Lit as a tool for writing text adventures. Looking at the speaker list, I have a feeling this is going to be a very exciting event and it seems that the people at NAACE are really determined to make it a very successful couple of days.

Next up is PiWars in Cambridge – I’ve always been a big fan of Mike Horne and Tim Richardson, especially their really helpful CamJam EduKits for teaching physical computing with Raspberry Pi so I was incredibly honoured to be asked by them to be a judge at PiWars, an event so popular it’s had to extend to cover two days instead of just one! The blurb for the event describes it as:

logo-v2-rgb-sm

Pi Wars is a challenge-based robotics competition in which Raspberry Pi-controlled robots are created by teams and then compete in various non-destructive challenges to earn points. There are prizes awarded at the end of the day. Last year, we had teams from schools, families and groups of hobbyists and 30 of these teams competed for a full day of robot fun and games! Pi Wars takes place in Cambridge, UK and is open to anyone from around the world. It is run by the same team that organises the Cambridge Raspberry Jam.

How much fun does that sound? There are still spectator tickets available if you want to bring your children or even your class up to inspire them to create their own robots and one of the two days is dedicated entirely to schools and youth groups!

Following on the heels of PiWars is ATI 2017 in Malvern. Primarily an Apple event, this year ATI has extended to include some more general computer science skills, particularly Raspberry Pi and the lovely Joe Moretti asked me to suggest some workshops. I feel like a bit of an interloper seeing my name surrounded by some of the big names in Apple Education, but I’m really excited about offering some Physical computing and Minecraft hacking information for some teachers, most of whom will be completely new to Raspberry Pi and then entire Pi ecosystem. ATI looks like n exciting event and I know that the other presenters are all incredibly inspiring so I’m really glad to be part of the team – there are still tickets available and it’s worth going along just to meet people like Joe, Mark Anderson, Catherine Jessey and Jon Neale, all of whom I’ve seen present before and know are incredibly inspiring!

c4n_svmwaaa5kgf-jpg_large
Photo credit – Mark Anderson @ICTEvangelist/ATI event page

You’d think that’d be enough events, but no… in May, I’ve been invited by the STEM Centre in York to run a ‘Scratch Roadshow‘ taking sessions to Truro, Bristol, Swindon and Reading. This will be an intro to Scratch for primary school teachers who want to build their confidence a little – the best thing about it is that there is a bursary which makes the training completely free so it’s well worth letting your local primary school know if you think they could do with a boost!

Anyway, there are more events later in the year, but that will do for now! I hope you can come along to some of these events and please do come over and say hi – I love meeting you all ‘IRL’. And remember – if you can’t come to any of these events but are still interested in the type of training I can do, please drop me an email cat@crossover.solutions – I offer workshops and CPD training bespoke to your school or group’s needs!

 

Shakey Sense Hat Cat

After Sunday’s coding session, I set the boys the task of making our Scratch Sense Hat Cat Shake, just like Carrie Anne’s Interactive Pixel Pet.

The first thing the boys did was to figure out how to use some of the sensors on the SenseHat – remember how in my other post, I said it was good practice to run the basic broadcast command before you do anything.

screen-shot-2017-02-12-at-19-33-46

We had found some code from Albert’s GitHub page, however, when we tried to select the sensor value for accelerometer, we only had a few choices as shown below.

screen-shot-2017-02-14-at-12-40-30

screen-shot-2017-02-14-at-12-35-53

Luckily, after trying a few things, I suggested that we hit the green flag to check that the GPIO pins were on and that Scratch knew we had a SenseHat attached. When we next checked the sensing options a while heap of new options appeared, including the accelerometer (sorry, I forgot to screenshot it).

The boys had great fun playing with the sensors, but couldn’t quite figure out how to get the ‘shake’ function working so they went back to the original code for Interactive Pixel Pet.

x, y, z = sense.get_accelerometer_raw().values()

while x<2 and y<2 and z<2:      
    x, y, z = sense.get_accelerometer_raw().values()

This is what they come up with:

screen-shot-2017-02-14-at-12-49-01

A job well done, if I do say so!

Now, I’m sure some of you have spotted that I could neaten up my code by removing the ‘ledbackground’ line and that ‘clearleds’ would be better suited to the end of the repeat loop as that would leave me with a completely blank neopixel array at the end of the animation sequence, but otherwise I’m pleased with our work in recreating the pixel pet for Scratch.

I look forward to trying out some of the other sensors using Scratch in the future!

 

Sense Hat Cat using Scratch

So, I absolutely LOVE the Interactive Pixel Pet activity from the Raspberry Pi website, and while I was playing with the Sense Hat the other day, I realised it was possible to imitate it using Scratch. So far I’ve only got it running as an animation, so next step is to get the shake function working as we’ve just figured out how easy it is to use the other sensors on the hat using Scratch.

I had a play and managed to get a very cool dancing cat on my LED matrix – I’m not going to lie, I was super excited and may have run around showing everyone in a slightly excited manner. Fortunately, my colleagues were also excited, although their contributions of dancing ‘poo emojis’ weren’t quite what I had in mind.

screen-shot-2017-02-12-at-19-33-04

Here’s a bit of background on the Sense Hat… for those of you who don’t already know, the Sense Hat was created by the Raspberry Pi Foundation and launched as Astro Pi – a competition to get your pupils’ code into space. It has an 8×8 neopixel array, a mini joystick and a load of amazing sensors like humidity, pressure, gyroscope and accelerometer.

So, the first thing you always need to remember when using Scratch GPIO is that you have to turn on the GPIO server on and, if you’re using a hat, you’ll need to let it know which hat it is by using the command “set AddOn to”.

screen-shot-2017-02-12-at-19-33-46

This is pretty important for anything using the SenseHat and it’s good practice to run it before you go any further in your code as by running it, Scratch will realise you have access to all of the sensors on the hat and allow you to access them through the drop down menu in the blue ‘sensor value’ block.

Firstly you will need to delete the Scratch Cat so that you can draw you own sprite.

screen-shot-2017-02-12-at-19-34-06

In the paint editor, you need to zoom right in as far as you can and select the smallest brush size.

screen-shot-2017-02-12-at-19-34-36

You have four squares in total to draw your image – I’ve shown this here by making the area black (you don’t need to do this, but it can help as ‘black’ represents the neopixel being turned off).

screen-shot-2017-02-12-at-19-35-16

Now you can draw your image – you have exactly 64 pixels to draw with and, as you may have guessed, one pixel on the screen represents one neopixel on the sense hat. By the way, a neopixel is a very bright LED which can be any colour depending on the mix of red green and blue. The lighter your colour, the brighter it will appear on your neopixels so try to avoid dark browns and blues etc.

screen-shot-2017-02-12-at-19-35-42

Next you need to create a second image – you need to use the duplicate command to create a second version of your image.

screen-shot-2017-02-12-at-19-36-05

Then click on the costumes tab to be able to edit it a little bit so that you can make your second sprite slightly different, thus giving the appearance of animation.

screen-shot-2017-02-12-at-20-04-20

Finally, you need some simple Scratch code to get your image moving – I’ve put a couple of broadcast commands in here to clear the SenseHat before you start and to make sure that the background is black (so turned off).

screen-shot-2017-02-12-at-19-36-38

You can experiment if you want by changing the background colour, although this will only make a difference if your sprite is ‘backgroundless’ (but you have to make sure it’s still only 8 pixels/2 squares wide).

screen-shot-2017-02-12-at-20-11-12

I’ve had great fun recreating this project in Scratch and I’ve set Stuart and Kirk on a mission to figure out the ‘shake’ control too so hopefully I can add an update soon.

<edit> Kirk and Stuart have successfully managed to get shake working and are now celebrating with chocolate cake

img_0908

</edit>

Part two of this project can be found here.

All thanks to Albert Hickey for his advice with this project – he is a Scratch and SenseHat guru!!

Watch this space for some more projects using Scratch soon!

Etcher -the BEST tool ever for burning OS to SD cards

A couple of years ago, I wrote a post about burning SD cards on a mac… but I’m not gonna lie, I found it quite difficult to do. You can imagine my delight, when someone at work suggested I try Etcher near the end of last year. What a fantastic app for making burning SDcards easy!

Just a reminder – when you’re using a Raspberry Pi, you need to install an operating system on your microSD card. Most Pi users install Raspbian, however, I’ve been using pi-topOS a lot for work. Installing an OS usually requires wiping the SD card manually then using clumsy software or even accessing the command line to install the new OS. Whereas with Etcher, you get clear feedback on process in a very easy, visual way.

Etcher is available for Windows, Mac and Linux, it is free to download and easy to install.

Screen Shot 2017-01-31 at 14.57.50.png

On my old MBA I had a lovely SD card slot so it was REALLY simple for me to use – literally I downloaded the latest version of Raspbian or pi-topOS, put the SD card in, select the downloaded file (no need to extract the file, just use it as is), select the SD card and Flash!

Check out this gif from the Etcher website – it really is that simple!

product.gif

So… one peril I found was in my own stupidity.. I nearly flashed my USB stick instead of the SD card, only noticing at the last minute that the drive I’d selected was too big to be an 8GB SD card…

I’m sure you can turn it off, but Etcher automatically verifies the SD cards its burning, which does double the time it takes the burn an image. However, I found it used very little processor power and I quite often had SD cards burning in the background while I got on with my other work, which meant that by the end of the day I’d burnt a fair few SD cards to be workshop ready (I’m OCD, I like things to be prepared).

Seriously, I can’t fault Etcher, it has a fantastic interface, it’s easy to use, you don’t need to pre-wipe the SD cards, you just pop them in a burn away – so, so easy!

Good luck and enjoy!! Now… how do I burn SD cards on my new MBP??

 

A Strange Experience – Being on the Other Side

Since I’ve been working for pi-top, I’ve experienced being on the other side of the EdTech system and it’s certainly been a bit of an eye-opener

I’ve tested various products over the years and found problems and complaints, bugs and surprises, delights and nightmares, but it has been a really interesting experience for me being a producer of content rather than just a consumer.

Firstly, I thought it would be really easy to implement all of the things on my ‘want’ list – it turns out that it’s nowhere near as easy to just ‘add a button that prints out all of the users’ or ‘add a widget that allows the teacher to find out the answer’. All of these things require thought, tweaking of the UI (user interface) and lots of code.

I’ve learnt that things that seem obvious to me are not necessarily useful or even acknowledged by other users.

I’ve learnt that a developer can spend two weeks working overtime to completely overhaul the interface and I’ve not even noticed a difference (sorry).

I’ve discovered that it’s really important to make it clear what the delete button does… and I definitely didn’t accidentally delete a huge chunk of a resource which, thankfully, had been backed up.

I’ve found out that it’s really, really important to get more than one opinion and that relying on mine alone is not enough.

I’ve learnt that developers can’t write resources for beginners even though they really, really mean the best and want to help.

I’ve learnt that even someone like me can make things too difficult for beginners and it’s important to have someone who is truly a novice to try things out.

I’ve found out that sometimes developers just want to sit and watch you use the interface whilst giving them a running commentary so they can figure out what needs to be done next.

I’ve learnt that creating good quality content takes time, creating interfaces takes time and editing information takes time.

I’ve discovered that ‘popping over to ask a quick question’ is akin to tossing an hour’s worth of work into the bin for a developer and it’s better to contact them over Slack.

I’ve found out that developers don’t read emails…

Above all, I’ve learnt that being this side of the interface is HARD WORK and although we sometimes get frustrated with developers bringing out software that doesn’t do exactly what we want it to do, it’s not through lack of trying. It’s pretty important to give developers constructive feedback explaining exactly what doesn’t work as you’d expect and what you’d like it to do instead rather than getting cross and frustrated with it. Communication is vital to ensuring that a product is the best it can be.

Finally, I’ve learnt that pi-topCODER is going to be an incredible resource when we’re done with it and I’m proud to have been part of the team working on it, even if I sometimes feel like I don’t really know anything compared to the people making it!

Swift Playgrounds

It’s about time Apple joined the Coding Revolution – with Raspberry Pi, code.org and Google running projects for years, it was only a matter of time before something was released. And boy is it a good one… with glossy graphics and slick tutorials, Swift Playgrounds has certainly hit the ground running as a way to teach coding concepts to pupils on an iPad. However, it’s not without faults, but then nothing is, so let’s take a look.

A few weeks ago, I visited Apple HQ in London along with a few CAS Master Teachers and various CAS reps and teachers. As it turned out, the majority of attendees were primary school teachers, which brings us to the first flaw in the Swift Playgrounds roll-out. The first thing we were told about it was that it was primarily made for Year 7 pupils and older and this becomes clear when you work through activities as the vocabulary is very dense and would certainly lose many younger pupils. However, the look and feel of the app is very primary-friendly which is why most of the secondary school teachers hadn’t shown an interest, assuming it was ‘not for them’. Indeed, a primary ex-colleague of mine was recently shown Swift Playgrounds and after about ten minutes, decided it would be the perfect way to teach KS2 coding, unaware of its secondary-school target audience. When you spend some time playing through and looking at it, however, you begin to realise that it is indeed best suited to KS3, particularly because of the skills it is highlighting and teaching.

So, you can see very easily just how much effort Apple have put into Swift Playgrounds and how determined they are to make it a useful classroom tool. Not only is there a wealth of content that is easy to download, there are accompanying iBooks full of Keynote presentations, information, progress charts and comparisons to the CSTA standards. Information is made as clear as possible and it is quite fun to play the games. You can explore the current playground challenge by rotating, zooming, changing angle etc. Code is presented in text boxes with lines and phrases of Swift pre-written in them, and it is still drag and drop so that pupils become familiar with the language without having to write it by themselves. This makes coding and debugging easier when they are ready to move on to independent coding. You are also able to select a different character and alter the speed at which your code is run, which adds an element of personalisation.

img_0003   img_0004You can see here the interface for downloading lessons and a selection of the different types of lesson, including one for Hour of Code. There are some interesting resources that are worth exploring as all of them are slick and well made.

 

The first tutorial is called ‘Learn to Code 1’ and it talks you through using the interface from the beginning. img_0005img_0006

At the start of the game, you are limited to a few commands, but as you move through you are offered more commands and, in the second section, you are shown how to create your own commands, or functions.

img_0007

Now, one thing that was picked up on the training that I attended was that the US curriculum for Computer Science places more emphasis on explaining functions than on the word algorithm, which is different to the UK curriculum, where algorithm is considered a core word for coding and function is a later skill to learn. It is worth bearing this in mind as Swift Playground is geared towards the US curriculum. However, this isn’t necessarily a bad thing.

Let’s take a look at the code needed for ‘Four Stash Sweep’, which is approximately halfway through Learn to Code 1, with my solution to the problem included.

My solution is certainly not the most elegant, but it does demonstrate the complexity of some of the easy tasks, I can’t imagine doing this with primary-age pupils without a lot of support – I’ve had to write three functions to make my code more efficient as well as understanding ‘for i in range’ as a loop. Don’t get me wrong, I’m not complaining about the content, but it does make it clear that Apple are right to pitch this as a KS3 resource in spite of it looking like something for the juniors. It is definitely teaching text-based coding concepts, even if you are dragging the blocks of code into place.

A bigger problem lies in its running speed. When I tested it at Apple, it worked really smoothly, everything was simple and easy to use, but of course we were using brand new iPads. In contrast, when I used it at home on an iPad mini 2, it was slow and frustrating at times. The iPad mini 2 is the minimum specification device required to use Swift Playgrounds, along with the iPad Air, meaning that some early-adopting schools are already feeling excluded unless they upgrade their iPads. Perhaps those schools should consider upgrading them, but it is upsetting when there’s no budget to do so.

So, what next?

Apple are marketing Swift Playgrounds as a way to get to grips with Swift, their open-source language which allows users to create apps and content for iOS and macOS. This is very appealing to schools and young people because, let’s face it, who doesn’t want to be the next app-store millionaire. Making learning goal-orientated makes it instantly more fun and so to present to pupils that they could eventually make a real-life app will certainly inspire them to get more interested in learning to code. The fact that when you use Xcode to write Swift, you can use a playground to test your code, is deliberate to draw a link between Swift Playgrounds and the more ‘real’ Xcode environment and is a clever move by Apple, albeit one that confused existing users as to which playground was which. Swift works across multiple systems, including Linux and therefore Raspbian and I look forward to hearing about some Apple/Raspberry Pi crossovers in the future – perhaps we’ll finally see a RPi physical computing project which is controlled from an iPad!

Where does it fit?

My gut instinct is that Swift Playgrounds would be a great tool for a flipped learning environment. Pupils could work through the game in their own time and come to school armed with questions. Teachers could discuss concepts and offer their class challenges based on the skills they’ve practised at home while using the app. I think it is a great tool for KS3 programming and a lovely way to introduce pupils to the world of programming. I would worry about a whole class just sitting and plodding through in the classroom without the teacher bothering to be involved and it would far too tempting to just sit back and let them get on with it which is why I think it would be better suited to independent work outside of the classroom so that the teacher could focus on discussing the skills and developing them in the classroom.

My initial concern that it was a little too restrictive, like Discovery Coding, have been dispelled and I think there is plenty of opportunity for pupils to explore and create once they have learnt the most basic skills. There are some lovely, interesting resources already available (I recommend taking a look at ‘Drawing Sounds’ in the Swift Playgrounds ‘featured’ tab which you can download and play with) and I look forward to exploring and creating my own playgrounds once I’m more confident and perhaps after I’ve worked through all of the ‘Learn to Code’ modules.

 

 

 

 

Headlines about Computer Science

It’s been well over two years since the new computer science curriculum was introduced in the UK. Not that long ago, Roehampton University released its wonderful Annual Computing Education Report 2015 which says clearly, in black and white, that the numbers of pupils taking computing compared to those that took ICT are significantly lower now and, more importantly, the proportion of females has dropped. Newspapers jumped onto headlines exclaiming that we should have stuck with the old ICT curriculum, but that doesn’t address a number of significant issues.

So, let’s look at the lower number of students studying computer science compared to ICT. There are two things to consider here – when I was at school, ICT was seen as a bit of a joke subject: not one that was taken seriously in academic circles. It was a subject where you learnt to use Excel and create a blog, but it was a bit of a ‘soft’ subject. I suspect that a number of the pupils studying ICT were doing so because it didn’t require quite as much work as, say, French GCSE. Let’s compare that to Computer Science – the computer science curriculum is as difficult as learning a new language because you are actually expected to learn a new language, whether that be Python, Ruby or JavaScript; for the controlled assessment, you need to write some code. It is therefore not a soft subject by any measure.

The other thing to consider is that in a number of schools, there is a fear of failure – I have heard no end of stories from teachers who have been told in no uncertain terms that only the ‘top’ mathematicians are even allowed to consider computer science – no school wants to have a drop in the percent of grades A*-C that they can brag about (or whatever the numbers are in the new system). That immediately isolates around three quarters of the pupils. While I agree that there is some correlation between academia and computer science, it is also true that many pupils with dyslexia and ASD are excellent programmers who may not succeed in maths or English, but would, in contrast, perform exceedingly well in a Computer Science GCSE. Why should we exclude pupils that are interested just because they aren’t in the top set for maths? Surely it’s better that a pupil gets a low grade GCSE in CS than get no GCSEs at all?

By the way, I’m not criticising the schools for not being confident enough to allow everyone to study CS at GCSE level. It’s the system that forces them to fear failure and to force their pupils to conform because of that fear of failure. What, then, can we do to fix it?

On top of that, we have that issue of teacher training. Some of the best teachers in the UK for teaching the ICT curriculum are being pushed into teaching computer science without any knowledge of the necessary skills and there is no time nor funding for them to learn. Of course, they’re not going to want difficult or potentially weak children when they are not confident themselves!

Another issue is that the new GCSE assumes that pupils have been learning about algorithms since they were 4 years old and spent most of their school life learning about coding from an early age. Except that most of these pupils have probably learnt ‘a bit of HTML’ in a ‘coding lesson’ in year 9 and that’s about it; you have no idea how many secondary-aged pupils have told me that is their only experience of coding at school… How can we expect them to study at an advanced level when they’ve missed out the easy level? It takes both an excellent student and excellent teacher in order to achieve this feat, so is it any surprise that both numbers studying and grade expectations are dropping?

What about the fall in numbers of girls?

Well, I loved maths at school, but I know I was in a minority – I was the only girl to get an A* in maths GCSE and I was the only girl to study maths and further maths at A-level. Maths is a traditionally boy-heavy subject so if we’re limiting students to top-set maths then yes, that does exclude a lot of girls. However, that’s not the main problem with the subject, let’s be honest…

Computer science has a massive image problem – when you think about programmers, most people will imagine a middle-aged, over-weight man. When we talk about successful people in the industry, most people will list off “Steve Jobs, Bill Gates, Mark Zuckerberg”. So, where are the women? We are seriously lacking in positive female role models who demonstrate a passion for CS and programming even though evidence suggests that women write code equally as good, if not better, than their male counterparts. How many girls out there were put off as teenagers and never really got started – I know I was! I mean, how many schools even have a female computer science teacher?

This is something I’ve been saying in various circles for quite a while, but I really don’t know what the solution is – there are some great people out there like Carrie Anne Philbin from the Raspberry Pi Foundation and groups like the Stemettes and Django Girls, but is that enough? Young women like Yasmin Bey and Cerys Lock are flying the flag for young, female coders, but they’re still not well known enough outside of our community of already-super-enthusiastic people.

My heart feels like the key is in the teacher training. At the school I used to teach at, because of my enthusiasm for coding, my Code Club was 50:50 male:female. The girls were just as excited as the boys and so far three of them have come and talked very eloquently about their coding experiences at Wimbledon Jam. I should point out that only one of the three was a ‘top set’ mathematician, but that didn’t stop the others from being passionate and enthusiastic about learning to code. I was also given the freedom to tailor my curriculum to my resources and my pupils, something not always available to state schools where results are the only thing that matters and pupils are lost in the overwhelming need to achieve.

We need to support the people on the ground level, the teachers in the classroom, to help them to nourish and enthuse both male and female students and to help them to realise that computer science is for anyone who is interested and not just one subset of society.

This isn’t a criticism of the teachers as individuals: they’re doing the best they can. However, without the right training, without the right support, how can we expect teachers in the classroom to fill pupils with a sense of wonder and excitement for CS? Something has to change.

Just so we’re clear: I’m not a feminist. I’m not saying we should be holding girls-only events and pushing a female agenda even if the girls aren’t interested, I just wish that I’d been more supported as a teenager and felt more like coding was something that was socially acceptable for a girl to do, because who knows what might have happened if I had been! I just want us to encourage and foster interest in everyone to ensure that all students get a chance to be the best that they can be, no matter what their gender, ethnicity or background.

One final, happy note – take a look at the new Raspberry Pi Pioneers competition. That’s how you encourage people to get excited about computer science! I look forward to laughing at all of the (intentionally) funny entries and hope lots of young people have fun entering!

*please note this blog reflects my personal views and not those of any company that I represent.