What is Computational Thinking? So, what is Computational Thinking and what does it entail? Let’s start with what it’s not! Computational Thinking is not programming, nor is it thinking like a computer! For me, Computational Thinking is about solving problems. Miles Berry describes it best in his publication to Primary Schools on the topic of Computational Thinking: “computational thinking is about looking at problems or systems in a way that considers how computers could be used to help solve or model these.” What are the characteristics of Computational Thinking? There has been much debate about what Computational Thinking entails, however, the general consensus is that it includes, but is not limited to, the following characteristics: Decomposition: The process of breaking tasks down into smaller parts in order to explain a process more clearly. Pattern Recognition: The process of looking for patterns or common solutions to common problems and exploiting these to complete tasks in a more efficient and effective way. Abstraction: The process of filtering out information that is not necessary to solving the problem. Algorithm Design: The process of developing step-by-step instructions to solve a problem. Algorithm design often involves decomposition and pattern recognition to help solve a problem. Why teach Computational Thinking? Computational Thinking is central, not just to the teaching of Computer Science, but also to every day life! The key elements of Computational thinking lend themselves naturally to other STEM subjects such as Science and Maths but, as many would argue, are also an essential component of 21st Century learning. As Jeannette M. Wing, President’s Professor of Computer Science at Carnegie Mellon University, Pittsburgh succinctly puts it in her article published in Communications of the ACM: “Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing and arithmetic, we should add computational thinking to every child’s analytical ability.” How can we teach Computational Thinking? Thankfully, there is a wealth of tools and resources to support the teaching of Computational Thinking. Below are just a few of my favourites: Strategies Strategies for supporting the teaching of Computational Thinking skills. Unplugged strategies Contrary to popular belief, you don’t need computers to teach Computational Thinking. In the immortal words of Edsger Dijkstra "Computer science is no more about computers than astronomy is about telescopes”. Probably the best example of this is the classic Jam Sandwich exercise. In this exercise, pupils are asked to create an algorithm from set commands to program their teacher (sandwich bot) to make a jam sandwich. Pupils must write a set of working instructions, using commands such as Pick Up and Put Down, which their teacher has to follow precisely in order to make a jam sandwich. Tip: If you're not a big fan of mess, I suggest replacing the jam with something less messy such as cheese or ham! To find out more, check out this lesson plan, courtesy of Phil Bagge, CAS Primary Master Teacher (@baggiepr): Jam Sandwich Algorithm (programming teacher bot) Other examples:
Game Based Learning & Games Design It is well documented how using games in a classroom context can facilitate collaborative learning, promote problem solving and stimulate an engaging learning environment. One methodology that demonstrates all these elements is Game Based Learning. What is Games Based Learning? Not to be confused with Gamification, Game Based Learning (GBL) is the process of using games to achieve a defined set of learning outcomes. Games that generate data e.g. Kinect Sports or Mario Kart, are ideal for teaching Maths and Statistics. Games that tell a story are great for developing creative writing. Puzzle games can develop problem solving and physics based games such as Angry Birds can be used to explain velocity and momentum. For example, you could play part of a game and ask students to describe what they saw and what they heard. You could ask students to write a story about what happens to the character next or to create a character of their own – complete with biography. You could have a race and record the lap times and use them to work out mean, mode and median or use a game to start a Socratic debate. One game that seems to optimise all these elements is Minecraft (See below). Using Minecraft to teach Computer Science theory. For those who don’t know Ray Chambers, Ray is a Head of Computing / ICT and Microsoft Innovative Expert Educator. Ray is also an evangelist Computer Science and has developed some innovative approaches to teaching Computing in the classroom. One example of this is teaching logic gates using Minecraft. In his series of lessons, Ray explores how to create AND / NOT and OR gates using Minecraft's creation mode. To find out more, visit his blog: https://raychambers.wordpress.com/2014/11/16/minecraft-vs-logic-gates/ Other games that support the teaching of computer science include: Light-bot - Lightbot is a free programming puzzle game. Simply guide the robot to light up tiles and solve levels using commands such as forward, rotate and jump. Lightbot is great for introducing concepts such as procedures, loops and conditionals. Light-bot 2 - Updated version of the popular Light-bot game. Running Cow - Use logic to guide the cows to the trophy. Dock the block - This game is a very basic version of cargo-bot (see below). The premise is simple, program the crane to dock the block on the barge using a set of simple commands e.g. Up, Down, Left, Right, Open and Close. (Requires Flash Player). Tank Gold Collector Game - It's not quite finished, though it demonstrates some important programming concepts. (Requires Flash Player). Blockly - Blockly is a web-based, graphical programming editor (with similarities to Scratch). Users can drag blocks together to build an application without any knowledge of coding. The lovely people who created blockly have also created a maze tutorial to introduce children to programming. Cisco Binary Game – The Cisco Binary Game is a great way to learn and practice the binary number system. It is also a lot of fun to play and very addictive! Game Design Game design, as the name suggests, is the process of planning the content and rules of a game. It also includes the design of gameplay, environment, storyline and even characters. A great way to engage students in a subject or topic is to get them to create a game to teach others that topic. Students don’t have to have any programming / coding skills to design the game however, game design does lend itself well to the teaching of computing / computer science. Thankfully, there is an abundance of online tools to support game design – not all of them requiring experience or knowledge of coding: TouchDevelop is an online app creation tool from Microsoft Research. Originally designed to develop Windows Phone 7 apps, TouchDevelop has recently been updated as a web app and now allows you to develop Windows Store apps suitable for Windows 8 touch screen devices. TouchDevelop is easy to use and works with several web browsers. Kodu is a new visual programming language made specifically for creating games. It is designed to be accessible for children and enjoyable for anyone. The visual nature of the language allows for rapid design iteration using only an Xbox game controller for input (mouse/keyboard input is also supported). Scratch is a project out of the MIT Media Lab. It allows users to program their own interactive stories and games with animated content. Scratch is specifically designed to make programming accessible for students (they recommend ages 8 and up). The website hosts support materials, user-created content and sample code to help you get started. The Media Lab has a license deal with LEGO to allow users to use LEGO characters in their Scratch projects. MissionMaker allows students to rapidly create visually 3D rich worlds for first-person 'Missions' - complete with sets, animated characters, dialogue and music. Stencyl is a free game creation platform that allows students to create 2D games for mobile devices and for the web. The software is also available in paid format. This gives you the ability to upload your finished games to the iTunes App Store. GameSalad allows members to design, publish and distribute original games without programming knowledge, and play with others across multiple platforms, such as the iPhone, iPad, Mac and any other Internet-connected device. Alice is a free and open source 3D programming environment designed to teach students object-oriented and event-driven programming. In Alice, students drag and drop graphic tiles in order to animate an object and create a program. Alice is great for creating an animation for telling a story, playing an interactive game, or a video to share on the web. Extensive support materials are provided. Quest allows you to create your very own 80's style text adventure games. Quest has a variety of uses in education, within a range of subjects and at a range of levels. Best of all, it's free. Perhaps the most obvious use of Quest is within ICT/Computing. Quest provides a gentle introduction to programming concepts – variables, functions, loops, expressions, objects, etc. – and the visual editor means that students don’t need to remember commands or syntax. Flipped Learning Even if you are lucky enough to have two hours or more a week to deliver your computing lessons, you may feel there is not enough time to cover everything. One of things I have started to do, to make best use of class time, is to flip my classroom. What is classroom flipping? If you are new to the idea of the flipped classroom, the concept is simple: the flipped classroom essentially reverses the traditional way of teaching i.e. what is usually done in the classroom, such as lectures, is done as homework and what is usually done as homework is done in the classroom. The benefit of this model, particularly for teaching Computer Science, is that the teacher can spend more time interacting with students. There are many ways to facilitate classroom flipping. In this post I explore some of these ways and look at tips for getting the most out your flipped classroom. 1. Video Tutorials Otherwise known as vodcasting, the most common way to flip your classroom, is to use teacher created videos which students can view outside of the classroom. There are several ways that you can share your videos with your students – probably the most popular being YouTube (www.youtube.com) however, you can also use other video sharing sites such as SchoolTube (http://www.schooltube.com), TeacherTube (http://www.teachertube.com), or if your school has one, your schools own VLE. The added bonus of using video sharing sites such as YouTube is that videos can be grouped into playlists and embedded into any web based tools such as the school's VLE, wiki, blog or website. You can also add useful videos from other contributors to build your playlists. Students can follow the lecture for homework and use lesson time to explore concepts in more detail. For examples of how you can use video tutorials to flip your computing classroom, visit Mark Clarkson's YouTube Channel: (http://www.youtube.com/user/mwclarkson) 2. Wikis A wiki allows groups of people to collaboratively develop websites with no prior knowledge or experience of website design. In the flipped classroom, a wiki can be used to host instructional videos and associated resources to introduce a concept or deliver a lesson. Students can then update the wiki and summarize what they have learned. Free tools such as PBWorks (http://pbworks.com/education) and Wikispaces (http://www.wikispaces.com) are ideal for creating classroom wikis. Wikispaces Classroom builds on the collaborative editing features of a wiki but includes some additional functionality to support the flipped classroom, features such as social interaction and formative assessment. Teachers can also monitor how often a student has read, edited or saved a page. To find out more about how to use wikis in your classroom, click here. 3. Social Media Tools Social media tools such as Edmodo and BlendSpace allow you to organise and share content such as videos, images, documents and text. The tools also allow you to create online lessons by embedding content from popular sites such as YouTube, Google, Vimeo, Flickr etc. Most tools also allow you to upload content from your computer, Dropbox or Google Drive. Tools such as Blendspace and Edmodo are ideal for flipping your classroom – students can research a topic at home and use lesson time more effectively. As a teacher you can monitor students progress and measure students understanding with the built-in quiz creation tools. You can even check to see if your students have actually viewed the resources you have shared with them. 4. Podcasting Podcasts are a wonderful way of allowing both teacher and students to share their work and experiences with a potential huge audience over the Internet. A podcast is like a radio show however, instead of being broadcast live, a podcast is pre-recorded and then distributed over the internet or to a mobile device allowing your students to listen to them when and where they please, even on the bus ride home. There are plenty of ways to share your podcast, probably one of the most famous being iTunes however, another tool worth considering is Audioboo. Audioboo is a free social-podcasting environment. With Audioboo, students and teachers can create podcasts (or boos) which can be shared with other social teaching tools such as edmodo. Probably the best example of using podcasts to support the teaching of Computer Science are those by Alan O’Donohoe: http://audioboo.fm/users/104685/boos 5. Learning to code online With online tools such as CodeAcademy (http://www.codecademy.com), LearningStreet (http://www.learnstreet.com), Grok Learning (https://groklearning.com/) and Khan Academy (http://www.khanacademy.org/cs), it has never been easier to learn how to code and now, thanks to such tools, it's never been easier to flip your computing classroom. Using the flipped classroom model, students can learn the basic syntax outside the classroom thus allowing the teacher to use classroom time for problem solving and supporting students with practical tasks. For more about the flipped learning model and how it can be used to support the teaching of Computer Science, click here: Make the most of your Computing lessons: flip your classroom. Resources Resources and tools to support the teaching of Computational Thinking Software / Tools 1. TouchDevelop TouchDevelop is an online app creation tool from Microsoft Research. Originally designed to develop Windows Phone 7 apps, TouchDevelop has recently been updated as a web app and now allows you to develop Windows Store apps suitable for Windows 8 touch screen devices. TouchDevelop is easy to use and works with several web browsers. A great starting point for using TouchDevelop is the Turtle library. The Turtle Library is great for introducing algorithm design. Students instruct the turtle by using simple instructions such as forward, right turn. Best of all, it's free and can be used on almost any web enabled device. To see an example of how you can use TouchDevelop to teach algorithm design, click here: TouchDevelop Challenge - Turtle Challenge 2. Scratch Scratch is a project out of the MIT Media Lab. It allows users to program their own interactive stories and games with animated content. Scratch is specifically designed to make programming accessible for students (they recommend ages 8 and up). The website hosts support materials, user-created content and sample code to help you get started. There is an abundance of free resources available online to support the use of Scratch in the classroom. A great place to start introducing algorithms in Scratch is the Scratch Dance tutorial. 3. Kodu Kodu is a visual programming language made specifically for creating games. It is designed to be accessible for children and enjoyable for anyone. The visual nature of the language makes it easy for younger children to start programming. Characters and events are controlled in Kodu using simple When and Do command making it easy for pupils to create sequences of instructions. Click here to access a set of Kodu challenges designed especially for a classroom setting. 4. App Inventor App Inventor is a great tool to teach programming to high school students. Like Scratch, App Inventor uses a drag-and-drop interface that allows you to assemble block commands and from these, build your app. 5. Minecraft What is Minecraft? Minecraft is a sandbox game where players have to build structures, fight monsters, hunt for food and gather resources in order to survive. Using Minecraft to teach coding. There are lots of ways to use Minecraft to teach coding and various plugins for the retail version of Minecraft such as Raspberry Juice which allow you to manipulate the Minecraft world using the Python programming language. There are also specific Minecraft Pi Edition - http://pi.minecraft.net/ Minecraft: Pi Edition is a version of Minecraft that’s designed to work on the Raspberry Pi - a cheap credit-card sized computer designed to help you to learn programming. The Pi edition has the added feature that you can program it using either Python or Java and is intended as an educational tool for novice programmers. It is available to download for free, from the official downloads page The Raspberry Pi foundation has created some fantastic tutorials to get you started: http://www.raspberrypi.org/learning/getting-started-with-minecraft-pi/ whilst Martin O’Hanlon and David Whale have teamed up to write a fantastic book called 'Adventures in Minecraft' - Adventures in Minecraft teaches young people to customise their Minecraft world with amazing structures and new gaming experiences, developing Python programming skills along the way. Minecraft Edu - http://minecraftedu.com/ According to the official website: "MinecraftEdu provides products and services that make it easy for educators to use Minecraft in the classroom. MinecraftEdu make a special version of Minecraft specifically for classroom use. It contains many additions to the original game that make it more useful and appropriate in a school setting." MinecraftEdu also offer a cloud-based solutions for schools for hosting Minecraft classroom servers so students and teachers can connect and play together securely. MinecraftEdu also hosts a library of lessons and activities that are available for free as well as a teacher community exploring uses of Minecraft in the classroom. Programming with Minecraft Edu ComputerCraftEdu provide a free plugin which is pre-installed with the MinecraftEdu setup which allows you to code in Minecraft. There are a variety of ways to create code: dragging and dropping, grid clicking, keyboard input and code editor (using the Lua programming language). ComputerCraftEdu also includes a handy turtle feature. Here is a handy guide for getting started with ComputerCraftEdu: http://services.minecraftedu.com/wiki/Programming_with_ComputerCraftEdu Using Minecraft to teach Computer Science theory. Minecraft can also be used to teach theory elements of the Computing programme of study. A great example of this is Ray Chambers lesson using Minecraft to teach logic gates using Red Stone (See Game Based Learning above). For more about using Minecraft in the classroom, click here: Using Minecraft in the education: A compilation of my favourite classroom projects. Apps
5. ScratchJr Inspired by the Scratch programming tool, ScratchJr is is an introductory programming language that enables young children (ages 5-7) to create their own interactive stories and games. Although based on the popular Scratch (drag-and-drop) block programming environment, the ScratchJr interface has been re-designed to make it more suitable for a younger audience. Publisher: MIT Media Lab Price: Free 6. Tickle App Tickle App is a free visual programming app for the iPad/iPhone. Using a ‘Scratch style’ interface, Tickle App introduces you to code through games creation and story-telling using its built-in animations and sound. With Tickle App (see Apps), you can also seamlessly connect to a number of physical devices such as Arduino, Dash & Dot, Sphero, Ollie, Parrot mini drones, Rolling Spider & Jumping Sumo, and Philips Hue smart lighting systems. Publisher: Tickle Labs, inc Price: Free Create games, stories and control a variety of physical devices with Tickle App. Gadgets / Tech 1. Parrot AR Drone What is an AR Drone? The Parrot AR Drone is a camera-equipped, smartphone and tablet controlled quadrocopter. (See video below) Thanks to work by Lucas Beyer, a 15 year old student from Barcelona, it is now possible to program the AR Drone with Python script using a piece of software called Autoflight: AutoFlight is a free download which features AR.Drone control with a gamepad or joystick, sensor data logging, 3d mapping, Python scripting to automate the drone's behavior and Arduino extensions. Price: AR Drone: Brand new, an AR Drone 2.0 is about £270 however, a second hand AR Drone 1.0 can be picked up from ebay for as little as £50. Both models can be controlled using the Autoflight software. Autoflight software: Free Download Autoflight here: http://www.lbpclabs.com/autoflight.html
2. Sphero & Ollie What is Sphero? Sphero is the world’s first robotic ball which you can control with your smartphone. (See video below) What is Ollie? Coming off the back of the huge success of Sphero, Ollie is the two-wheeled, Sphero inspired, app controlled ‘big brother’ to Sphero. With a larger processor and more powerful motor, Ollie is designed for speed and teaching the robot to perform tricks. http://www.sphero.com/ollie Sphero SPRK Sphero-SPRK is the latest edition to the Sphero family directly targeted for the education market. Sphero-SPRK comes with a dedicated app (SPRK app) straight out of the box designed to encourage students to code. The SPRK app lets you control the Sphero with visual blocks representing code – using their own C-based language called OVAL. Sphero also provide a series of lessons (http://www.sphero.com/education) to support the use of Sphero in the classroom designed around supporting a variety of STEM topics – including programming. http://www.sphero.com/sphero-sprk Controlling Sphero/Ollie/Parrot Rolling Spider with Tickle App As well as using the official Sphero apps to control Sphero and Ollie, you can also use free third party apps such as Tickle App (iOS). With Tickle App (see Apps section above), you can seamlessly connect to a number of physical devices such as Arduino, Dash & Dot, Sphero, Ollie, Parrot mini drones Rolling Spider & Jumping Sumo, and Philips Hue smart lighting systems and program them from your iPad using a ‘Scratch-like’ interface. (Note: Some devices require an iPad 3/iPad mini or above). Price: Sphero: £100. Sphero-SPRK: $129 (Currently only available in US - Educational discounts also available). Ollie: £80. Tickle App: Free 3. Dash & Dot Dot and Dash are educational toy robots that help kids learn to code through play. Designed to appeal to younger students, Dash & Dot can be programmed via a number of free apps including Blockly for Dash & Dot (iOS/Android) and Tickle App (iOS only). Both Dash and Dot are also compatible with Lego (including Lego MindStorm) which allow you to customise your robot e.g. add a pen holder to turn your robot into a Turtle etc. There are also a number of accessories available for both Dash & Dot including a phone holder and xylophone. Visit the official website to find out more: https://www.makewonder.com/robots/dashanddot Price: Dash: £150 Dash & Dot Pack: £190 Dash & Dot Wonder Pack (includes ): £240 Blockly for Dash & Dot App: Free Tickle App: Free
Note: Roamer has now been replaced by Roamer-Too. To find out more, click here: r-e-m.co.uk
Further reading: Interested in finding out more about Computational Thinking and how it can be applied in the classroom? Then check out the links below: PROGRAMMING IS THE START NOT THE END: LET’S DEVELOP COMPUTATIONAL THINKING AND PROBLEM SOLVING SKILLS - Article in which Dr. Tom Crick explores Computational Thinking. Computational Thinking: Searching to Speak – Paul Curzon explains Computational Thinking. Computational Thinking in Primary Schools - Miles Berry discusses Computational Thinking in Primary education. Disclaimer: All prices correct of date published. Teachwithict is not responsible for the content of external sites. Tags: Computational Thinking, Algorithm Design, Abstraction, Decomposition, Computer Science, Apps, Minecraft |
AuthorSimon Johnson Microsoft Innovative Educator Expert / MIE Trainer
Minecraft Cert. Educator / Global Mentor
CAS Master Teacher
Raspberry Pi Cert. Educator
Tickle Ambassador
Archives
June 2017
CategoriesAll Algorithms Cpu Fundamentals Hardware Input & Output Memory OCR A451 Software Storage |