Content

Program or be programmed

Douglas Rushkoff 

Content

Week 2 Content

This week we will be experiencing and deconstructing junior secondary Digital Technologies learning activities and projects. While the curriculum details what is to be taught, content collections provide activities to meet curriculum outcomes. Many organisations and individuals have curated collections of resources, and we are fortunate to have a national collection in the Digital Technologies Hub.

Coding Solutions

Digital Technologies 2018L3

Coding Solutions

Coding solutions are just one type of digital technologies solutions - but they are fundamental and required for all robotic and information based solutions

Digital Technologies should never be seen as a coding course, programming languages are just one of the many tools that students will draw upon in developing solutions to problems, and even within programming languages, student ability to select from different programming languages that offer advantages when solving different problems is important. Many times, a simple scripting or block based language may be sufficient, and as the complexity of problems increases, more specialised languages are needed, those designed for web, hardware, information systems, or artificial intelligence solutions.

Through F-10 students will explore a range of programming language tools, but students do not need to become experts in any programming language, by Year 10 they do need to be able to create object oriented modular programs that use iterations and branching, but this requires only a fraction of the full detail a computer programmer would learn in tertiary studies - so keep things in perspective.

Students need to be able to solve problems, and many digital technology solutions will require an understanding of programming languages, but not a comprehensive understanding. Students may learn those aspects they need to develop a computer game, or program a robot, website or internet of things device, and this can be often achieved by self-paced tutorials and online texts, but this is just one way of learning programming, and students have 11 years to develop their understanding.

In F-2 students will start by learning to input command via buttons on simple robots such as the BeeBot, progressing in 3-6 to create macro command sequences in software such as a spreadsheet or word processor, and scripted commands (which simply means we they are a list of actions that are automatically done one at a time instead of us doing them manually) and these can direct robotic arms or drones, but more commonly programming is framed around an integrated development environment or IDE, and this has all of the tools to sequence programming commands, compile these into machine code so they run quickly, check the code for errors - known as debugging, and increasingly, to visually simulate the output of the program.

Traditionally programming languages have had to be installed on a computer, but some languages can be programmed from tablet apps, or directly onto devices such as robots and Arduino’s, and many languages now have online IDE’s, where programming can be done via a web browser.

IDE’s comprise an ecosystem of tools, documents, guides, code libraries, debuggers, testing tools, and other elements that make professional coding easier.

In F-10, programming will often be explored through a range of simpler environments than professional IDE’s.

In the early years, storybooks, games and activities can be used to introduce algorithms and we can abstract these to coded instructions.

Student can learn through the use of manipulables to make algorithmic instructions easier to understand, such as Cubeto, Puzzlets, CubesCoding and Osmo, which make the sequencing of coding commands visible and tactile.

Visual block based programming languages such as Blockley, Scratch, Alice, or Mindstorms is that the flow of how instruction are processed is visualised - students can see where branching occurs, and how the execution path of the program changes, or how repeating loops occur in the program. 

Visualisations have always been used to describe programs using flowcharts and other diagramming tools, but previously it was in a distinct design stage, visual programming combines the design and execution stages and permits rapid evaluation and modification of student solutions without the need to iterate through the entire design cycle. 

As student progress through 3-6, their programs will grow in complexity as they aim to develop solutions to more complicated problems.

Visual programming languages have the advantage of showing at a glance how the program should run, but in this lies their disadvantage. Once a program includes more complexity than can be seen at a glance, text based programming languages become more efficient and easier to understand. It all comes back to abstraction and the ability of the human brain to process a finite amount of information at any one time - this is known as cognitive load. We can generally hold 7-9 different things in short term memory, but these can be at any level of abstraction. So while we would struggle holding more than one command in mind if we had to think of it as a series of binary digits, we can remember and process several programming commands - move forward, turn left, move forward, etc. sufficient to draw a simple shape such as a square, but not enough to draw a car, but if we again abstract to draw as a rectangle, two triangles and two circles, we could easily remember the commands to draw a simple car.

Visual programming is great for students learning to program, as instead of remembering specific words and their associated grammatical rules - known as syntax, we can simply move about images representing various commands. 

Increasingly students will combine sequences of such commands and give these names - such as draw circle, or calculate area - and can then reuse this new abstracted command elsewhere in their program. So programming becomes less about a sequence of instructions, and more a collection of abstracted subprograms we call procedures or modules. 

Things become more complicated when we introduce the concept of events - where different procedures can be started in response to things occurring - such as a mouse button being pressed, or a value being met, for example a score in a game, and multiple procedures can be happening at once – meaning students cannot chart a single path through their program such as with simple flowcharts, as the program can have multiple paths occurring at the same time - a concept known as parallel processing (though most of the time computers swap between processing commands in different paths so quickly it just seems as if they are occurring at the same time).



By this stage of complexity, the visual abstraction of many languages becomes redundant, and it is easier for students to understand what is occurring between the various procedures in their program using textual commands, and abstracting these as modules.

In 9-10 the final type of programming that students are required to engage with in Digital Technologies is Object Oriented - where to help conceptualise how various programming events and paths interact, we frame programs as a collection of objects that have properties or attributes, and commands can change these attributes. So instead of having to understand all the various pathways their program may take, students define the objects in their program, and each event or instruction is a set of commands, called methods, that can change the attributes of other objects. Objects can also contain data stored in fields, producing object oriented databases, and programs can use and change this data much as we might do in a spreadsheet.

Object oriented programming includes the concept of inheritance which can be used to abstract objects. Students can create classes of objects, and by defining the attributes of the class, all of the objects in that class will take on these attributes. So we could have a class of shapes, and specify that all shapes would have attributes of length, breadth and height. Now each shape related object becomes an instance of this class, so the Square object for drawing a square, would have the dimension attributes defined for its class.

For simple programs this may seem like a lot of additional bother, but once programs become more complex, it can be useful. Now instead of having to understand how the entire program works, to include the ability to draw a new shape, students just need to assign the attributes of the shape class, and define a new instance for their new shape. Attributes for objects can include anything that can be recorded and changed for the object, such as their colour, position on a screen, etc. and complex programs may have objects with hundreds of attributes.

Object oriented programming can be introduced much earlier than 9-10, with many aspects of visual, game and robotic programming languages including object oriented concepts because you are working with screen objects or robotic attachments, such as a motor or sensor, that is easier to conceptualise as an object with attributes that can be modified. 

Applications

The main type of coding solution is a software application. Students will be familiar with many - word processors, web browsers, computer games, just about everything other than programming languages and a devices operating system software controlling how it works, is defined as a software application, generally a digital solution to a range of problems.

Apps are small software applications that generally run on a mobile device, usually for a very specific purpose or task - and revitalised software applications which had resolved down to just a few big application sets from Microsoft, Adobe etc. But Apple shook things up with the introduction of the iPhone and the App store - now anyone can create simple software solutions and there are mechanisms to easily distribute these through a range of app stores, resulting in an explosion of the number of coding solutions available. Building on the success of apps for mobile phones, they are now being used on smart watches, TV’s and to distribute software to personal computers.

An application generally works through an interface that provides a way for the user to tell the app to do things (called inputs) and present information back (called outputs), how this occurs is through coded instructions to complete the task, and data that may be recorded from or used by the code is stored on the device or remotely, such as on the internet.

This differs from the software that runs computers and robots - these are the operating systems and utility programs, which are a set of common programmed instructions that software applications can then use to tell screens to show images, save information to a disk drive or get inputs from keyboards, without needing to know how to communicate with the keyboard, drive or screen, etc. This level of programming is abstracted and left for the operating system to manage, not the software application.

Programming a robot or circuit board kit that does not have an operating system, may mean you do have to give commands directly to the screen - which pixel to light up on your CodeBug for example, or to respond when a specific button is pressed, etc. Operating Systems abstract all of this for us, and let us give commands such as Print “Hi” without having to tell the screen which pixels to light up for each dot in the H and i.

ICT courses in the past focused on teaching students how to use applications, and understand all of the ways in which a specific application can be used - such as a word processor, spreadsheet, video editor, etc. Digital Technologies however is about teaching students to be able to solve real-world problems, that generally will not be solvable by existing applications - or they would already have been.

Programming languages are programs written to write other programs, using a set of rules and grammatical syntax sufficient for the computer to understand exactly how to complete tasks. 

Websites

Websites are very popular tools for solving problems - instead of making 1000 posters, or surveys, or storybooks, students can create one website that is accessible by anyone with an internet connection.

Students need to understand website addresses - or URLs - universal resource locators, that provide coded pathways that computers use to find a specific file on a specific computer that is running a program known as a server, a computer that listens for instruction from the internet, and on receiving them, sends the requested files back to the computer that requested the file - your computer, running a web browser for example, that sent the coded instruction to show a webpage, and then waits for this file to be sent back, and displays it on your screen.

A URL code is an abstraction of an Internet Protocol or IP address, which is why we sometime see a series of numbers for an address, but as humans are very bad at remembering long lists of numbers, we abstract these into words. But still some addresses are too long and complex, so we have other abstractions - we can use URL shorteners to generate a shortened unique code for the address, or QR codes that we can share and people can use the cameras on their mobile devices to get the address.

Students need to understand that internet is not one thing, every connected device forms the internet, including your devices, and each has a unique digital address. Some devices can also share information, listening for requests sent to the IP address of your computer, and sending the requested file back to the device requesting it.

Because each device may have a lot of different documents, pictures, files, movies, etc. on it, we then add additional information to the devices address to let others access specific files on our devices, just as you would when finding a file using a file manager program. 

This is all the additional pathway information we include after the name of the devices - what is called the domain name - so griffith.edu.au is a domain name, and this matches a devices IP address. To have a domain name, you pay an annual registration fee to have your device listed and linked in the domain name system or DNS, now the device's IP address will be accessible, and anyone requesting information from the device can also use the domain name, and this is matched by the DNS to the device's IP address.

We know a website has an address, but why? Well the internet works much like the school tuckshop. If we want something, we have to ask for it, then the tuckshop staff will get it for us, but we have to be specific in what we ask for.

We ask for things using the URL, and if we are connected to the internet, our computer sends a message to this address, but your computer does not store the addresses of every device connected to the internet. 

The internet uses a special way of communicating without each device needing to know the specific address of whom it wishes to contact, much as our local post office does know exactly where everyone in the world lives.

This occurs through a series of steps, each one getting closer to the device we wish to contact. So for a typical domain name, say www.sprinfieldhigh.edu.co.nz our request for information will go via the modem connected to our computer, then through a series of digital post offices that we call routers, computers that receive the URL and have a list of other routers that are closer to that address, so by looking at the country code at the end of the address, the router knows to send the message to the main gateway router in New Zealand, once in New Zealand, the router there will have a list of addresses for the different types of websites, in this case it passes the request on to a router containing all of the education addresses because the address included .edu, and this router has a location for Springfield High, and so it is sent to a particular router in the school, and this then sends the request to a specific computer attached to the router that has the file containing the website for Springfield High in New Zealand. The process is then reversed, with instead of a request for a file, a file is sent back to the requesting computer by the schools webserver - and this is done in packets of information - each packet has the address of the computer requesting the file, and then the encoded information, but for efficiency, it is not all sent in one packet, but often by hundreds, and these are reassembled on arrival, all of which is why it can sometime take some time to display information over the internet, but what once took minutes, now often occurs in seconds.

Creating these instructions and information that can be quickly sent via the internet, requires a special form of coding, and for web pages this is known as hypertext mark-up language or html. There are other protocols for sending information, the other most common being the file transfer protocol or FTP, or the email protocol, but HTML is by far the most common today.

While software exists that makes the creation of HTML instructions very easy, it is important for students to understand this coding in order to understand the limitations and potential of internet based solutions to problems. You will find a range of HTML tools for use on computers, online and in apps, and students at all bands of the curriculum should engage to some degree with creating and presenting information online through both websites and apps.

The step beyond accessing information via a web browser is via mobile apps. The simplest form of such mobile apps are essentially webpages formatted to display on a mobile device, but more involved apps are written using a programming language, and can be as functional as most other software applications.

The final aspect of web based coding is students running their own servers to provide information for others over the internet. This is problematic in some schools that limit the ability of students to provide and manage online information, but there are options. 

While it is often easier and cheaper to run and manage servers on local machines connected to the internet, it is possible to use cloud based environments to setup and manage online servers that exist remotely, these can then share websites, email, files, etc. and web services such as content management systems, learning management systems, ecommerce systems, and media sharing services. 

Simulated environments also exist that students can use to learn about web servers, but these generally have limited functionality, and student solutions developed for such environments would not be testable in real world applications.

Online Development Environments

Installed Development Environments

Website Creation

Hosting

Internet Simulators





Games

Students are very familiar with computer games, forming an increasing part of their leisure time, and digital games are a powerful way of engage students in coding, taking games from being ICT’s that they simply use, to being able to be creators of games, or at the very least, to understand how games works in order to better master them.

Incorporating games as solutions to problems can be challenging, but there are a range of problems that computer games can be a solution to - at the simple end, games can provide information and awareness - sun and road safety, quiz based learning games, flash cards, etc. through to games that provide simulations of real world problems.

It is important for teachers to recognise that there is not one type of computer game, but many, and students will have interests in a range but not necessarily in all types of games.

There are broad categories of games - action, strategy, adventure, simulation, puzzle and educational.

Action Games

·         Maze

·         2D platform

·         Fixed Shooters

·         Slide Shooters

·         Fighting games

·         3D Platform Games

·         First Person Shooters

Strategy Games

·         Turn Based (Chess/Civilization)

·         Real Time Strategy (Populous/Age of Mythology)

·         MMORPG (Warcraft/EVE)

Adventure games

·         Textual

·         2D graphics

·         Film based

·         3D graphics

Simulation Games

·         Flight

·         Space

·         Driving

·         Boat

·         Sports

·         Building

·         Fictional Life 

·         Economic Simulators

Puzzle Games

·         Visual Matching (Tetris)

·         Hidden Objects (Minesweeper)

·         Character Control (Lemmings/Oddworld)

·         Construction (Incredible Machine/Crazy Machines)

Educational Games

·         Child Education (Carmen San Diego/Zoombinis)

·         Serious Games (America’s Army/ReMission)

·         Programming Games (Core War/Robot Battle)

Non digital educational games such as Robot Rally, Robot Turtles, Code Master, Coding Farmers, and Coding for Good, that can be used to better understand digital technology concepts, particularly algorithms and coding, and similar computer games exist such as Core War and Robot Battle.

Many concepts that can be learnt through computer games, but Digital Technologies is primarily concerned with the ability of students to create their own digital games, and for these games to be solutions to real world problems.

With a cultural focus on computer games, and the home garage start-up culture of game development, computer game development is an area in which creating solutions can be for purely artistic or entrepreneurial motives. 

Student engagement in computer games can work against project based learning, with many students becoming focused on mastering gameplay, the ICT of the game development software, or in creating solutions purely for entertainment, rather than as solutions to a wider problem. 

There are examples where game based solutions have been applied to real world problems such as Games For Change, where computer games are developed as solutions to societal problems.

There is also an important equity issue in this approach, it is well recognised that many students do not engage with the learning of an ICT for its own sake, and that a context providing value to the activity is required to fully engage many students, and this also applies to computer games, as yet another ICT upon which students can draw to solve problems.

Another challenge for teachers are the many different software tools for creating computer games, what are known as game engines with many specialised for the development of a particular game, such as Minecraft.

Game engines, as programming languages, use instructions similar to the programming languages you may be familiar with - block based code, python or java, but many are specialised programming languages in their own right - focused on the commands and environments that make up computer games. 

Students will often be excited by the opportunities these development environments offer, but all too commonly will attempt to achieve more than they are ready for in the pursuit of creating games equivalent to those they enjoy playing.

Gradual approaches, building up student entrepreneurial game design capital and an understand of various game engines, may be advisable, starting with text based storytelling games, modifying or modding existing games, and engaging with the range of tutorials and worksheets available to build their capacity to achieve the games they envisage, but for many students this desire can be highly motivating.



Artificial Intelligence

Artificial Intelligence (AI) is the range of software applications that replicate some aspect of human or animal intelligence and problem solving.

Robotic devices can look like and can do many of things that we can do - play chess, see objects, recognise objects and people, recognise what we say, talk back intelligently, and move about without having to be explicitly programmed to avoid specific obstacles. 

In computer games, AI can be the decisions that the computer makes in trying to beat a player, playing chess or go, or the pathway a moving object makes to avoid collisions or to collide with the player in a video game.

Programming can include if-then selections to make decisions based on the information the computer program has available - for example the player's location or score.

Chatbots are a familiar aspect of artificial intelligence that students will be aware of, software applications that simulate a conversation on a website, telephone, or social media platform. These are easy to program, and students at all levels can create simple Chatbots by adding to questions that the Chatbot can use to respond to questions.  For advanced students, Chatbots can use complex algorithms of expert systems and neural networks to be able to respond to questions that have not been explicitly programmed.

Expert systems are one of the easiest AI technologies for students to program, similar to Chatbots, the user asks if/then questions, but instead of a conversation, an expert system is designed to provide answers to complex problems, ones that often experts know but which are not detailed in textbooks and courses.

Expert systems on classroom management, might capture the expertise of a teacher, and through a series of questions, narrow down to a specific solution, from a very wide range of classroom management problems.

An expert system is made up of a software tool called an inference engine, which asks questions and provides responses, and a knowledge base of rules to apply in response to these questions.

Different expert systems have been developed for many problems from medical diagnosis, car repair, to teaching, and are surprisingly easy to teach students about and a provide them with a powerful tool to solve certain problems. 

Neural networks also solve real world problems, but they rely upon a different process, akin to how our brain physically processes information and solves problems. Each problem has some inputs that we often do not know beforehand and some outputs, that we use to train our network.

Between these are layers of interconnecting virtual neurons. So let us take an image recognition problem, we may have a collection of many thousands of x-rays, some of which show cancer and some that do not, but it is difficult to come up with a specific algorithm to identify cancers every time, there is just too much information in each image. Using a Neural network, we can feed this data into the network, train it by indicating when it correctly identifies a cancer, and in a relatively short period of time, we have a system that we can show an x-ray to, and it will indicate if a cancer is likely to be present or not. The secret is in the layers between the inputs and outputs - these have various weighting that change in response to correct answers, slowly building up a pattern that if shown any image, can make a diagnosis. While students may not program their own neural networks in F-10, they do need to be aware that these are how much of the power of computers comes from now in image, voice and handwriting recognition, robot walking and balance, stock market analysis, and many other complex processes that we have sufficient data to train with, but which we often have no idea of the exact decisions the computer needs to make in order to solve a problem.

Coding Solutions Summary

There is a wide range of coding tools available for students to use in developing solutions using digital technologies, and 11 years in which to gradually develop this capability.

Students should be able to program a sequence of instructions by Year 2, use branching and user inputs by Year 4, looping by Year 6, user interfaces and functions by Year 8, and object oriented modularity and data structures by Year 10.

Project based learning can greatly accelerate student progression as students seek to solve problems requiring more complex concepts, while others consolidate using the skills they have already gained. 

It is important for teachers not to become obsessed with student progression to the detriment of their learning. By shifting the focus from skill development of specific ICT’s, to the development of thinking skills through project based learning, much of the complexity of unit planning disappears.

Teachers need to monitor student projects to ensure that they are meeting the expectations of the curriculum, but this can be built into the specifications students detail for their projects, and may requiring closer tracking of student concept development between grades, e.g. using portfolios to track student progression, but there is ample time in the 11 years for students to meet all of the curriculum outcomes, and do so in a way that achieves the intent of the curriculum - developing student higher order thinking, and deep understanding of digital technologies, through the development of real world solutions to problems, not just the learning of ICTs, no matter how novel and interesting. 


The main challenge for teachers, is not to impose their own interest in particular ICT’s on students - the latest robot, drone, programming language or game engine can be exciting, and it is great to model this excitement - but students should also be excited by solving problems that they come up with, and the ICT’s they choose to use, not the ICT and problems that their teacher wants to solve!

Constructionism, the maker movement, and extracurricular competitions readily demonstrate the power of student centred learning, where students develop projects based on their interests. PBL can reduce the resourcing load, as class sets are no longer required, and the variety of resources that students can share and form project groups around, can be supplemented from other classes, schools, the department, federally, or from parents, industry, grants, competitions, and BYOD resources. 

Robotic Activities

Inputs

We have various ways of giving instructions and data to digital devices - keyboards and mice, touchscreen, microphones, GPS signals, Wi-Fi and Bluetooth, but there are many other sensors and peripherals available to allow digital devices to interact with the world.

Makey Makey interface boards provides a simple interface where young students can develop practice at creating various input devices for a computer, and the CodeBug microcomputer provides a more complex device, that can take inputs in the same way as a Makey Makey, but can also be programmed to respond to inputs and generate outputs.

There are a wide range of low cost microcontroller boards available - the most common by far is the Arduino range of boards - these are small circuit boards that can have sensors attached, and be programmed to respond in different ways.

An Arduino board can be sourced for less than $5 and kits of 37 different sensors for less than $20.

Sensors then provide options for students to include in their solutions to problems.

·         Vibration

·         Light

·         Tilt

·         Infrared

·         Temperature

·         Humidity

·         Heartbeat

·         Magnetic field

·         Ultrasonic distance

·         Flame

·         And dozens more

Arduino circuit boards can be greatly expanded through the use of plug on expansion boards: 

·         Motor control

·         Datalogging

·         Wi-Fi communication

·         Cell Phone and 

·         Satellite communications

·         GPS

·         Music Player

·         LCD panels to display information, and 

·         Cameras

Circuit boards while simple, can involve soldering to ensure expansion boards connect well, but the low cost of such devices and the learning that can be achieved by students undertaking the use of such kits can outweigh the convenience of educational kits that provide easily attachable and detachable connections, but at a greatly increased price. It is a trade-off between convenience and price.

Kits such as Circuit Scribe and LittleBits can be even easier to use, with magnetic and conductive ink connections, but they lack the capacity to incorporate programming or data communication at this stage, with LittleBits communication kits only available for US power supplies.

Single board Microcomputers - such as RaspberryPi and the BBC:MicroBit (provided to every 7th grader in the UK), are a step up from Arduino boards, with the ability to run simple operating systems, so while the same types of sensors and expansion boards are available, they have the advantage of being able to setup as computers and run software and programming languages that can then automate activities, rather than have a specific set of instructions installed as with the Arduino boards. They can be connected to a TV set or computer monitor, can attach keyboards and mice, and run software applications such as word processors and spreadsheets, games such as Minecraft, and web browsers if connected wirelessly to the internet, and even servers to host websites and share files. They do cost more than the Arduino boards - you can get an Arduino for less than $5, microcomputers are generally $30-$60 but the cost is dropping each year, and the ability for each student to have their own computer on which to experiment and learn is invaluable.

The final step up from single board microcomputers is a range of build your own computers and tablet kits, which students disassemble and reassemble to learn how the system of components in the digital system works. These are essentially microcomputer boards with attached peripherals and cases, the most notable being the Kano, Pi-Top and 56 ‘One’ kits.



Automation

Algorithmic processes are made up of well-defined steps which can be easily automated - car doors to open when receiving a remote signal, lights to turn on when we enter a room, sprinklers to water the garden at set times, music to mute when we have a phone call, air conditioners to keep a set temperature, our car to warn us if a seat-belt is not fastened, and thousands of others.

More complex algorithmic automations are found in industry - robot assembly lines, milking machines, mining machines, shearing machines, medical monitors, aircraft autopilots, and while many automated systems still include human elements, this is changing, and the trend is that if it can be automated by a computer system, it will be.

Every industry and workplace - including teaching, faces automation, and Digital Technologies is part of preparing students for this environment - to understand it and to be able to create solutions within such environments rather than be subject to circumstances beyond their control, because they do not understand them.

An area of automation attracting a lot of attention at the moment is home automation - taking any and every device in the home, linking them together, and automating these devices. Services such as IFThenThenThat (IFTTT) enable devices to be monitored and controlled over the internet, with devices triggering actions such as sending email alerts, turning on or adjusting devices, etc. 

Home automation hubs such as Amazon’s Echo, Belkan’s WeMo, Google’s Nest, and dozens of other, provide easy ways to connect various sensors to controllable power points, lightbulbs, thermostats, webcams, weather stations, etc.

There are hundreds of devices that can be connected in this way, and it is very easy to connect Arduino and RaspberryPi devices by attaching an internet or WiFi shield, and use the wide range of sensors available to these devices to trigger events, use services such as IFTTT to cause further actions to occur from such triggers, whatever may be necessary to solve student problems.

Robotic Arms

Robotic arms are one of the original algorithmic automation tools, initially used to replace workers doing extremely repetitive work on automotive assembly lines, they have become more sophisticated and used for most potentially hazardous activities in industry, welding, riveting, moving heavy objects - and increasingly used when precision and reliability are required, such as in creating microchips. 

Students should not just see robot arms as they would traditional human arms - robot arms are any automated system that is fixed in one place, or placed on a mobile robot.

Robot arms are defined by the number of joints allowing either rotational motion (such as in an articulated robot) or translational (linear) displacement such as in a 2D plotter or 3D printer. Articulated arms have a number of joints, each of which is controlled by an actuator - a motor that can be precisely rotated to specific points, and are usually described by the degrees of freedom these joints provide.

An advantage of this Makeblock system is that students can learn to do more than just learn how to use robot arms as ICTs, they can redesign and build their own robot arms, plotters and 3d printers, and come up with entirely new solutions.

Robot arms usually have attachments on their ‘hands’ to perform different tasks - grippers, suction cups, laser cutters, pens, screwdrivers, etc. and likewise, displacement arms can have pens, cutters, lasers, and a range of other tools and implements. We see this most commonly for 3d printers, where tradition plastic extrusion can be replaced with icing to decorate cakes, or pizza toppings, and by understanding how the technology works, and how the software to control it can be modified, students can develop entirely new solutions to problems that require the accurate positioning and application of tools.

Mobile Robots

Mobile robots work differently to robot arms, designed to move about away from a fixed location - these were initially guided by a human operator by remote control, but are now more commonly designed to move about autonomously, following programmed instructions, and reacting to their environment through sensors - touch sensors, heat or infrared sensors, light sensors, sound sensors, ultrasonic distance sensors, digital compasses, GPS, and cameras.

There are a huge range of robots available now for education:

For F-2 Beebots that are programmed from keys on their back, and Bluebots - which can be programmed from computers or tablets. Probots are a little more complex, with an LCD screen to display commands, and it can be used to teach the basics of repeats, but the touch, light and sound sensors can only trigger events, with no branching commands. It is however a great turtle device, with an attached pen on butchers’ paper, it can be used to create engaging repeating patterns and artworks.

Ozobots are very small robots, that can detect the colour of lines below them and follow these, even lines displayed on tablets, and programming these to perform dance moves and other activities can be fun, but they have limited problem solving capabilities.

Dash and Dot robots are very robust and interactive, with a range of attachments such as a xylophone and catapult.

Sphero robots, including the BB8, can be programmed using various software tools, but their accuracy makes their use beyond F-2 problematic, the challenge for these simple robots, is in contributing to the solution of problems - moving away from learning how to use the robots as ICTs, and towards creating solutions to problems with the robots.

With students in F-2 having only learnt sequence, the solutions to problems will tend to be where a robot makes its way from one location to another - delivering a message, carrying an object, leading a lost child, etc. with the degree of difficulty being the degree of abstraction students can develop in their solutions - carry different objects, follow different paths, draw different patterns or shapes. 

Lego WeDo kits allow students to be more creative and construct their own robots, but as kits they also open up a wide range of automation solutions that students can create - warning systems, communication tools, transportation solutions, animatronic performances, toys, games, musical instruments, etc.

Another key aspect in F-2 is for students to be able to describe their robot as a digital system - something that has inputs (buttons, sensors), a processor (computer brain), and outputs (moving wheels, flashing lights, making sounds) that they can control and make do what they wish through instructions.

Use of instruction cards that students can layout in sequence, can assist students in recognising how these symbols are data, and can mean words to us, but also digital instructions to robots.

From 3-6 there is a range of more complex robots, able to make decisions based on inputs, and perform more repeated tasks. 

Edison robots, Lego Mindstorms, Vex, Makerbots and Arduino Robotic Kits are just five from hundreds, but represent the main types, and an increasing level of complexity and flexibility.

Edison kits are self-contained, with inbuilt sensors, wheels, etc. and students create programs and load them onto their robot to see how it performs the instructions. They are a little better than some premade robots in that they have connection points for Lego, so students can construct some other uses, but not a lot.

Lego Mindstorm kits used to be very flexible, with students able to design and build all sorts of robots and automation solutions around a yellow brick like computer, and a very intuitive programming language based on the LabView visual programming language which NASA uses for their robots. Recent releases have tended towards the commercial home market - with students building a small range of set models by following very complex and detailed instructions, but it is still possible for students to use Mindstorms to come up with their own creative solutions.








Similar to Lego, VEX kits are very popular in the USA, with different levels from plastic to metal, and based on a meccano style of construction provide a lot of flexibility in design.

Makerbots have a similar style metal robot kits, but include the ability to transform these kits into robot arms, plotters, musical instruments, even 3d printers, providing students with a set of tools from which they can develop some very sophisticated solutions to problems.

Makerbots are built around Arduino microcontrollers, but without the need to solder any connections. It is possible to purchase extremely low cost robotics kits however which students would need to make themselves -  a great design and technology activity, and most are based on Arduino’s, but kits exist for most low cost microcomputers as well, essentially you attach some motors, wheels and a sensor or two to any Arduino or single board microcomputer, and you have a robot kit, and this can be done for less than $25

From 7-10 students will generally be extending their focus to the automation of algorithms and data collection through their robotic solutions - with emphasis on the coded software rather than the physical device - identifying and removing weeds in a garden using an image detection algorithm, detecting balls and moving them towards a goal as in done in the Robocup competitions, or finding their way through a complex building to rescue a trapped survivor, the emphasis being much more on the algorithm developed to avoid obstacles and identify the victim, rather than on how the robot is constructed or the capabilities of the robotic device.

Students should also develop capacity in designing the user experience with robotic devices - what would it be like to be served by a robot waiter, creating robotic devices to assist people with disability, or  programming their devices and testing them with clients.

Online Robotics Simulators

Drones

Drones have become very cheap and popular, and represent opportunities for students to explore a wide range of problem solutions with a new technology - from pizza delivery to surveillance, personal cinematography to the global war on terror.

Essentially drones, or UAV’s (Unmanned Aerial Vehicles), were initially remote controlled planes and helicopters, but increasingly they have been automated so that they can avoid obstacles, follow paths, or find their own paths to location, without the need for a human controller.

While many micro drones are still just remote controlled devices, and of not much interest to Digital Technologies, there are small drones which can be programmed using drag and drop programming - to take off, and move about, just as can be done with mobile robots. 

Students can develop solutions to problems that use drones - film recording (providing great cinematic shots), surveillance (playground duty), search and rescue (looking for lost people), inspections - detecting lost balls on roofs, deliveries (some drones now have claws), and education - understanding flight, geographic views of the local neighbourhood, privacy, and many others uses, but many solutions will focus on the data drones can collect, and how this data collection can be automated with regards to flight plans and obstacle avoidance.

Larger drones have more powerful computers that can process data from their cameras and other sensors such as altimeters, compasses and GPS to make more autonomous decisions.

More specifically in digital technologies, Drones can be used to teach sequence and iteration in flight planning, selection in how the drone reacts on loss of signal - stopping or returning to where it started from, artificial intelligence in obstacle detection and avoidance and path following, and are nicely self-contained digital systems to explore, particularly with their communication processes.

The use of drones, even the smallest, is subject to rules set down by the Civil Aviation Authority, and while these rules are commonly broken by the tens of thousands of drone owners, teachers do need to be more cautious in their use.

Essentially, if you fly them indoors you are fine, other than standard risk management for devices hurtling about with spinning plastic blades. Taking them outside however brings a new set of rules, the most important being that the drone cannot be flown with 30m of other people, which generally limits their use to large sport fields when not in use by others, and supervising a class, where student drone operators are 30m from you and each other presents some challenge. There is provision for use that is 10m horizontal and 10m vertical from others, and some careful arrangement on an oval might be possible, but nevertheless, large groups of students and drones being used outside would be very difficult to comply with CASA regulations for minimum distance.

Robotic Solutions Summary

Robotics and automated solutions are a great way of engaging students at all levels with digital technologies - students are very familiar with such technologies, with often even the simplest modern toy now being automated, sometimes in very sophisticated ways.

Even a few years ago, schools were limited to very few options for robotics and automated systems, and these were often prohibitively expensive on any scale, but the cost of such technology is plummeting, and we are almost at the point where such devices and technologies can be considered consumables, rather than capital expenditures.

The workplace and homes are becoming increasingly automated, and technologies such as surveillance systems, door locking, and lighting control systems will undoubtedly be deployed soon to schools as cost saving and central management activities. 

Increasingly solutions to problems involve children, students and employee monitoring by automated systems, tracking location, movement, internet use, keystroke analysis, eye tracking, and video surveillance. 

Information Solutions

Data Logging

Data logging is the systematic collection of data using a digital device usually over a period of time.

All data stored on or transmitted by a digital device is encoded as binary zeros and ones.

Numbers, words, sounds, images, and video, can all be represented by binary codes.

F-2 data collection does not need to be done using computers.

3-8 students should be introduced to the various ways in which digital technologies can be used to record different types of data.

9-10 students should develop specific techniques to record data in a structured way for use in information systems.

Synchronization - digital data is stored and transmitted as ordered sequences of symbols - separated by syncwords.

Digital Languages such as ASCII and UNICODE assign meaning to particular symbol sequences.

Errors often occur in non-digital or analogue data but for digital data, unless the error is large enough that a symbol is misinterpreted as another symbol or the sequence of symbols is changed, data can usually be stored, copied and transmitted without error. Checksums validate that digital data has not changed when copied or transmitted.

Granularity refers to the number of symbols assigned to the value being recorded, determining the precision or resolution of the resulting data. 

Compression algorithms take large sequences of data and reduce the number of binary digits needed to represent it - algorithms or CODECs such as ZIP, GIF JPEG mpeg and mp4 remove redundant data and trade quality or granularity against the size of the file required to store the data.

Data Representation

Data representation is how computers represent something, not using the thing itself.

Representations can have characteristics or properties, where discrete categories or categorical data can be used to describe additional details about a representation.

In F-2 students explore patterns in data, and how things can be represented, using words, pictures, symbols and diagrams to represent real world things.

In 3-4 will explore how the same data can be represented in different ways - so a picture of the tree outside their class window provides one representation, while a story of the tree another, a map of the school yard showing the tree another, and a picture drawn by a student yet another - all of the same thing, but represented in different ways. This can be extended by time as well, how was the tree represented when it was young, how might it be represented if turned into furniture or paper.

In 5-6 we explore how different data can be represented by whole numbers - in particular how we use binary numbers to encode representations so that it can be understood and used by digital systems.

From 7-10 we use digital systems to structure data. This is achieved by storing data in a database, where we define how different types of data is stored.

Geospatial Data

Geospatial data collects, records and presents data based on its location.

Geospatial data can be represented on digital maps, and the relationship between data can be used for demographic analysis, travel time calculations, etc.

Mapping data can be combined with the ability of mobile devices to use GPS, digital compasses and Wi-Fi signals to display different data depending on the location of the device.

Beacons and RFID chips and cards can be used to trigger actions based on information stored, and to establish locations that can trigger actions on mobile devices.

Data Security

It is the responsibility of Digital Technologies to teach the technical aspects of the ICT General Capabilities. 

Students should learn how to protect themselves and produce ethical, socially acceptable, sustainable, and safe solutions to problems.

Cryptographic techniques enable students to understand the security provided by passwords, biometrics, data and communication encryption; and associated threats to privacy from unsecured data.

Students should understand the threats posed from a range of cyber-attacks and technologies including viruses, phishing, denial of service, identity theft and hacking.

Ethical hacking, carefully managed, can be used to develop understanding of threats.



Wearables

Wearables represent a range of digital technology solutions that can be worn on the body

· Sports and Fitness Tracking;

· Health monitoring (through various worn sensors);

· Alertness and Energy levels (sensing micro movements and galvanic responses);

· Navigation systems (using Wi-Fi signals, GPS, and Digital Compasses);

· Play media (wrist projection, presentation devices);

·  Communication (messaging, mobile phone);

· Fashion Statements (lights, sound and sensors integrated into clothing);

· Neurofeedback (EEG sensors responding to brainwave patterns);

·  Human Machine interfaces (triggering digital devices with implanted or worn devices);

· Augmented reality (displaying information overlayed on the users view of the world);

· Virtual reality (displaying digital representations of spaces); and

· Life Recording (continuous recording of events with audio or video).

Codebugs and Ada Fruit kits provide wearable computers that can control lights and sensors and can be woven into clothing.

Information Solutions Summary

Information based solutions represent the bulk of the digital technologies activities students will encounter, students will need to understand coding to make full use of them, and many automation and robotics activities are reliant on information solutions to solve problems of any complexity, but the collection, representation, and analysis of digital data, can take simple algorithms and automation devices, and scale these to real-world solutions.

In F-2, students explore what data and information is, gradually building an understanding of digital information through the primary years, and into specialised ways of using information in secondary.

Just as with the need to learn a programming language, for teachers teaching 7-10, you will need to learn SQL and undertake a more comprehensive study than provided in this course.

Once students move beyond putting all their data into one table such as a spreadsheet - they will need to know how to construct databases with tables that relate to each other - a relational information system - and they will need to understand a query language to draw together data from these different tables. This will allow students to explore new ways of working with sets of data, how this data can be made available online through websites and apps, and how we can distribute data so that different tables can be maintained and stored by different people, and in different locations.


Students should also be able to construct queries from data, drawing together results from distributed databases and to compare this with the unstructured way that we share information on the world wide web, resulting in the use of less accurate, but still very useful, search engines that display information based on key words.

Students at all levels should develop an understanding of how, and why, they can use digital technologies to access and share information online - and produce ethical, socially acceptable, sustainable, and safe solutions to problems that share information online.