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!

Advertisements

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.

Picademy Take 3 & 4

My picademy training was over two years ago now, but the experience remains one of the most inspiring two days of my life. As I’ve said so many times before, it literally changed my life. So, you can imagine my delight when I was invited to Glasgow Picademy, this time as a trainer.

I got to spend four days with two sets of trainees and see them go through the same life-changing experience I did.

So, the format for those of you who don’t already know – first of all attendees are talked through the benefit of Pi and then it’s straight to work learning some basics of physical computing. Unlike my picademy years ago, this time all of the cohort stayed in one room for their workshops.

I was really lucky that I got to run the first workshop as I love talking about the benefits of physical computing – I love demonstrating the power of Scratch and introducing some simple Python, especially to complete beginners.

Over the course of the day the attendees took part in workshops learning about Minecraft hacking, Sonic Pi, PiCamera and finishing up with a look at the fantastic Pimoroni Explorer Hat and some motors to make spiny things. The last challenge for the day was a mini hackathon challenge where they had 30 minutes to create something cool with their spiny motors and it was great fun seeing all that they had achieved.

As was normal, a few people felt a little overwhelmed and exhausted after the first day and it was our job to let them know that it was perfectly normal and that day 2 was their chance to become comfortable with their new skills. Just a note of reassurance here, we’ve all felt it, that feeling of never being able to understand or keep up. In fact, there were a few times that I felt it while helping out as a mentor. Don’t worry, we all feel like that!

The first day ended with a meal in a local restaurant for all attendees and mentors – just a chance to unwind and relax – the first week, we played a game of ‘learn everyone’s name’, but the second week I was determined to know them all by the end of the first session, much to everyone’s bewilderment.

So, day 2 – the challenge! Attendees are invited to work independently or in teams to make something using what they’ve learnt. Some people choose to develop their personal skills, while others are determined to come up with projects that can be used in their classrooms and both weeks I was overwhelmed by the super projects people came up with.

First, however, we were invited to talk to the attendees about something we were passionate about – in the case of James Robinson, this was Skycademy and HAB with pi, Marc Scott talked passionately about open source and Laura Sach talked about the importance of the Pi community. I was even given the chance to discuss my coding inititive, Coding Evening for teachers. It is always lovely to hear people talk about their passions and this is a lovely part of the training as it gives the attendees the opportunity to glean some insight into us as mentors and see another side of us.

Down to the projects. I’m afraid I can’t remember all of the projects, but I can say with absolute certainity that they were all superb and inspiring. In the first week, a whole table came together to create a giant group of mostly primary school teachers who were really keen to do some work with Scratch. They came up with an excellent ‘my Town’ activity that could be built in primary schools with KS2 pupils and then brought to younger pupils so that they could use the set up as a BeeBot or Sphero map. I particularly liked the way this team worked together to inspire and support each other.

Another project which stood out was a Minecraft music mat to help inspire children with learning difficulties to want to learn – I just loved that this project was so inclusive.

A pair of primary school teachers in the first week decided to independently use Python to create a Santa photo booth and what I liked about this was that they didn’t really know any Python before they started, but that didn’t stop them from giving it a go!

In the second week some teachers used Scratch to make a flood defense scheme to tie in with the Geography curriculum in Scotland which has a huge focus on environmental issues and projects and I was impressed with the cross curricular aspect of this.

Another impressive project was a back-to-basics Minecraft resources where pupils were given complete code to auto build a house in Minecraft and were then asked to identify where they could make changes in the code to alter the output. I loved this idea as I think really basic starting points for Python are few and far between and I would defintely like to see more from this project. Other Minecraft projects included a ‘yellow brick (gold block) road’ and a Hadouken Sense Hat control game.

Projects were really broad for the both groups and showed a lot of inspiration and excitement – from photographing twitter buttons to doorbells that check who is ringing them, all of the projects were well thought out and generally quite easy to apply to the classroom. I don’t think  anyone who has attended Picademy could deny the power of project based learning after spending time exploring Pi.

There were some hilarious moments over both sets of picademies, including some innuendo (mostly unintended), some incredible successes, some moments where, in spite of failure, we all had a good laugh and even some moments where I felt like I was able to contribute and help people with their code. I will add that, perhaps my favourite moment from the entire four days was when, at the end of the two days, I was asked by an attendee whether I would get an award “for being the most enthusiastic trainer” for the two days… I feel like I must have done *something* good to receive that response!

I really hope I get invited back to Picademy, as this was a fantastic experience and I can’t wait to see where they are going next in the country – fingers crossed there will be some more courses a bit further south in the future! Please keep an eye out for future Picademies and take the time to apply as this is an experience NOT to be missed!

Thanks, as always, to the Raspberry Pi Foundation for offering such amazing training and thank you too, to Google Garage for supporting them in bringing Picademy to locations they might otherwise not have been able to. Keep up the good work!

 

CamJam EduKit 3 – part 2

First of all I’d like to thank you all for the positive responses to my first blog about the CamJam EduKit 3 – loads of you commented, retweeted and even offered some really helpful advice. Yesterday, Louise came around and we embarked on phase two of the robot build.

On Wednesday I hosted a Coding Evening in Twickenham and quite a few attendees brought along their robots. Richard Hayler brought his CamJam robot which was controlled by a bluetooth keyboard – what impressed me most is that Richard had written his code and then set up the pi so that it automatically started running on boot up. I was also very impressed with the Crumble Bot kit that Nic Hughes brought along, controlled by an interface based on Scratch so very easy to use – I’d be interested in trying one out for myself as it looked like a great introduction to robot building for children.

The first thing I wanted to do was to make my code run on start up, so I quickly checked the code I’d written last weekend to make the bot move forward, turn left and right and backwards. I’d been sent a blog post from Raspberry Pi Spy, as I’d been warned by Alex Eames from RasPi.Tv that auto booting on Jessie could be a little complicated. I was rather proud of myself for figuring out that because my python file was in a folder called EduKitRobotics, I needed to include that in the code I was typing in, meaning that instead of the website of example of /home/pi/myscript.py, I needed to use /home/pi/EduKitRobotics/4-driving.py, however, what I failed to do was to use capital letters for any of the commands in square brackets in the config file. I also made one massive mistake in the terminal code that I was typing in meaning that nothing worked.

IMG_8477IMG_8478

You can imagine the fear when I saw the words ‘dead’ in the instructions, but luckily it was Alex to the rescue as he spotted that I’d made a typo in the ‘ExecStart’ command – my python filename was missed off – I’d obviously been in such a hurry to get it typed that instead of typing:

/EduKitRobotics/4-driving.py

I’d just written

EduKitRobotics.py

A simple, but silly error, which caused my code to fail. The next attempt to run everything, with the capital letters all in place and the correct file information typed up, we were ready to test whether our code launched on start up.Screen Shot 2016-03-27 at 17.59.37.png

We were quite excited when, after quite a wait, our robot set off wobbling across the carpet, as seen here, however, we couldn’t help but notice that the wheels were starting to come off the side of the box. Fortunately, it was Stuart to the rescue as he found a piece of wood, cut it to size and stuck it to the bottom to support the motors!

My next task was to attempt the code for following a line – at this point, I decided it was safest to just use the 4-driving.py saved code for all of my future work to save having to redo my boot up code, so I carefully copied and pasted the original code into a new file and began work on the next bit of Python.

I should probably point out that I got a fair bit of stick last week from both Stuart and Louise for the awkward position I was sat in to type my code and so this week I borrowed a monitor so that I could be a bit more comfortable. I also decided that to input my code I’d use my Pi 3 because it had enough USB slots to have a mouse and keyboard attached, and then I could simply pull out the memory card and put it in the A+ when we wanted to use it in the robot. This also meant that our cables could be permanently attached to the pi, without worrying about maneuvering them to attach the pi to a monitor (yes I still need to figure out how to VNC into the pi). IMG_9929So, with the line following code ready to go, we put our robot back onto the floor, plugged in the trusty Anker power supply and set it off. We were hugely disappointed when nothing happened, until I realised that the diagram for wiring the line sensor showed the sensor facing up, whereas we had installed it facing down and therefore the cables were the wrong way around!

With a slight fear that we’d damaged the sensors by having it back to front, we switched the cables and ran the code again – this time it worked, but we had a slight issue with the robot going backwards and so I had to go and tweak a tiny bit of code to get it sorted and then we were able to watch excitedly as our robot wiggled it’s way along a line. We did have one further problem, the bit of wood we’d added to help support the wheels had made our robot a little heavier and that meant it couldn’t manage to move on the big, fluffy carpet in the living room so we had to relocate to the tiled kitchen, with its black, granite tiles. Not an ideal location for testing for black lines, but as long as we kept the robot on bits of paper, it worked ok!

Our final bit of Python was the code to get the front sensors working so that our robot could detect distance. Using a bit of careful cutting and pasting from the previous code I had typed up, I was able to get the robot moving fairly quickly – you can see it bouncing around the kitchen here. I should note at this point that it took quite a long time from plugging in the battery to the code actually starting to run and we were often close to giving up when it started to run. I’d estimate it was between 30-60 seconds from battery in to code running, which can be a long time when you’re worried that it doesn’t work!

The next step of our build involved Louise spending a lot of time with spray paint and an entire tube of super glue to decorate the robot!

One slight issue with all the decoration is that it made the robot quite heavy, as you can see here, but it was so funny that we didn’t really mind!

Perhaps jealous of our achievement, Stuart got out his remote controlled car, and then started looking suspiciously at the sensors and muttering that he could attach them to the car and automate it… we decided it was safest to hide our robot from his tinkering hands, but watch this space to see if he does end up using a CamJam Kit with his car.

So, as you can see, we had a fantastic couple of days building our robots – considering neither of us is particularly techy, we were pleased with our achievements both in terms of the building and the coding. I still don’t think this is a class activity, but definitely one to do with a small group of enthusiastc children as it was so much fun.