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.
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 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