We need to do more active learning in schools
I was speaking to a teacher a few days ago who was interested in our workshops and we got on to talking about the content of the workshop and teaching style.
I am a big fan of not teaching from the front and - as long as it is nothing silly or dangerous - letting the kids try out their ideas and learn by themselves.
It was nice to hear the teacher respond by saying that was exactly what she does too. Her school is encouraging what they call Active Learning, so she doesn’t come and check their code first to see if it is correct, they have to test it and have a go to find out.
This is important for kids. In real life, if you’re fortunate, you will have a network of family and friends that can guide you as go, but rarely do we have someone that can check if everything we are about to do or say is absolutely correct.
We have to do what we think is right, follow our gut feelings and use what we already know to make decisions. We won’t always get it right but as long as we are willing to learn and grow from our experiences - both good and bad - this is ok.
It is a shame that the current school system stifles this and in some ways leads students to believe that they need a teacher to validate their work all of the time.
We need to move away from this model - even if its only now and again - and show our students that they have the ability to validate their own thoughts and decisions.
Give them the space and environment in which it is ok to mess up now and again and to have a chance to put it right.
This is why I love robotics and love teaching it, it does wonders for one’s self esteem and confidence… now if I can only find where I put my set of 3d printed wheels I can carry on with my latest robot project…
We've been doing some maze solving this week.
I had forgotten how fustrating it can be for kids, but as always, I was very proud of them by the end.
The first aim was to get to the center and most of them opted to go with dead reckoning - I did explain the pitfalls, but kids will be kids and went for what appeared to be the easiest option.
I have to say they did really well! After getting to the center fairly quickly, they then continued, very willingly to get to the other end of the maze and a few even got their robot to come all the way back.
I was pleased to see them spot the fact that they could either mirror their code, or turnaround and repeat it.
But my biggest takeway from it all was how well they dealt with their failures. Dead reckoning is a pain! Especially when you start rushing and you start it wrong and it seems like all your coding has been rubbish!
But the kids really perservered with their robots and that was really brilliant to see.
I wish that their normal schools lessons were like that, with less focus on learning answers for exams and more about just having a go at something because you find it enjoyable.
Having a go and seeing how far you can stretch yourself and the activity at hand.
And knowing that nobody is counting their mistakes and that we are here to help whenever they need it and rooting for them no matter how long it takes.
I think that would solve at least a few of the problems in the education system and definitely do wonders for their self esteem and - dare I say it - I think they'd learn a lot more than they do currently...
How to improve your programming skills?
This is something we get asked a lot.
For me, being so busy running workshops for schools and completing the other tidbits that come with running a social enterprise, finding the most efficient way to improve my programming skills is always at the front of my mind.
You may recall from my earlier articles the ’10 minute a day rule’.
I have always recommended to busy people, who want to learn to code, to find 10 minutes per day to learn and practice new concepts.
This is great for when you are just starting out, but what about when you get past the basics? Or when you want to learn a new language but already know what variables and if statements are and you just want to practice doing them in java, say, instead of python.
This is the time - and a sign- that you are ready to start delving into projects!
Completing a project is the best way to improve your skills, and a great way to solve the problem of not knowing what you don’t know.
It is not enough to complete dry exercises from textbooks - whether you are a parent, school student or home educating - nor to look at other people’s code and work out what it does. Although both of these are good things to do and will bring some benefits, to really become a good programmer you must complete projects by yourself.
So where do you start?
Find something of interest and don’t worry if it seems simple or hugely complex.
It could be an Arduino controlled led lamp, or it might be a map making drone that learns how to plan the most efficient route to places.
Whatever you decide, choose something that you find interesting and that you want to complete.
For example, I would absolutely love a lamp that follows my hands around on my long workbench, particularly when I am soldering and doing electronics and switching between tasks.
When you have your idea, break it down into steps.
Make a list of the components that you need - make a note of any that you have used/programmed before and those which are completely new.
Start with the simplest part of your project - making a motor move, turning on a light, reacting to a sensor etc. then build up and start adding in the more complex parts.
As you go you will learn so much!
When you’ve finished, go back and research ways to do things more efficiently, see if someone has done what you have done and how they solved the same problems that you had.
Keep going until you know that the methods you have used are the most efficient/best solution for your project.
Because this is your project, it does not matter how long it takes you to complete. Although, depending on how busy you are, you may find it useful and motivating to have a deadline and work out how much you want to achieve by the end of each day or week.
Remember to keep it enjoyable and don’t pressure yourself too much.
Whatever you are doing, there is very likely to be some example code available online. This code might be exactly the solution you need or something that is similar and easy to adapt.
Whilst you are learning, I recommend staying away from such example code.
I find that you don’t learn a lot and there is hardly any satisfaction on completing a project this way.
This is one of the dangers of using Arduino or other popular micro controller boards, sometimes - and I never thought I’d say this - there is too much help available on line which can ruin the thrill and challenge of the project you are doing. It also means that an 8 year old can do what you just did with added quirks that you probably didn’t even think of! Hmmmm….
So I hope that helps, if you are stuck for ideas or want to share yours please do get in touch.
I am currently working with the Grandad of all micro controller boards - An ARM development board- and a few weeks back, when I was just getting started with it, I took this very satisfying picture!
There were a few issues that I couldn't get my head round, but after hours of battling I finally I got it to say "Hello World!!"
That indescribable feeling...
So, it has been a busy term.
The launch of our online learning platform has been very successful and a massive thanks to everyone who has signed up and also provided us with feedback.
We are continuing to make improvements and will adding in more audio and visual descriptions.
As always, we have been delivering a number of robot workshops for schools across the region. Including Bristol, London, Swindon and also Cornwall and other places in Somerset.
We ended the term on a high with one of our favourite events so far, a partnership event with a few schools down in Truro, Cornwall.
The kids were amazing and robot wars went down brilliantly!
So, after all that excitement I thought it would be best to wind down with something therepuetic, but also with some purpose.
I finally got round to building our very own Robomech kit:
(video will be uploaded shortly).
It was a little bit fiddly, some parts certainly need a bit of a rethink, but at the price it is - and you can grab a robot kit here - it is a very cool desktop toy for any age!
I will of course be getting back to 'proper robotics' very soon. That's the one thing I really like about half term holidays, plenty of time to catch up with machine learning and mathematical models for self driving cars that I'm looking into at the moment.
Though I really want to put and arduino rucksack on this guy with a distance sensor... it would make a very cool miniature Nao robot wouldn't it...
So one of my current projects is a mapping robot that sends its sensor info over RF. I haven't messed around with wireless communication for a while so thought it would be fun to see what I can't remember.
I'm starting off with some cheap RF modules I have lying around in my robotics lab.
It all started off very well, I love these modules because they are so simple to connect and code that you can finish a decent project in about half a day or so - perfect as I rarely seem to get more than a few hours to do my own robotics projects.
To ensure the modules still work, I hooked them up to a couple of Arduino boards and downloaded some example code that flashes LEDs in turn on each of the boards to show successful transmit and receive. Honestly it looked like it was working fine - though the flashing did seem a little bit off when compared to the example.
Anyway, seeing as the modules both work I began to integrate them into my project, however found that the sending my own data, just wasn't working.
On closer inspection I realise I had wired up VCC and GND the wrong way round - Facepalm!!
How I did this I am not sure - I blame the fact that it is a gloriously sunny Sunday afternoon and I am tired after a long week of teaching - but what puzzles me more is the fact that something must have been working earlier for the LEDs to flash...hmmmm...
These kind of moments remind me of some great times at university during the robotics assignments and project work.
It would be great to hear about some of yours!