Wednesday, 8 July 2015

See the new JunkBot interface for Primary Education

Copyright Scott turner
The aim of the project is to give students in Primary Education an introduction to programming principles and basic programming language structure via physical feedback, in the shape of robotics. To do this, research and development into available methods currently available toke place, possibilities to do with JunkBot programming such as JunkBots using Scratch and other potential languages were explored and developed upon.


History of JunkBots


The JunkBot concept originally comes from the University of Northampton JunkBots Project[1]. The aim of the concept is to introduce the concept of Environmental Sustainability through the use of recycling “junk” to create the JunkBots and introduce computing and engineering to students. JunkBots were selected for this project due to several factors. Firstly, they are cost effective ways of delivering fun, creative ways of teaching computing and engineering principles to young students. JunkBots also have scope to be flexible, in terms of creativity and scope for more developments upon the existing concept. JunkBots vary in terms of design however all have the same factor in common; they are powered by a motor of some sort. The design does have an impact on the functionality of the bot, for example a robot with pens can draw whereas a robot that has an eraser attached to it can potentially rub out. The flexibility and creativity ties in with the project aims. 




Summary 


Copyright James Mitchell
The project overall flowed as one major project with sub-stages, these came in the form of Scratch, Python and the Blockly stage. Before these stages could be advanced onto, initial research and experimentation was carried out. The case study of existing projects, such as the JunkBot concept were investigated into. As the project was to be based around JunkBots and education, surveys were carried out in order to provide a base set of requirements and an understanding of what needed specifically to be developed. Once this was achieved, concepts and already existing developments with JunkBots were researched into. This involved Scratch, Raspberry Pi and JunkBots which led to the Scratch stage of the project. The author did not develop this stage, which meant that it was simply a base to work from. The findings from this section led on to the Python implementation due to its high level programming nature in a simple formed syntax, unlike other similar languages such as Java, C++. It was found during research and both experimentation of the Python language, that the language principles of Python and simple syntax structure are essential elements in an Educational environment, which showed that to be successful the project from that point needed to implement a similar Scratch-like concept, in the form of a graphical programming interface to be successful.


The Python implementation was primarily a stepping stone to achieving the
graphical programming interface element, as it would be used in conjunction with the final stage, Blockly to achieve the required specification and combine the findings from the Python Implementation with Scratch via Blockly. The findings from the Python implementation showed that on its own, being a completely code-based implementation and had no graphical programming meant that a combination between Blockly and Python was needed. The Python implementation itself was successful and led on to the final development stage of the project, Blockly.

Copyright James Mitchell

The Blockly stage involved utilizing the Blockly platform to implement the Python solution with both a graphical programming style and allow for the use of code unlike Scratch. This proved success, providing both a graphical programming interface which generated code based on the Block structure. This implementation adhered to the original requirements found via surveys and research initially, which were to provide Primary Education with a physical entity that could be programmed via a graphical interface in order to teach programming principles. The application also had to allow creativity for experimentation and logical/computational thinking. A key focus on both graphical and having a physical feedback element are the key points for a successful implementation. The findings of the Blockly stage were a success, as the implementation provided a fit for purpose product and also was found to adhere to relevant points of the Computing National Curriculum for both Key Stage 1 and 2 as set out in Section 1.2, National Curriculum Changes.

The Blockly application itself is considered by the author as a development rather than a finished product, which means the application can improve certain aspects. The main improvement that can now be fulfilled as the initial implementation is complete, is the creation of a standalone application to implement Blockly inside of. This is mainly due to accessing direct control of the JunkBot via the application rather than having to use the Raspberry Pi terminal to access Blockly generated code. This can be considered a weakness of the project at its current stage, similar to how the Python implementation was a stepping stone that led to the Blockly application. However, this can also be considered a strong point in regards to the transitional benefit in Education from Scratch based learning to Python. In its current state, the application allows the generation of code via Blocks which can power the JunkBot after placing the code into the appropriate place. This can potentially be taken further in an Educational setting by having activities starting with Scratch and leading up to the Python using Blockly to power the JunkBot and then potentially leading onto actual Python language programming rather than using Blockly. The benefit to this method would be the pupil gets to see the process gradually and gives a reason to write a program to power the JunkBot rather than just learning Python syntaxes. This can be combined with Syntax learning. This also makes the application beneficial between Key Stage 2 and 3 of Education, as the Python language is generally considered to be used more so in Key Stage 3 than Primary Education. This means the application potentially bridges Primary and Secondary Education programming teachings and could even be used at a higher level of Secondary Education.

In addition to a standalone application, further advancements into the development of Blocks to achieve a broader range of uses. This could range from motor control variations to other JunkBot control.

External sources towards the end of the project have had a major interest in the project, for example at a recent BCS Teaching Scholarship interview in Manchester, a recommendation by representatives of BCS stated that "I urge you to continue the work you are carrying out with your dissertation project, as it is a key area of Computing and a very interesting project". Other sources have taken an interest in the project and have requested a copy of the finished project report and have asked for the developed product to be even demonstrated at a Teaching event. This also shows the potential advancements of the project and the need for it to be continued to be developed. The author in conjunction with Dr. Scott Turner also intends to publish both the Blockly application and Python implementation as a ComputingAtSchools (CAS) resource, which is designed as a resource bank for teachers.


In conclusion to the project, the final conclusion is that the overall project was a success. A Blockly-JunkBot application was developed towards and has met all of the requirements originally set out and has proved the concept will be a positive impact on education via testing and review of the application. 












Sources of further information
[1] Turner, Scott. (2013). JunkBots Blog, Available: http://junkbots.blogspot.co.uk/
                                                              
[2] Turner, Scott. (2013). JunkBots Project, Available: http://community.computingatschool.org.uk/resources/1190

[3] Turner, Scott, Teyley, Hayden. (2014). JunkBots Project, Available: http://junkbots.blogspot.co.uk/2014/07/junkbot-project-evolves1-idea.html


[4] Mitchell, James. (2014). Teaching Programming in Education, a study of Physical Computing, Available: https://docs.google.com/forms/d/1PNFH08OOQMeydcvzvco5abG8Zxfy-FwTbxD0eVsw8SY/viewform





If you'd like to find out more about Computing at the University of Northampton go to: www.computing.northampton.ac.uk. All views and opinions are the author's and do not necessarily reflected those of any organisation they are associated with

If you would like to know more about the Junkbots project contact scott.turner@northampton.ac.uk