Putting the Buzz Back into Computer Science Education
Computer Science teachers and students face a particular problem in relation to their practical assignments; a shortage of time! Typically, student practical work is organised so students have only a few hours to design, assemble and test a system. Generally that means computer science students have to use pre-designed hardware which limits their scope for creative design.
Systems that enable developers (students or professional designers) to quickly create working prototypes are called rapid prototyping systems. Buzz-Boards are one such rapid- prototyping system and adopt the principle of utilising modularised plug-together boards in order to enable a wide variety of products to be created quickly, leaving the students more time to focus on creative design elements and programming the systems.
For educators wishing to procure tools to support such educational processes, there are a number of systems available. One of the most widely used prototyping kits is the Arduino system. This is an open-source physical computing platform based on a choice of two processors, ARM and Atmel’s ATmega328 microcontrollers. There is a huge user base and a good choice of add-on boards. Programming is an implementation of Wiring which is a Java based platform and IDE (but can be expanded through C++ libraries).
Another is mbed, a rapid prototyping platform developed through collaboration between ARM and Philips which is popular with commercial developers, which supports ARM based product design (http://mbed.org/). It has a practical dual-inline form, allowing it to be plugged into electronic boards in much the same way as an integrated circuit (making it easy to integrate into prototypes). It can be developed in various ways but one attractive option is an online C/C++ compiler and IDE which provides highly productive collaboration support.
Finally, there is the Raspberry Pi . It differs from the majority of bare-board platforms in that its functionality is closer to a data processing computer (ie desktop computer functionality) rather than an embedded computer. As a consequence the RPi IO is somewhat limited. It was originally intended that Python would be its main programming language but the massive RPi user base have ensured it can run numerous OSs and languages.
However, these devices and similar systems also have educational shortcomings. For example they frequently need additional hardware to create useful applications, requiring either third part add-ons or a high level of electronic competency to construct the required hardware. While for electronics engineering, there may be advantages in undertaking electronic design, for most computing students, needing to focus on programming, it’s a drawback.
In this paper we discuss this challenge in relation to teaching computer science and present an approach, BuzzBoard, which we believe can be used as a vehicle for simultaneously providing a motivating theme while acting as a teaching tool to illustrate important computing principles.
BuzzBoard is a rapid prototyping kit of hardware and software components that enable students and developers to quickly create Internet-of-Things, Pervasive Computing and Intelligent Environments products.
The main processor board we designed adopted two methods of interfacing a wide range of processors. The first was a 40 pin dil socket designed to accept modules that have little more than a processor on-board, thus keeping cost to a minimum. This socket was based on the already existing mbed processor module thus immediately allowing full mbed compatibility. This processor agnostic socket links to the main boards Buzz-Bus sockets and on-board OLED display, push buttons, LED’s etc.
The second processor interface is a dedicated Raspberry Pi connector. The Raspberry Pi is a very popular low cost ARM processor board widely used in education. Unfortunately it suffers from limited peripheral IO interfaces, however it does support the I2C and SPI serial buses and with the use of some Buzz interfaces, can be made fully Buzz-Bus compatible.
Buzz-Boards are networked processors with a rich set of IO. Because the hardware structure is highly visible, through the process of plugging in functional units, the architecture principles are made more evident to students. The processors run an OS which can be programmed at various levels, from machine code through high-level languages such as C++ to end-user programming.
Beyond the basic Buzz-Board functionalities there are a huge variety of applications they can be used to illustrate. Some popular topics are the Internet-of-Things, Pervasive Computing and Intelligent Environments. All these topics are characterised by intensive use of networks, distributed computing and real- time operation. Clearly choosing application areas is also an important consideration both to support the underlying computer science and open the door to a longer term job market.
To read more of this external content, download the complete paper from the Fortito web site.