In this article I would like to explore a new coding app called Robot School from Next is Great (@nextisgreat). What hooked me immediately was how this app teachings kids to block code, but then shows them the syntax written in Swift. If you are unfamiliar, Swift is a new programming language for iOS. I love the concept of block code and syntax. It’s a perfect next step for avid coders.
From the iTunes page:
Robot School. Programming For Kids is a programming game suitable for children aged 7 and above.
R-obbie the Robot crashed his spaceship in a far away galaxy. R-obbie needs a lot of energy to get back to his planet. Drag and drop programming instructions to help him reach the fuel he needs to return home safely.
Robot School offers a child-friendly way to learn procedures, loops and conditional instructions, while making programming fun and accessible, regardless of prior experience.
* 45 levels that teach real programming logic
* Drag and drop instructions to control R-obbie and collect the fuel
* New powers and achievements unlocked after completing each level
* A preview of your code in Swift programming language
* An easy way to share your code on Facebook
* NO in-app purchases
PSST… Robot School is a great logic game for grown ups too!
I want to spend some time on the Mathematical Process Expectations of the Ontario curriculum. Here are a few big ideas that Robot School supports:
Problem Solving: Develop and Apply Problem Solving Strategies -> Solve the “puzzle” and move the robot to the fuel.
Reasoning and Proving: Develop and Apply Reasoning Skills -> Classify block code, recognize relationships in the block code, defend arguments by running and testing algorithms.
Computational Strategies: Use Electronic Tools to Solve Problems -> Use math (movement, direction, number lines, spatial awareness) and computing power to complete the Robot puzzle (computational thinking).
Connecting: Make Connections Among Math Concepts & Procedures -> Relate to other contexts eg: daily life, sports. Our Robot friend needs fuel. He can use tools like speakers to open doors and gates.
Representing: Represent Math Ideas -> Use physical models, pictures, numbers, diagrams and onscreen representations to solve problems by making connections among them. Sounds like block code to me.
Communication: Communicate Mathematical Thinking Orally, Visually, and in Writing -> I would extend our little Robot app into the Language curriculum. What better way to have students write narratives about the Robot story, but linking them to mathematics.
Mathematical Expectations: Big Ideas
I don’t want to limit this app to a specific grade as we have students of varying abilities in all grades. Here are a few big ideas as to how this app supports math.
Algebra: Determine the missing parts of equations using addition, division, multiplication and subtraction. When you think about it – creating a lego/puzzle/sequence of block code is a lot like an algebraic equation. Students will find “holes” / “gaps” / “mistakes” in their algorithms and have to juggle the sequence accordingly.
Geometry: Describe location and movement using some type of grid. Identify right angles, polygons, 3D shapes etc. This app is an ideal fit for primary junior (and even intermediate) geometry as it does exactly this. You have to move a Robot from point A to point B using a series of commands.
Measurement: Estimate and record length and distance. I learned quickly while playing Robot School that you do in fact have to estimate how far to move the robot. It’s not as easy as counting blocks light LightBot.
Student Feedback & Risk Taking:
I have been “playing” this game for a few days now. I like that it’s fun and feels like play. Play has been proven as a great way to learn to concepts. Also, with apps like Robot School, students receive immediate feedback. They are able to test their program to see if it works, think critically about the procedural steps and try again. This is the perfect opportunity to discuss risk-taking as it is a safe place to fail without fear. After all, failure and risk-taking are incredibly important. You can model this approach using tools like Edmettle (www.edmettle.com).
There is tremendous value in having students debug algorithms. Think of it as checking for mathematical errors or spell checking a piece of writing. Debugging requires critical thinking and a strong sense of spatial awareness. Almost like chess and predicting a few different combinations of moves. The process of debugging provides opportunities for instant feedback, risk-taking and failure, but in a safe environment.
In computers, debugging is the process of locating and fixing or bypassing bugs (errors) in computer program code or the engineering of a hardware device. To debug a program or hardware device is to start with a problem, isolate the source of the problem, and then fix it. A user of a program that does not know how to fix the problem may learn enough about the problem to be able to avoid it until it is permanently fixed. When someone says they’ve debugged a program or “worked the bugs out” of a program, they imply that they fixed it so that the bugs no longer exist.
21st Century Fluencies & the Six C’s:
These terms differ based on Geography but are quite synonymous. I was on the #PBLChat the other day discussing soft skills and the majority of districts in North America and beyond require some form of assessment. In Ontario we call them Learning Skills which include: Responsibility, Organization, Independent Work, Collaboration, Initiative and Self-Regulation.
Robot School provides the perfect opportunity for some anecdotal notes.
Taking this one step further, students whose code doesn’t run properly instantly become collaborative, if they haven’t been already. Secondly, you can continue conversations around failure and what it means to take risks.
Lastly, let us discuss Michael Fullan’s 6C’s. They are:
- Character education— honesty, self-regulation and responsibility, perseverance, empathy for contributing to the safety and benefit of others, self-confidence, personal health and well-being, career and life skills.
- Citizenship — global knowledge, sensitivity to and respect for other cultures, active involvement in addressing issues of human and environmental sustainability.
- Communication — communicate effectively orally, in writing and with a variety of digital tools; listening skills.
- Critical thinking and problem solving — think critically to design and manage projects, solve problems, make effective decisions using a variety of digital tools and resources.
- Collaboration — work in teams, learn from and contribute to the learning of others, social networking skills, empathy in working with diverse others.
- Creativity and imagination — economic and social entrepreneurialism, considering and pursuing novel ideas, and leadership for action.
The overall purpose of these six Cs and their underlying DNA is the well-being of
the whole student, and the well-being of society, which essentially consists of
higher levels of student achievement and the capacity to apply what one knows
OK, I’m sure you are convinced. Let’s have a look. Meet our friend R-obbie!
R-obbie needs help getting fuel. It is your task to provide him the commands to navigate the space. (I love how the user can spin the level to have a full view). Is this a concrete manipulative or is it abstract?
Commands are given and shown at the bottom (along with the “real” Swift” code)
Like I said earlier, I have been playing this game for a few days and I am hooked. It is challenging for people of all ages.
If you teach younger students, you can easily introduce theories of computer science without technology. For example, have students partner up and give each other commands to move around the room.
I highly recommend checking out Robot School if you wish to try coding with students, or as a next step to BeeBot, LightBot etc. The app is worth the $3.49.
4 Responses for this post
Thanks for the introduction to Robot School – an easy program for learning the basics, then moving students from reading and writing code using blocks to syntax. GameMaker: Studio (free, PC) is another drag-and-drop programming system, easy for students new to programming. When ready for more detailed game design, they can switch over to the scripting language.
Your links to the math curriculum will be a welcome resource for those wondering how coding could fit into their program. As a Language Arts and Science teacher, my teaching partner and I, Marc Westra, started reading and writing code with our students using the Scratch platform in Language Arts. Below are just a few of the curriculum links from the Ont. LA doc.
-Reading informational text
-Text patterns: analyse texts to identify different types of organizational patterns used, and explain how the patterns help communicate meaning.
-Text features: identify text features
For example, in Scratch, students create an event and describe its cause and effect (what the code will make the sprite do).
-Making inferences/interpreting texts. For example: debugging code. What is the problem? How do you fix it?
-Expository (procedural writing)
A few good resources with curriculum/common core links across all subject areas:
ScratchEd http://scratched.gse.harvard.edu/resources (excellent resource of lesson ideas)
Recently, as part of our introduction to the digital novel, Inanimate Alice, we had students transform a piece of text to a digital text (transmedia literacy) using Scratch. Their ability to read and write code strengthens their understanding and identification of digital elements as we read this novel.
Like you’ve said, coding does not need to be taught as a stand alone subject, as it can easily be integrated with other learning expectations. Thanks for emphasizing this!
Brian, I’m going to try posting this comment again. I hope it works!
Like Heather, I love your connection to the curriculum expectations: both in terms of big ideas and process expectations. There’s no doubt that coding allows us to develop many skills way beyond the curriculum, but I think that those that are questioning why to begin, feel better knowing that there are these curriculum links. I love the fact that it’s not an add-on.
I wonder about assessment and/or evaluation. Do you just focus this feedback and/or any marks on the curriculum expectations or do you balance this with assessment and/or evaluation connected to the coding itself? I’m very curious to hear what people do and why, as I’ve spent some time thinking about this as we explore coding options in the classroom. Thanks Brian!