Our coding Journey with Bit and Byte (our school robots)

Isabelle, Lauren, Olivia and Homare (the WHS Social Robots team) describe how they are working on using the school’s social robots Bit and Byte as reading buddies in the Junior School, and update us on the progress made so far. 

We are the Social Robots team, and we would love to present our project, which is robot reading buddies, to you. This club started in 2018 and we work with the 2 robots which we have at school. Since then, we have taken part in competitions (such as the Institut de Francais’ Night of Ideas competition[1] – which we won!) and other projects and challenges within the school. Currently, we have been working on how we could use these robots in the Junior School to help encourage reading practise.

What we want to achieve and how

At Wimbledon High School we are lucky enough to have two Miro-E robots. They are social robots meaning they can react to touch, noise and other actions due to the sensors and cameras that they have. We can then code the robots into changing colours, wagging its tail, pricking up its ears and many other possibilities! The Miro-E robots are designed to mimic a pet.  But we are not the only one’s coding Miro-E robots for a social cause: they are also used for the elderly to combat loneliness.[2] We hope they will have a similar calming effect on children.

We all know how important it is to learn how to read since it broadens knowledge and vocabulary, as well as opening doors for future learning; therefore, we want to include the Miro-E robots in the Junior School as reading buddies. In addition, reading improves presentation skills and develops confidence and independence. Enjoying reading from an early age will help to support these skills.

To encourage this crucial development in the child’s life, we believe that it is vital to make those learning to read feel comfortable and stimulated. As a social robotics team, we realised that one way to achieve this was by creating a robot reading buddy that helps young children at school to practise reading whilst also being motivated by a cute robot dog (cat, kangaroo, cow, bunny, or whatever animals you think the robots resemble)! If we can compel children to read with our social robots, as well as to teachers or parents, this might change the amount they read or the difficulty of the books they attempt; therefore increasing the speed of reading development, as it is encouraging in a non-judgmental environment.

Our research about reading buddies

Research has shown that it is beneficial for children who are learning to read to have a companion who just listens, rather than correcting them, as we know that reading can be a challenging and sometimes daunting experience for some students. Of course, it is equally important for a teacher to help the child when reading and correcting them so that they can learn and improve. But we also think it is crucial for children to enjoy the reading experience, so that they have the motivation to keep learning.

Therefore, Miro-E robots are perfect for this job as they can help find the balance between learning to read, and practising to read. Also, we can code the robot to adapt to the situation and make the reading experience the best it can be. As we have 2 of these robots at the school, it will also enable the Junior Staff to have multiple reading sessions at once. Finally, as we mentioned, the robots can react with sounds, movement, and lights which we are hoping will engage the students and keep the experience enjoyable. 

While researching, we did also find many studies and papers regarding the effects of animals such as dogs on learning. However, we found little about robotics and coding to achieve the task we set out to complete, making it no mean feat. As school-aged children ourselves, what we are trying to do is pioneering and exciting but also has its challenges. We look forward to introducing Bit and Byte to the Junior pupils and inspiring them to get involved, not only with reading but also to get them excited about robotics and coding! 

Our progress so far

We have been working on this project since the start of 2021, and we have been focussing on research, as well as some coding. At first, we had a discussion with some Junior School pupils, and we sent a survey to parents to see what their top priorities would be for the reading buddy and what their opinions were. We find it really important that the users of the robot reading buddy can contribute their ideas and opinions so that the reading buddies are as beneficial for them as possible. 

An example of these results is that both the students and the parents wanted the robot to guide the child through nodding. Because of this, we set up 5 key stages of the reading process, with different coding programs (and therefore different emotions and actions shown in the robot) for each. We have coded these 5 key stages separately already. These stages are: 

  1. Starting to read, so when the students have just started their reading session or when they continue after a break. We have coded this to have an excited emotion, through tilting the head up towards the child, for example.
  2. While reading, so while the robot can detect someone speaking through the microphone. We have coded this to have a motivational emotion, through slow nods and opening the angle of the ears.
  3. A pause in reading, so when the robot is unable to detect someone reading for a fixed amount of time (for example, 10 seconds). We have coded this to have a questioning emotion, such as with a tilting head position. 
  4. Session finish, which is when the teacher says that the reading session is over. This could be a fixed time (for example, after exactly 10 minutes) or a different action which the robot could sense. We have coded this to have a celebrating emotion, such as moving in a circle.
  5. Early finish, which is when the student decides to stop their reading session before the finishing time. We are still thinking about how the robot could sense this: either if no sound has been heard for over a minute, for example, or if the student does a specific action, such as clapping three times. We have coded this to have a sad emotion, with the robot looking down and the tail not wagging any more. Here is the example code of this:

Social Robots as Reading Buddies sample code

Throughout all these stages, we have also made use of the lights on the robots to portray what stage the students are on.  This will allow the teachers to see the same.

We have learnt a lot in the project so far. For example, through the opportunity to talk with the younger students, we practised gathering data interactively, and how we can use this information. We also learnt a lot of new skills through our research, such as how we can receive papers from the writers and how we can use these effectively. Finally, we have experimented lots through coding by finding out how we can use the new functions in the miro2 library, as well as how we could use different libraries to overcome challenges such as not having a function to sense consistent sound, such as someone reading.

Our next steps

Our next steps for next year and beyond are to successfully complete the coding of this project and run a test with students in the Junior School, before finalising the code to make the robot reading buddy as effective as it can be. There are still a lot of problems that we need to solve for us to code the program successfully.

A key problem that we are facing now is that our robot currently cannot distinguish between a human voice (which can be constant) and a machine whirring away in the background. This is because the robot can only “hear” the difference between fluctuating noises and constant noises. There are many factors that contribute to this problem that we still need to test. Is it because the microphone is not good enough? Is it simply that the communication between the laptop, robot and lights is too slow for the robot to reflect what it is hearing? And how could we adapt our code to work with this? 

It is problems like these which slow down the coding process. For example, there were times where the program would not send to the robot, which we struggled to fix for weeks. Or smaller problems, such as when I thought the program was not running but it was simply that the movements on the simulator that I had coded were not big enough for me to notice the impact of my code.

When all our coding works for each of the 5 stages, we are going to link this all into one bigger program, which will decide which stage the reader is at. For example, if no reading has been detected for x seconds, then the robot may go into the “pause” phase. We will need to experiment to see what timings suit these decisions best. While we continue to develop the coding, we will also need to constantly test and receive more feedback to improve. For example, how could we find the balance between distractions and interactions? 

As you can tell, we have made progress, but we also have lots to do. We will continue to try to find effective solutions to the problems that we may encounter.

Reflection

We have all thoroughly enjoyed this project, and we also think that it has, and will continue to, help us build up several skills. For example, we have learnt to collaborate well as a team, being able to work both independently and with others. However, as previously mentioned we have encountered many challenges, and in these cases perseverance is key. Finally, we appreciate the project because it has been really rewarding and lots of fun to work with the robot and see our progress visually. 


However, we cannot do this project alone. As mentioned, we know it is vital that we receive feedback and act on it. This is why we would also really appreciate any feedback or suggestions that you may have for us! Feel free to complete this form with any comments: https://forms.office.com/r/3yNJZEHBfy. Thank you so much!


[1] Our video entry for Night of Ideas 2020: https://youtu.be/RlbzqTKAOTc

[2] Details about using Miro-E robots to combat loneliness for the elderly: https://www.miro-e.com/blog/2020/4/14/the-isolation-pandemic

What is a random number and what is the random number generator?

Dice

Sungmin in Year 13 looks at random numbers, explaining what they are and how they are relevant to our lives – from encrypted passwords to how games are programmed.

Random number in real life

As public and private data networks proliferate, it becomes increasingly important to protect the privacy of information. Having a random number is one of the steps which can become a core component of the computer to increase the security of the system platform. Random numbers are important for other things – computer games, for example. Random numbers will ensure there are different consequences after making different decisions during a game. The results will always be different because the given input is different. At an arcade, there are many games that rely on randomness. Falling objects fall in different patterns so that no one can anticipate when to catch the object. Otherwise, some people will be able to calculate how an object will fall and the game will no longer be loved by the people visiting arcades. It is interesting that we get some randomness as such.

The examples such as the falling object and computer games both require random numbers in order to be unique. For those games and many other situations that require randomness, private data must be encrypted. To do so, a true random number plays such a significant role and must be used. On the other hand, when we are programming games, both true random number and pseudo-random numbers can be used. As you might have noticed already, there are two types of random numbers. Random numbers are separated depending on how they are generated. One is the true/real random number and the other is the pseudo-random number.

Definitions of ‘random number’

There are several different ways to define the term, ‘random number’. First of all, it is a number which is generated for, or part of, a set exhibiting statistical randomness. Statistical randomness is a characteristic where a numeric sequence is said to be statistically random when it contains no recognisable patterns or regularities.

Secondly, a random number can be defined as a random sequence that is obtained from a stochastic process. A stochastic or random process can be defined as “a collection of random variables that is indexed by some mathematical set, meaning that each random variable of the stochastic process is uniquely associated with an element in the set.”  Moreover, a random number is an algorithmically random sequence in algorithmic information theory. An algorithm is a “process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer”. Also, the sequence which is algorithmically random can be explained as an infinite sequence of binary digits that appears random to any algorithm. The notion can be applied analogously to sequences of any finite alphabet (e.g. decimal digits).

Random sequences are the key object of study in algorithmic information theory. Algorithmic information theory is a merger of information theory and computer science that concerns itself with the relationship between computation and information of computably generated objects, such as strings or any other data structure. Random numbers can also be described as the outputs of the random number generator. In cryptography we define a random number through a slightly different method. We say that the random number is “the art and science of keeping messages secure”.

Different types of random number generators

1:

  • True random number generator (TRNG)
  • Hardware true random number generator (HRNG)

2:

  • Pseudo-random number generator (PRNG)
  • Linear Congruential Generator
  • Random number generator in C++

The major difference between pseudo-random number generators (PRNGs) and true random number generators (TRNGs) is easier to understand if you compare and contrast computer-generated random numbers to rolls of a dice. Since the pseudo-random number generator generates random numbers by using mathematical formulae or precalculated lists akin to someone rolling a dice multiple times and writing down all the outcomes, whenever you ask for a random number, you get the next roll of the dice on the list. This means that there are limitless results produced from the list. Effectively, the numbers appear random, but they are in fact predetermined. True random number generators work by “getting a computer to actually roll the dice — or, more commonly, use some other physical phenomenon that is easier to connect to a computer than is a dice”

Comparisons of PRNGs and TRNGs

As you go about your day today, consider how random numbers are being used to support your daily activities – from the passwords we use, the apps we run on our phones, and the devices and programmes we engage with. Maths is all around us.

How does Computer Science equip us for life?

Mr Ian Richardson, Head of Computer Science at WHS, examines the broader transferrable skills that pupils can develop in the subject, and how these can help pupils to prosper in life away from the screen.

Computer Science is a unique subject which is developing at an incredibly rapid pace. In many conversations with parents, it seems that everyone grasps the importance of understanding how computers work and of being able to bend them to our will. However, since the change from the Information and Communication Technology syllabi, a number of parents and colleagues are still unsure as to what it is we, as Computer Scientists, do in our classrooms.

The simple principle is that our pupils should be able to sit down at a computer and be presented with a problem. They should be able to start from nothing but a blank page and then design, implement, test and evaluate a program which solves that problem. The scale of the challenge is significant, whether at A Level or Year 7. The little victories and celebrations along the way are what get students into coding and make teaching the subject so enjoyable. In this article, I am going to look at what I think are the key transferrable skills for the subject.

Coding
Above: From Gov.uk

The Essential “Tools” for Computing

The curriculum for the subject is designed to promote thinking skills and metacognition. The first key skill with which pupils become acquainted is abstraction. A simple everyday example of abstraction at work is the map of the London Underground; the map does not depict the geographical placement of stations, but simply the connections between them. Abstraction is the skill of seeing the woods, despite the many trees that could obscure the view. By teaching our pupils the skill of abstraction, we can teach them to think beyond the details of a problem and to think about the patterns and the connections which in turn teaches them to make generalisations to help solve a problem.

Next comes decomposition; breaking a large problem down into increasingly smaller sub-problems until they can be solved easily. It is instinctive for most pupils, when presented with a problem, to worry about the entirety of it. It takes practice to learn to develop a structure, to work out the key parts of a solution and to build from there. Students learn to “Divide and Conquer” for success and this approach can help students to solve problems in any future learning tasks which require design skills.

Finally comes the programming itself. It can seem that there are simply huge numbers of confusing commands to learn within programming. However, it is the structure of the program which is of the greatest importance and in this respect there are relatively few things to learn. As a student continues, they may become familiar with subroutines, classes and modules but on the whole, it boils down to sequence, selection, iteration. Individual commands and keywords can be looked up in reference books, but the skill of structuring program takes time and practice to develop. It takes time to master (think Anders Ericsson and 10,000 hours) but encourages pupils to approach problems methodically.

As well as those all-important subject skills, Computer Science has the capacity to help us grow and develop as individuals.

Failure as a Stepping Stone to Success

Coding is a discipline which gives us unparalleled opportunities to conquer our fear of failure. It is often estimated that the industry average for errors is “about 15 – 50 errors per 1000 lines of delivered code.”[1]. It can be daunting to receive error messages when you first start to learn to program and it seems like you struggle to type a single line without making a mistake. Over time, pupils can learn to:

1 – Accept that they have made a mistake

2 – Accept that they have the capacity to put it right

3 – Analyse their own work to find the error (often as simple as a missing parenthesis or extra space)

Exposure to lots of low-stakes risk-bearing situations through programming and debugging can teach resilience, independence and curiosity. It also helps to develop patience and a sense of humour can go a long way too.

Creativity and Curiosity

Computing can be easily overlooked when thinking about creative subjects. Computer programmers use the tools at their disposal to solve challenges every day. Successful computing students learn to master the simple techniques at their disposal and begin to apply them in new scenarios. Over time, they start to think up their own projects and to investigate their own ideas. Perhaps they start to see ways in which a project in another subject might be enhanced with some automation.

Flow

Programming can become an all-encompassing activity. There is always one more bug to fix, or one further improvement to make. Along the way, there are also small moments of joy and times when a pupil can make a computer do something fun or exciting. Between the two extremes of frustration and celebration, it is easy to lose track of time. The ability to focus on details and to deliver with precision are yet more useful skills that pupils can develop through the subject.

Independence

Whilst the theory aspects of the subject can be taught in a more traditional manner, the practical elements of Computer Science have to be learned rather than taught. Whilst individual students require more or less scaffolding to come to an answer, the PRIMM model for teaching (Predict, Run, Investigate, Modify, Make)[2] encourages independence of thought and a structured approach to tasks and trains the student to analyse and learn from what is presented to them, rather than expecting a teacher to impart knowledge.

Evaluative Thinking

One of the key skills that pupils are taught in computing is to evaluate. It is one thing to know how to understand or to build a program, but quite another to be able to compare two different algorithms for completing the same task.

Pupils are taught to look at algorithms such as “Bubble Sort” and “Quicksort”, to understand the differences between them and to make judgements as to which is best in a given situation. As they continue to study, they learn formal language for explaining the comparisons, as well as how to spot patterns in code that may lead to inefficiency.

In addition, given the impact of algorithms on everything from advertising to politics via driverless cars, it is also crucial for students to be able to articulate the ethical arguments for and against the use of technology. Students of the subject learn to understand the potential and the limitations of computers and have the potential to lead the debate in the future.

Conclusion

There is more to studying Computer Science than people first think. Students can equip themselves with a whole host of transferrable skills ranging from abstraction to patience, all of which will positively impact their school studies, their further education and beyond. To assume that Computer Science is simply about computers would be wrong.


REFERENCES

[1] S. McConnell, Code Complete: A Practical Handbook of Software Construction, Microsoft Press, 2nd Edition June 2004, p521

[2] S. Sentence, J.Waite and M.Kallia, Teachers’ Experiences of using PRIMM to Teach Programming in School (Author Pre-Print),[website], January 2019, https://primming.files.wordpress.com/2019/01/pre_print_teachers__experiences_of_using_primm_to_teach_programming_in_school.pdf,  (accessed 31 January 2020)

Computer Science at Wimbledon High

Veerman Sajadah, Head of Computer Science, investigates how a change in governmental policy in 2012 impacted the teaching of ICT and Computer Science to current pupils.

2012 marked a major change in secondary education. The education secretary announced that the Information Communication Technology (ICT) curriculum must be scrapped in favour of computer science. While this change was seen as a step forward by many, the debate is still on as to whether our students are missing out on the previously skill based ICT curriculum. Consequently, GCSEs in ICT have now disappeared to make way for new Computer Science (CS) GCSE courses from all major exam boards and all schools have had to adapt. At WHS, students were introduced to CS in Year 7 in 2013. These students were the first cohort to study CS instead of ICT.

The differences between the two subjects have been more contrasting than I anticipated, given that some of the CS content was already being brought into the ICT curriculum. CS offers more challenging topics and the subject content is more specific compared to ICT. ICT topics were seen as more relevant by students not aspiring to pursue a career in technology. If a student wanted to be a historian or lawyer, they could still relate to ICT but when being taught CS topics and programming, they have found it less relevant to what they aim to do in the future.

With all exam boards offering courses in Computer Science rather than ICT, it was important to look closely at their respective specifications. As of date, different exam boards expect different topics to be covered in different depths at GCSE and at A Level. This has major implications on how to structure the KS3 curriculum so that students are ready to cope with the GCSE contents by the end of Year 9.

When we started teaching CS to Year 7 back in September 2013, our students were excited to learn a subject different from what the previous groups had studied. Indeed, CS was a much welcomed change for our girls. This group of students are now in Year 12. Four girls are currently studying the subject at A Level and are keen to study it at University. They are our most senior girls in the subject and the only group from WHS who have a GCSE in CS. Last year’s year 11 result in CS saw all 11 girls score a grade A or A*, (100% A*/A, 46% A*).

Unfortunately, like in many schools, after the first wave of keen Computer Scientist, the numbers of students opting for the subject has fallen. Several studies have been conducted both nationally and internationally to investigate why it has been hard to attract students to study CS. At WHS, we have taken on board these researches and have worked on a plan to address the challenges that we face. We have restructured our KS3 curriculum by introducing key challenging topics early with the aim of making students feel more comfortable and confident with the subject by the time they decide whether to continue studying CS at GCSE. I believe that one of the reasons ICT uptake at GCSE was higher than CS was because students were confident and comfortable with the ICT curriculum. The introduction of programming in early years is also very important to achieve this aim. However, it is not simple to teach complex concepts to children who are too young to learn them. Fortunately, the emergence of several pieces of “children friendly” software that allow students to learn programming through “blockly” has aided teachers incredibly. We are now able to introduce coding to students as early as Year 4. This will produce a generation of students keen and enthusiastic in CS.

On the other hand, there can be a risk of bringing challenging topics to the KS3 curriculum. Students can be put off the subject if they find it too hard. Hence, it is paramount to strike the right balance between “fun” lessons and relevant CS concepts. At WHS, we have brought various new fun activities into our KS3 curriculum. Girls are now able to use the micro:bit to program ringtones and LED strips in Year 7 (see image 1 below). They can create websites and web apps in Year 8 (see image 2 below) and they can use Minecraft and robots to enhance their programming skills in Year 9 (see image 3 below). The department also offers various extra-curricular clubs to engage the students. We are also working with our Scientists in Residence every week to reinforce knowledge learnt in the classroom.

Image 1: Year 7 have been using the micro:bit to program LED lights.

Image 2: Year 8 have been using appshed to create web apps.

Image 3: Year 9 learn how to program the picaxe 20X2 robot.

Our efforts towards promoting this new subject at WHS remain as strong as ever. We are continuously thinking of new ways to promote CS amongst the girls with a view to preparing them for their technological future. We also reach out to Universities such as Imperial College and work with them on projects that allow female students to come in and inspire our pupils. Being a Microsoft Showcase school, we are lucky to participate in events run by Microsoft and we are also looking at inviting experts to deliver talks on latest technologies and innovations in the world of CS. The future of the subject at WHS is bright and we are all ready to embrace it.

Research articles:

1.Computing or ICT: which would serve our pupils better?

https://www.theguardian.com/teacher-network/teacher-blog/2013/aug/12/computing-ict-curriculum-teaching-debate

2.Encouraging Girls to Participate in Computer Science

https://www.slideshare.net/kimarnold28/encouraging-girls-to-participate-in-computer-science-1-092014

3.School ICT to be replaced by computer science programme

http://www.bbc.co.uk/news/education-16493929

4.Women in Computer Science: Getting Involved in STEM

https://www.computerscience.org/resources/women-in-computer-science/

 

Twitter: @CS_IT_WHS