7 – Early Prototype and Decided Product Direction

Back to school after our Christmas break and I have just realised that I have not updated this in a while.

I have decided to take my product in a new direction. Originally I was planning to make a game to teach programming to young children, however now I have decided to create a more realistic environment. Instead of a Scratch like interface where the children play with a GUI to manipulate the Raspberry Pi, I have decided that I will allow the children to program using typing instead. The aim is thus to create a very friendly environment, with an intuitive API to allow the children to manipulate the Pi by typing actual code.

I have begun to create the API, however it is still at a very basic stage. I have basically grouped up lines of code to set up the hardware into a simple Setup() function to hide the complex looking code that is required to begin the programming. There are then simple functions to interact with the hardware such as TurnOnLED(ledName) where ledName is a string which is forced into lower case to prevent errors and then checked and compared to strings identifying each component on the board. There are similar functions to turn them off, and interact with the buzzer and switch.

These functions hide the complex code and instead allow the children to program using only function calls, which they will be able to use along with control statements to manipulate the hardware how the like.

There are still many problems to iron out however such as a better looking GUI, friendly feedback to the user so that they know where they have gone wrong instead of exposing them to complicated compiler errors. I also still need to add more functionality to the API to make it as intuitive as possible and help deal with errors better.

Currently the program works by writing what is typed into the text box to another file and then running that file as a python script outside of the program, which in turn interacts with the hardware. There are several problems with this which I will have to deal with in the future such as getting possible errors from the external file when it is ran and passing them back to the GUI to display, getting the API headers to be automatically wrote into the external file so that the children to not have to include the API themselves, and returning correct line numbers based on the code they have written, and the code in the external file with all of the headers in etc.

Below is a picture of the very basic GUI that I currently have:

Image

The “Save” button saves the text to the file and the “Run” button runs the file as a python script. I intend to get rid of both of these buttons in the future however and have a single “Compile” or “Run” button which does both of these. You will notice that I wrote the strings for the LEDs in an incorrect way, and you will see on the photo of the Raspberry Pi below that when the run button is pressed, thanks to forcing the entire string into lower case, that it still works fine:

Image

6 – Meeting with Mrs Holian, the ICT coordinator for Bracken Hill Primary School

The idea that I have for my product is to create a program which would provide a friendly interface for children to be able to program separate pieces of hardware attached to the Raspberry Pi such as LEDs and motors using programming concepts such as for and while loops, if statements etc. If the hardware manipulation option does not prove to be viable, then I will attempt to create a virtual representation and allow manipulation of objects on the screen.

I explained the concept of the idea that I have for my product to Mrs Holian and she said that it could possibly be a good idea to use as a teaching method of programming.

She explained similar activities that the children take part in through school, such as making the light shine at the top of a lighthouse using basic circuitry. She believes that the children should be able to put together pieces of circuit to build their own controllable breadboards to attach to the Raspberry Pi so that they can manipulate them. This supports the idea for the hardware option, however it will still have to be researched more to see if it is possible to create a program which will allow the children to control hem easily.

Mrs Holian supported my design choice of iterative development and agreed to allow for multiple testing periods on groups of children. She suggested using small groups of around 12 children of mixed abilities to be able to use the product for roughly 30 minutes at a time. This will allow me to get feedback, redesign poor parts and create a new product several times to refine the product over time. We have decided that we will start doing this at roughly the end of January, in order to allow me enough time to build the first prototype.

We discussed the possibility of training staff how to use the product beforehand. She said this would be a good idea, and that there are several periods of professional development which are not being used after Christmas which could be used for this purpose. It is going to be discussed with the head teacher at a later date which members of staff will take part in this training.

The staff currently have little to no knowledge in programming or a Linux environment. I hope to get around the latter problem by forcing the program to start, full screen as the Raspberry Pi boots. This should take away having to use a Linux interface and should hopefully make it more accessible to use. Mrs Holian agreed with this.

We discussed ethics and he teaching of the material to the children. She said that often children who have difficulty in language or communication are often paired up with children who can perform these skills very well. This should aid getting around a child completely not understanding what is happening with the program. Assessment and teaching will be done by the members of staff that are in the room at the time. They are used to walking around and observing the children’s abilities by seeing what they can do and what they are struggling with. This means that my program does not necessarily have to teach the children, but instead provide an engaging learning environment which can be used for the staff to assess the children.

We talked about the issue of cross-curricular education. She mentioned that children are often taught using themes and concepts as they go through school. An example would be taking them to an automated bridge and then discussing if someone has to be here all the time to operate it, or if a program could be used to do it automatically. This is done over just pure literacy or numeracy concept integration into ICT.

We are going to keep in touch, and she is going to ask the advice of several members of staff from other schools about the use and decisions to acquire Raspberry Pi machines for their schools. She should get back to me with this information in the near future.

5 – School Visit

I visited the school which I am working with yesterday afternoon and it has opened my eyes to many new problems which I had not considered before today.
There are so many ethical complications that I have found that will affect the product that I am going to develop. These problems mainly seem to come from the fact that it is an inner city school, as opposed to the quiet village school where I grew up. The school has a wide variety of children who come in from different countries for varying lengths of time. A lot of these children do not speak English as a first language, and sometimes not at all, and they all have different competency at using computers depending on their upbringing or the country that they have come from.

These ethical points bring up several complications which will have to be addressed in the creation of my product. These include:

  • Language barriers. I will have to consider alternative methods rather than a pure text based approach. Pictures and perhaps sounds that are associated with important words should be used throughout the product to help children with lesser understanding of English to use it effectively.
  • Religion. According to the Head Teacher, there is at least 1 child from every major religion in the world who attends the school. I will have to take this into consideration and make sure that none of the material in the game is offensive to any of the children’s beliefs.
  • Level of education. I found when I was there that classrooms were full of children the same age, however they were all learning at different levels. This being mainly because they have all had different upbringings and come from different countries which may be more or less educationally stable than the UK. This means that I should not focus my product on a specific age group like I originally intended to do, and instead should either focus on all levels of ability, or a specific level of ability.

Whilst there I had also talked to the technician of the school. He advised me to be cautious with the introduction of new technology which is unfamiliar to the staff of the school. Staff generally shy away from technology they do not completely understand, and would end up not using it to its full potential in their teaching. If I am going to use something like the Raspberry Pi, then I would have to take the teachers into consideration more than I originally intended to, and provide training and support for it, as well as the product itself, if I want it to be taken seriously.

A lot of the children were using computers and devices individually around the school. There were all doing different things, and were pretty much completely immersed in what they were doing. I was told by several people that the children love technology, particularly the boys, and are immersed in everything as long as it has the gimmick of using a computer. I was advised to focus on ease of use over making it as pretty and graphical as possible, and the children should just dive in and enjoy what they are doing as long as there is plenty to do and they get reward for doing it. One particular girl that I was watching was playing a game where she got diamond-like things for completing a game, and got more or less depending on how well she did. She was really enjoying herself when she got a lot of them, and did not seem too displeased when she only got a few. I have no idea what these diamond things did however they looked to be some sort of currency or score.

The school does not have any form of dedicated ICT suite. Not one that I was imagining with enough computers for an entire class to sit in and all work at the same time. They have a classroom with a few computers, a suite of laptops and an iBoard, which is basically a massive touch screen monitor at the front of the class. This is still great, as it allows a lot of the children to use computers and it gives them interactivity with the iBoard, however it is not what I imagined, where the children all sit down and partake in a dedicated ICT lesson at specific times. I was planning on dedicated lessons in the design of my product, however I will now have to take this into consideration.

The Raspberry Pi looks as though it may be a bad platform to aim this product for. The school does not really have any spare monitors that they could just set up to use the Pi with, and it could end up being an expensive solution just to incorporate the Pi instead of just developing it for the PC, which they have many of.

I have considered looking into Lego Mindstorm at the advice of their IT technician. They already have this technology available to them, and it would allow me to find real world application to the programs that children create, assuming of course that it is easy enough to set up a program which interacts with the Lego. This would allow possibly for use of the program across many skills and ages as well. The older, more capable pupils could build and program the robots, and the younger, reception pupils could then use the robots, and tell them what to do with the older pupils work.

One possible solution that was In the back of my mind was a virtual, online environment for the children to use, which would also allow for them to access it at home over the internet. However after seeing the school’s results of how many of the pupils have access to the internet at home, I believe that this is probably not going to be a solution which would be worth doing as it could not be utilized to its full potential. I will put the details of their results into my report.

I currently have the portfolio for the ICT curriculum, and I am looking through it to find skills that the children develop which could be used in the application of programming. There seems to be 8 core skills to the ICT curriculum, and several of them such as Control, and Data Manipulation have certain skills used in programming, but used in different ways, such as operators for searching databases, and skills in refining searches to get information that is the most relevant to what they are looking for. I should be able to go into this in more detail once I have fully reviewed the file.

4 – Scratch and New Possibilities?

I have spent some time looking at Scratch a web based programming tool that aims to teach young children how to program using a Graphical User Interface and a drag and drop system to build up various parts of a program and allow compilation straight away for instant graphical results.

Every school I have talked to has mentioned that they have this available to them, however they have no idea how to use it. I thought I would take a look as see what all of the fuss was about, and I was extremely impressed by what I found.

Scratch is incredibly simple, but allows you to build quite complex programs without having to deal with complicated syntax or conventions as they are all there presented to you in a graphical way in the form of “Blocks”. These blocks contain various programming standards such as if statements, while loops, for loops and variables for certain simple things such as position and size. It also allows you to create your own variables which can be easily incorporated into your program. These blocks are then snapped together to create a procedural program, and then can be compiled instantly to see the results of your program.

I find this is an incredible way to learn programming, and I would like to do something similar for my product. The source code of Scratch is available to read, however it is quite difficult to follow, and I think that it maybe be a little complex to complete within the scope of this project. However the idea is something that could be incorporated into some other type of game.

On this note, after speaking with the head teacher of the school I am using in this project, she mentioned that Control Technology is a big problem that a lot of primary school’s face. Control Technology is basically issuing commands to a “turtle” which then moves as you have programmed it to, sometimes holding a “pen” to draw the path it has taken as it moves. Scratch does provide something similar to this, and it could be implemented as a game idea which could teach basic programming alongside the idea of Control Technology, which would allow for a little bit of cross curricular learning, and seems to be a very important concept that schools like.

Instead of that however, it could also be possible to create an interface which will allow children to control various parts of a Raspberry Pi such as motors and lights, to create a similar learning experience, but with a real life turtle which can move around the room or on top of a desk. This could possibly be a more exciting alternative for children to engage with, and could utilize a similar Graphical User Interface to Scratch for programming the robot.

There is a way to allow Scratch and the Raspberry Pi to communicate, based on the work of cymplecy. He wrote a program (source code available) which allows the device and Scratch to communicate, and allow for simple drag and drop code to be created to control various parts of the device. His code is a little difficult to understand, however it may be possible to do it another way, not using Scratch, or to implement his code within the project somehow.

3 – Playing Games for Research

I have spent some time in the past weeks playing various educational games to get a feel for how they are designed, and hopefully come away with some ideas about how to design games aimed at young children.

I have mainly spent my time looking around the BBCs selection of learning resources and games. http://www.bbc.co.uk/schools/games/ they seem to be one of the best places to go for free educational games and are generally used by schools all over the country.

All of these games look extremely simple in design. They are not very graphical, and have no complexity about them, however they still manage to captivate children and help them learn their chosen subjects without them feeling as if they are doing hard work. Every part of the game is interactive, if there are words involved the game does not ask the children to type them out, it provides an interface which allows for drag and drop, or clicking various pictures which represent the words. This allows the children to feel as if they are playing a normal game, the interactivity keeps their mind stimulated and avoids the tedium of typing long sentences or simply writing in answers like they would do if they were working on questions on paper.

Reward also seems to be a big part of the games. If the player gets something correct, they are usually treated to an animation, or one of the game’s characters popping up and giving them simple words of praise which encourages them to continue playing, as well as making them feel good for learning and figuring out the correct answer. If the player gets the wrong answer, the game generally does not respond more than just making the clicked object flash and allowing the player to try again indefinitely. While it is possible that nothing will be learned since you could just press every answer without thinking until you get the correct answer and move on, it also makes the games less demanding, and aggressive.

From this research I have gathered that my game does not have to be extremely graphical to create emersion and provide reward. These current games manage to do that in different and arguably more effective ways, which would be more suited to me as I am not a very good artist.

2 – Prior to the Blog

Prior to starting this blog I have completed the proposal for my project which has outlined various topics which will need to be researched in order to create a successful artefact for the project.

I have not yet done much reseach, however I have prepared several important factors which need to be addressed to aid the reseach and development of the project. So far I have begun learning the Python programming language, as this is the language which I intend to use to create the product. I have never used this language before, however it seems quite simple to grasp. I have mainly been working on the syntax of the language as well as finding external libraries which could possibly be used in the product, specifically for Graphical User Interface design.

I have also been showing my project idea to multiple primary schools in the local area to try and gather interest in my project and find a school which is willing to allow me to carry my research out there. I have finally found an ideal school which is within walking distance of the University and has ties to members of staff who have taught me in the past. The head teacher seems interested, and has suggested several other problems which their school has which could be incorperated into the design of my product.

Preparations have been done to acquire the hardware which is needed for this project. I have asked the university for access to a Raspberry Pi, which is what I hope to develop my game for, unless the school decides that it is better on another platform when I carry out my research.

1 – Beginning of the Journey

My name is Nathan Hendry. I am curently studying the third year of my BSc Computer Games Programming degree at Teesside University.

I will use this space to blog about the progress of my Final Year Project entitled “Addressing the Impact of Curriculum Changes in the Delivery of Computing in Schools”.