The 8008 was Intel’s first 8-bit microprocessor, introduced in 1972. While primitive by today’s standards, the 8008 is historically important because it essentially started the microprocessor revolution and is the ancestor of the modern x86 processor family. I’ve been studying the 8008’s silicon die under the microscope and reverse-engineering its circuitry.
Whenever you learn a new subject or skill, at some point you need to pick up the particular language that goes with that domain. And the only way to really feel comfortable with this language is to practice using it. It’s exactly the same when learning programming.
In our latest research seminar, we focused on how we educators and our students can talk about programming. The seminar presentation was given by our Chief Learning Officer, Dr Sue Sentance. She shared the work she and her collaborators have done to develop a research-based approach to teaching programming called PRIMM, and to work with teachers to investigate the effects of PRIMM on students.
As well as providing a structure for programming lessons, Sue’s research on PRIMM helps us think about ways in which learners can investigate programs, start to understand how they work, and then gradually develop the language to talk about them themselves.
Productive talk for education
Sue began by taking us through the rich history of educational research into language and dialogue. This work has been heavily developed in science and mathematics education, as well as language and literacy.
In particular the work of Neil Mercer and colleagues has shown that students need guidance to develop and practice using language to reason, and that developing high-quality language improves understanding. The role of the teacher in this language development is vital.
Sue’s work draws on these insights to consider how language can be used to develop understanding in programming.
Why is programming challenging for beginners?
Sue identified shortcomings of some teaching approaches that are common in the computing classroom but may not be suitable for all beginners.
‘Copy code’ activities for learners take a long time, lead to dreaded syntax errors, and don’t necessarily build more understanding.
When teachers model the process of writing a program, this can be very helpful, but for beginners there may still be a huge jump from being able to follow the modeling to being able to write a program from scratch themselves.
PRIMM was designed by Sue and her collaborators as a language-first approach where students begin not by writing code, but by reading it.
What is PRIMM?
PRIMM stands for ‘Predict, Run, Investigate, Modify, Make’. In this approach, rather than copying code or writing programs from scratch, beginners instead start by focussing on reading working code.
In the Predict stage, the teacher provides learners with example code to read, discuss, and make output predictions about. Next, they run the code to see how the output compares to what they predicted. In the Investigate stage, the teacher sets activities for the learners to trace, annotate, explain, and talk about the code line by line, in order to help them understand what it does in detail.
In the seminar, Sue took us through a mini example of the stages of PRIMM where we predicted the output of Python Turtle code. You can follow along on the recording of the seminar to get the experience of what it feels like to work through this approach.
The impact of PRIMM on learning
The PRIMM approach is informed by research, and it is also the subject of research by Sue and her collaborators. They’ve conducted two studies to measure the effectiveness of PRIMM: an initial pilot, and a larger mixed-methods study with 13 teachers and 493 students with a control group.
The larger study used a pre and post test, and found that the group who experienced a PRIMM approach performed better on the tests than the control group. The researchers also collected a wealth of qualitative feedback from teachers. The feedback suggested that the approach can help students to develop a language to express their understanding of programming, and that there was much more productive peer conversation in the PRIMM lessons (sometimes this meant less talk, but at a more advanced level).
The PRIMM structure also gave some teachers a greater capacity to talk about the process of teaching programming. It facilitated the discussion of teaching ideas and learning approaches for the teachers, as well as developing language approaches that students used to learn programming concepts.
The research results suggest that learners taught using PRIMM appear to be developing the language skills to talk coherently about their programming. The effectiveness of PRIMM is also evidenced by the number of teachers who have taken up the approach, building in their own activities and in some cases remixing the PRIMM terminology to develop their own take on a language-first approach to teaching programming.
Future research will investigate in detail how PRIMM encourages productive talk in the classroom, and will link the approach to other work on semantic waves. (For more on semantic waves in computing education, see this seminar by Jane Waite and this symposium talk by Paul Curzon.)
Resources for educators who want to try PRIMM
If you would like to try out PRIMM with your learners, use our free support materials:
If you missed the seminar, you can find the presentation slides alongside the recording of Sue’s talk on our seminars page.
In our next seminar on Tuesday 1 December at 17:00–18:30 GMT / 12:00–13:30 EsT / 9:00–10:30 PT / 18:00–19:30 CEST. Dr David Weintrop from the University of Maryland will be presenting on the role of block-based programming in computer science education. To join, simply sign up with your name and email address.
A sci-fi writer wanted to add some realism to his fiction. The result: a Raspberry Pi-based Martian timepiece. Rosie Hattersley clocks in from the latest issue of The MagPi Magazine.
Ever since he first clapped eyes on Mars through the eyepiece of a telescope, Philip Ide has been obsessed with the Red Planet. He’s written several books based there and, many moons ago, set up a webpage showing the weather on Mars. This summer, Phil adapted his weather monitor and created a Raspberry Pi-powered Mars Clock.
After writing several clocks for his Mars Weather page, Phil wanted to make a physical clock: “something that could sit on my desk or such like, and tell the time on Mars.” It was to tell the time at any location on Mars, with presets for interesting locations “plus the sites of all the missions that made it to the surface – whether they pancaked or not.”
Another prerequisite was that the clock had to check for new mission file updates and IERS bulletins to see if a new leap second had been factored into Universal Coordinated Time.
“Martian seconds are longer,” explains Phil, “so everything was pointing at software rather than a mechanical device. Raspberry Pi was a shoo-in for the job”. However, he’d never used one.
“I’d written some software for calculating orbits and one of the target platforms was Raspberry Pi. I’d never actually seen it run on a Raspberry Pi but I knew it worked, so the door was already open.” He was able to check his data against a benchmark NASA provided. Knowing that the clocks on his Mars Weather page were accurate meant that Phil could focus on getting to grips with his new single-board computer.
He chose a 2GB Raspberry Pi 4 and official-inch touchscreen with a SmartiPi Touch 2 case. “Angles are everything,” he reasons. He also added a fan to lower the CPU temperature and extend the hardware’s life. Along with a power lead, the whole setup cost £130 from The Pi Hut.
Since his Mars Clock generates a lot of data, he made it skinnable so the user can choose which pieces of information to view at any one time. It can display two types of map – Viking or MOLA – depending on the co-ordinates for the clock. NASA provides a web map-tile service with many different data sets for Mars, so it should be possible to make the background an interactive map, allowing you to zoom in/out and scroll around. Getting these to work proved rather a headache as he hit incompatibilities with the libraries.
Learn through experience
Phil wrote most of the software himself, with the exception of libraries for the keyboard and FTP which he pulled from GitHub. Here’s all the code.
His decades as a computer programmer meant other aspects were straightforward. The hardware is more than capable, he says of his first ever experience of Raspberry Pi, and the SmartiPi case makers had done a brilliant job. Everything fit together and in just a few minutes his Raspberry Pi was working.
Since completing his Mars Clock Phil has added a pi-hole and a NAS to his Raspberry Pi setup and says his confidence using them is such that he’s now contemplating challenging himself to build an orrery (a mechanical model of the solar system). “I have decades of programming experience, but I was still learning new things as the project progressed,” he says. “The nerd factor of any given object increases exponentially if you make it yourself.”
A group of us NASA engineers work on the International Space Station (ISS) for our day-jobs but craved something more tangible than computer models and data curves to share with the world. So, in our free time, we built ISS Mimic. It’s still in the works, but we are publishing now to celebrate 20 years of continuous human presence in space on the ISS.
This video was filmed and produced by our friend, new teammate, and Raspberry Pi regular Estefannie of Estefannie Explains it All. Most of the images in this blog are screen grabbed from her wonderful video too.
What does Mimic do?
ISS Mimic is a 1% scale model of the International Space Station, bringing the American football field-sized beauty down to a tabletop-sized build. Most elements are 3D printed — even the solar arrays. It has 12 motors: 10 to control the solar panels and two to turn the thermal radiators. All of these are fed by live data streaming from the ISS, so what you see on ISS Mimic is what’s happening that very moment on the real deal up in space.
Despite the global ISS effort, most people seem to feel disconnected from space exploration and all the STEAM goodness within. Beyond headlines and rocket launches, even space enthusiasts may feel out of touch. Most of what is available is via apps and videos, which are great, but miss the physical aspect.
ISS Mimic is intended to provide an earthbound, tangible connection to that so-close-but-so-far-away orbiting science platform. We want space excitement to fuel STEAM interest.
Raspberry Pi brains and Braun
Users toggle through various touchscreen data displays of things like battery charge states, electrical power generated, joint angles, communication dish status, gyroscope torques, and even airlock air pressure — fun to watch prior to a spacewalk!
The user can also touchscreen-activate the physical model, in which case Raspberry Pi sends the telemetry along to Arduinos, which in turn command motors in the model to do their thing, rotating the solar panels and thermal radiators to the proper angle. The solar panel joints use compact geared DC motors with Hall-effect sensors for feedback. The sensor signals are sent back down to the Arduino, which keeps track of the position of each joint compared to ISS telemetry, and updates motor command accordingly to stay in sync.
The thermal radiator motors are simpler. Since they only rotate about 180° total, a simple RC micro servo is utilised with the desired position sent from an Arduino directly from the Raspberry Pi data stream.
When MIMIC is in ‘live mode’, the motor commands are the exact data stream coming from ISS. This is a fun mode to leave it in for long durations when it’s in the corner of the room. But it changes slowly, so we also include advanced playback, where prior orbit data stored on Raspberry Pi is played back at 60× speed. A regular 90-minute orbit profile can be played back in 90 seconds.
We also have ‘disco mode’, which may have been birthed during lack of sleep, but now we plan to utilise it whenever we want to grab attention — such as to alert users that the ISS is flying overhead.
We may have a mild LED addiction, and we have LEDs embedded where the ISS batteries would live at the base of the solar arrays. They change colour with the charge voltage, so we can tell by watching them when the ISS is going into Earth’s shadow, or when the batteries are fully charged, etc.
A few times when we were working on the model and the LEDs suddenly changed, we thought we had bumped something. But it turned out the first array was edging behind Earth. These are fun to watch during spacewalks, and the model gives us advanced notice that the crew is about to be in darkness.
We plan to cram more LEDs in to react to other data. The project is open source, so anyone can build one and improve the design — help wanted! After all, the ISS itself is a worldwide collaboration with 19 countries participating by providing components and crew.
Chaotic wire management
The solar panels on the ISS are mounted on what’s known as the ‘outboard truss’ — one each on the Port and Starboard ends of ISS. Everything on the outboard truss rotates together as part of the sun-tracking (in addition to each solar array rotating individually). So, you can’t just run the power/signal wires through the interface or they would twist and break. ISS Mimic has the same issue.
Even though our solar panels don’t generate power, their motors still require power and signals. The ISS has a specialised, unique build; but fortunately we were able to solve our problem with a simple slip ring design sourced from Amazon.
Wire management turned out to be a big issue for us. We had bird nests in several places early on (still present on the Port side solar), so we created some custom PCBs just for wire management, to keep the chaos down. We incorporated HDMI connectors and cables in some places to provide nice shielding and convenient sized coupling — actually a bit more compact than the Ethernet we’d used before.
Also, those solar panels are huge, and the mechanism that supports the outboard truss (everything on the sides that rotate together) on the ISS includes a massive 10 foot diameter bull gear called the Solar Alpha Rotary Joint. A pinion gear from a motor interfaces with this gear to turn it as needed.
We were pleasantly surprised that our 3D-printed bull gear held up quite well with a similar pinion-driven design. Overall, our 3D prints have survived better than expected. We are revamping most models to include more detail, and we could certainly use help here.
Our sights are set firmly on educators as our primary area of focus, and we’ve been excited to partner with Space Center Houston to speak at public events and a space exploration educator conference with international attendance earlier this year.
The feedback has been encouraging and enlightening. We want to keep getting feedback from educators, so please provide more insights via the contact info listed at the bottom.
NASA Mission Control — failure is actually an option… sometimes
A highlight for the team was when the ISS Mimic prototype was requested to live for a month in NASA’s Mission Control Center and was synced to live data during an historic spacewalk. Mimic experienced an ‘anomaly’ when a loose wire caused one of the solar panel motors to spin at 100× the normal rate.
You’ll be happy to know that none of the engineering professionals were fooled into thinking the real ISS was doing time-trials. Did I mention it’s still a work in progress? You can’t be scared of failure (for non-critical applications!), particularly when developing something brand-new. It’s part of shaking out problems and learning.
Space exploration has an exciting Future
It’s an exciting time in human and robotic spaceflight, with lots of budding projects and new organisations joining the effort. This feels like a great time to deepen our connection to this great progress, and we hope ISS Mimic can help us to do that, as well as encourage more students to play in coding, mechatronics, and STEAM.
Animator/engineer Ashok Fair has put witch-level finger pointing powers in your hands by sticking a SmartEdge Agile, wirelessly controlled by Raspberry Pi Zero, to a golf glove. You could have really freaked the bejeezus out of Halloween party guests with this (if we were allowed to have Halloween parties that is).
The build uses a Smart Edge Agile IoT device with Brainium, a cloud-based tool for performing machine learning tasks.
The Rapid IoT kit is interfaced with Raspberry Pi Zero and creates a thread network connecting to light, car, and fan controller nodes.
The Brainium app is installed on Raspberry Pi and bridges between the cloud and Smart Edge device. MQTT is running on Python and processes the Rapid IoT Kit’s data.
The device is mounted onto a golf glove, giving the wearer seemingly magical powers with the wave of a hand.
NXP Rapid IoT Prototyping Kit (the square blue screen stuck on the adaptor board with the Raspberry Pi Zero)
Brainium AI Studio app
To get started, the glove wearer draws a pattern above the screen attached to the Raspberry Pi to unlock it and wake up all the controller nodes.
The light controller node is turned on by drawing a clockwise circle, and turned off with an counter-clockwise circle.
The fan is turned on and off in the same way, and you can increase the fan’s speed by moving your hand upwards and reduce the speed by moving your hand down. You know it’s working by the look of the fan’s LEDs: they blinker faster as the fan speeds up.
Make a pushing motion in the air above the car to make it move forward, and you can also make it turn and reverse.
If you wear the glove while driving, it collects data in real time and logs it on the Brainium cloud so you can review your driving style.
When we think back to our school days, we can all recall that one teacher who inspired us, believed in us, and made all the difference to how we approached a particular subject. It was someone we maybe took for granted at the time and so we only realised (much) later how amazing they were.
I hope this post makes you think of a teacher or mentor who has made a key difference in your life!
Here computer science student Jonathan Alderson and our team’s Ben Garside talk to me about how Ben supported and inspired Jonathan in his computer science classroom.
Hi Jonathan! How did you get into computing?
Jonathan: My first memories of using a computer were playing 3D Pinball, Club Penguin, and old Disney games, so nothing productive there…or so I thought! I was always good at IT and Maths at school, and Computing seemed to be a cross between the two, so I thought it would be good.
Jonathan and Ben, can you remember your time working together? It’s been a while now!
Jonathan: I met Mr Garside at the start of sixth form. Our school didn’t have a computer science course, so a few of us would walk between schools twice a week. Mr Garside really made me feel welcome in a place where I didn’t know anyone.
When learning computer science, it’s difficult to understand the importance of new concepts like recursion, classes, or linked lists when the examples are so small. Mr Garside’s teaching made me see the relevance of them and how they could fit into other projects; it’s easy to go a long time without using concepts because you don’t necessarily need them, even when it would make your life a lot easier.
Ben: It was a real pleasure to teach Jonathan. He stands out as being one of the most inquisitive students that I have taught. If something wasn’t clear to him, he’d certainly let me know and ask relevant questions so that he could fully understand. Jonathan was also constantly working on his own programming projects outside of lessons. During his A level, I remember him taking it upon himself to write a program that played chess. Each week he would demonstrate the progress he had made to the class. It was a perfect example of decomposition as he tackled the project in small sections and had a clear plan as to what he wanted to achieve. By the end of his project, not only did he have a program that played chess, but it was capable of playing against real online users including making the mouse clicks on the screen!
Moving from procedural to object-oriented programming (OOP) can be a sticking point for a lot of learners, and I remember Jonathan finding this difficult at first. I think what helped Jonathan in particular was getting him to understand that this wasn’t as new a concept as he first thought. OOP was just a different paradigm where he could still apply all of the coding structures that he was already confident in using.
That sounds like a very cool project. What other projects did you make, Jonathan? And how did Ben help you?
Jonathan: My final-year project, [a video game] called Vector Venture, ended up becoming quite a mammoth task! I didn’t really have a clue about organising large projects, what an IDE was, or you could split files apart. Mr Garside helped me spend enough time on the final report and get things finished. He was very supportive of me releasing the game and got me a chance to speak at the Python North East group, which was a great opportunity.
Ben: Vector Venture was a very ambitious project that Jonathan undertook, but I think by then he had learned a lot about how to tackle a project of that size from previous projects such as the chess program. The key to his success was that whilst he was learning, he was picking projects to undertake that he had a genuine interest in and enjoyed developing. I would also tell my A level students to pick as a project something that they will enjoy developing. Jonathan clearly enjoyed developing games, but I also had students who picked projects to develop programs that would solve problems. For example, one of my students developed a system that would take online bookings for food orders and manage table allocation for a local restaurant.
I think that point about having fun while learning something challenging like programming is really important to highlight. So what are you doing now, Jonathan?
Jonathan: I have just completed my undergraduate degree at the University of Leeds (UoL) with a place on the Dean’s List and am staying to complete a Masters in High Performance Graphics.
During my time at UoL, I’ve had three summer placements creating medical applications and new systems for the university. This helped me understand the social benefits of computer science; it was great to work on something that is now benefitting so many people. My dissertation was on music visualisation, mapping instrument attributes of a currently playing song to control parameters inside sharers on the GPU to produce reactive visualisations. I’ve just completed an OpenGL project to create procedural underwater scenes, with realistic lighting, reflections, and fish simulations. I’m now really looking forward to completing my Game Engine project for my masters and graduating.
Teachers are often brilliant at taking something complicated and presenting it in a clearer way. Are those moments of clarity part of what motivates you to teach, Ben?
Ben: There are lots of things that excite me about teaching computer science. Before I worked for the Raspberry Pi Foundation, there was a phrase I heard Carrie Anne Philbin say when I attended a Picademy: we are teaching young people to be digital makers, logical thinkers, and problem solvers, not just to be consumers of technology. I felt this really summed up how great it is to teach our subject. Teaching computer science means that we’re educating young people about the world around them and how technology plays its part in their lives. By doing this, we are empowering them to solve problems and to make educated choices about how they use technology.
As for my previous in-school experiences, I loved those lightbulb moments when something suddenly made sense to a student and a loud “Yesssss!” would break the silence of a quietly focused classroom. I loved teaching something that regularly sparked their imaginations; give them a single lesson on programming, and they would start to ask questions like: “Now I’ve made it do that…does this mean I could make it do this next?“. It wasn’t uncommon for students to want to do more outside of the classroom that wasn’t a homework activity. That, for me, was the ultimate win!
How about you?
Who was the teacher who helped shape your future when you were at school? Tell us about them in the comments below.
Design Engineering student Ben Cobley has created a Raspberry Pi–powered sous-chef that automates the easier pan-cooking tasks so the head chef can focus on culinary creativity.
Ben named his invention OnionBot, as the idea came to him when looking for an automated way to perfectly soften onions in a pan while he got on with the rest of his dish. I have yet to manage to retrieve onions from the pan before they blacken so… *need*.
Ben’s affordable solution is much better suited to home cooking than the big, expensive robotic arms used in industry. Using our tiny computer also allowed Ben to create something that fits on a kitchen counter.
What can OnionBot do?
Tells you on-screen when it is time to advance to the next stage of a recipe
Autonomously controls the pan temperature using PID feedback control
Detects when the pan is close to boiling over and automatically turns down the heat
Reminds you if you haven’t stirred the pan in a while
How does it work?
A thermal sensor array suspended above the stove detects the pan temperature, and the Raspberry Pi Camera Module helps track the cooking progress. A servo motor controls the dial on the induction stove.
No machine learning expertise was required to train an image classifier, running on Raspberry Pi, for Ben’s robotic creation; you’ll see in the video that the classifier is a really simple drag-and-drop affair.
Ben has only taught his sous-chef one pasta dish so far, and we admire his dedication to carbs.
Ben built a control panel for labelling training images in real time and added labels at key recipe milestones while he cooked under the camera’s eye. This process required 500–1000 images per milestone, so Ben made a LOT of pasta while training his robotic sous-chef’s image classifier.
Ben open-sourced this project so you can collaborate to suggest improvements or teach your own robot sous-chef some more dishes. Here’s OnionBot on GitHub.
This app note from ON Semiconductors linked here (PDF)
System designers must account for voltage surges that occur when supplies or loads are connected. eFuses are integrated circuits with many features to protect loads from these surges. However, it is important to ensure that the eFuse itself will not receive excessive voltage on its input. This application note uses mathematical calculations, simulations, and actual lab data to illustrate the voltage surge as an eFuse is suddenly connected on the input side. System designers can use this information to make certain that the eFuse will be within its limits.
App note from ON Semiconductors on ways to dissipate thermals or reduce junction temperature of HVIC. Link here (PDF)
Gate drivers used to switch MOSFETs and IGBTs at high frequencies can dissipate significant amount of power depending on the operating conditions. It is important to determine the driver power dissipation and the resulting junction temperature in the application to ensure that the part is operating within acceptable temperature limits.
We’re pleased to share that Dr Sue Sentance, our Chief Learning Officer, is receiving a Suffrage Science award for Mathematics and Computing today.
The Suffrage Science award scheme celebrates women in science. Sue is being recognised for her achievements in computer science and computing education research, and for her work promoting computing to the next generation.
Sue is an experienced teacher and teacher educator with an academic background in artificial intelligence, computer science, and education. She has made a substantial contribution to research in computing education in school over the last ten years, publishing widely on the teaching of programming, teacher professional development, physical computing, and curriculum change. In 2017 Sue received the BERA Public Engagement and Impact Award for her services to computing education. Part of Sue’s role at the Raspberry Pi Foundation is leading our Gender Balance in Computing research programme, which investigates ways to increase the number of girls and young women taking up computing at school level.
As Dr Hannah Dee, the previous award recipient who nominated Sue, says: “[…] The work she does is important — researchers need to look at what happens in schools, particularly when we consider gender. Girls are put off computing long before they get to universities, and an understanding of how children learn about computing and the ways in which we can support girls in tech is going to be vital to reverse this trend.”
Sue says, “I’m delighted and honoured that Hannah nominated me for this award, and to share this honour with other women also dedicated to furthering the fields of mathematics, computing, life sciences, and engineering. It’s been great to see research around computing in school start to gather pace (and also rigour) around the world over the last few years, and to play a part in that. There is still so much to do — many countries have now introduced computing or computer science into their school curricula as a mandatory subject, and we need to understand better how to make the subject fully accessible to all, and to inspire and motivate the next generation.”
Aside from her role in the Gender Balance in Computing research programme, Sue has led our work as part of the consortium behind the National Centre for Computing Education and is now our senior adviser on computing subject knowledge, pedagogy, and the Foundation’s computing education research projects. Sue also leads the programme of our ongoing computing education research seminar series, where academics and educators from all over the world come together online to hear about and discuss some of the latest work in the field.
Privacidad y cookies: este sitio utiliza cookies. Al continuar utilizando esta web, aceptas su uso.
Para obtener más información, incluido cómo controlar las cookies, consulta aquí:
Política de cookies