January 12, 2014
I have recently received a couple of messages through the Facebook Page of Educational Technology and Mobile Learning about resources on teaching coding to kids and instead of sharing them individually I decided to write this guide for all of you.
Let me start with this syllogism: All students are able to learn math, coding originates from mathematical concepts,so all students can learn coding.But why is it that coding and computer science are not yet compulsory subjects in schools? The technological world is advancing in spectacular speed and weirdly enough kids and teenagers are those who are catching up with it the most and yet we do not provide them with a nurturing environment to not only learn about how to use technology for educational purposes but more important learn how this technology works.
Learning at a metacognitive level is much more empowering than any other type of learning . It is empowering in the sense that it provides the learners with a rich and mindful know-how that they could employ in novel and different experiences. This is the core of transformative learning.
When Jeff Bezos, CEO of Amazon, was asked about the secret behind his sweeping success behind his e-commercial enterprise, he simply attributes it to thinking in the right mindset, or what he called second phase automation. Instead of using technology to do the same old processes but just faster and more efficiently, Jeff thought about new ways to use this technology to change the underlying old processes and do things in a completely novel ways. Let me elaborate more on this idea of second phase automation.
Amazon is a stark embodiment of this kind of thinking. Before the creation of Amazon, the web was teeming with all sorts of e-commerce websites which were replicating each others processes and using technology to do the same things anyone can do in the physical world. They were simply transferring life as it is done in the physical space to the online world of the internet. Jeff was well aware of this and instead of jumping on the evolution wagon, he instead preferred to do revolution.
Amazon is not only a shopping site where people get to buy things they want but is also a social community where shoppers get to share their recommendations for goods they have bought or tried. They also get to rank products and leave comments and feedback for others to read before shopping.
Unfortunately, the majority of schools still do not think in this growth mindset and that is why they still use technology in an evolutionary way. However, there is now some new hope that things will change particularly with the recent push from the scientific circles as well as from growing public opinion on the necessity of teaching kids to use technology transformatively, in other words, there is now a burgeoning pressure to teach kids about how technology works and at the core of this teaching is coding.
In his wonderful TED talk " Let's teach kids to code ", Scientist Mitch Resnick made this beautiful analogy :
When kids learn to code , it enables them to learn many other things, opens up many new opportunities for learning. It's useful to make an analogy to reading and writing, when you learn to read and write it opens up opportunities for you to learn so many other things, when you learn to read you can then read to learn, which is the same thing with coding, if you learn to code you can code to learn
Drawing on Mitch's talk together with a bunch of other online resources, I came up with this list of skills kids get to learn from coding . These skills are also relevant for all other sorts of activities:
- It helps kids learn in meaningful context
- It teaches them that learning is a process and not a product
- It teaches them how to take complex ideas and break them down into simpler parts
- It teaches them how to collaborate with others
- It also teaches them how to keep persistent and persevere in the face of frustration when things are not working well
- it teaches determination and risk-taking
- It helps them become fluent with technologies and enable them to open open up and express their ideas.
- It helps them be creative
- It helps them interact with the world around them
1- A beginner's guide to HTML and CSS
A Beginner’s Guide to HTML & CSS is a simple and comprehensive guide dedicated to helping beginners learn HTML and CSS. Outlining the fundamentals, this guide works through all common elements of front-end design and development.
2- Code Academy
This is my favourite coding platform and it is the one I myself used to learn about coding. It provides lessons that cover everything students need in order to learn how to code from the basics to the advanced coding.
Using an innovative programming environment to support the creation of 3D animations, the Alice Project provides tools and materials for teaching and learning computational thinking, problem solving, and computer programming across a spectrum of ages and grade levels
4- Daisy The Dinasour
Learn the basics of computer programming with Daisy the Dinosaur! This free, fun app has an easy drag and drop interface that kids of all ages can use to animate Daisy to dance across the screen. Kids will intuitively grasp the basics of objects, sequencing, loops and events by solving this app's challenges. After playing Daisy, kids can choose to download a kit to program their own computer game.
It has tutorials for all kinds of learners starting with newbies and moving progressively in difficulty to advanced learners. It also has an editor where you can try out your codes and see how they would look like when you use them on your blog or website.
6- Code School
Code School teaches web technologies in the comfort of your browser with video lessons, coding challenges, and screencasts.
- Coding via Drag-&-drop interface
- Kids build games and mobile apps by arranging blocks of code.
- Removes the need to know progamming syntax
- Kids transform ideas into animated stories and math art right away.
- Promotes progressive learning
- As kids learn fundamentals, Tynker introduces more advanced concepts including syntax driven programming.
Inspired by MIT's Scratch, the Hopscotch programming language works by dragging and dropping method blocks into scripts. When you're done with a script, press play to see your code in action! As you get more advanced, you can add more objects and use custom events, such as shaking and tilting the iPad, to run your code.
2- Cato's Hike
This is a cool app for learning about coding. Some of its features include :
- Simple programming interface using beautiful cards with pictures
- A visual manual to help guide parents and more interested users
- Loops, branches and if/else, goto labels, looking and chaining looks to look ahead, goto's, and simple memory using colored flags are the main tools used to introduce programming
- 60 levels and 12 tutorials (always working to add more!)
3- Hakitzu Elite
We think Codea is the most beautiful code editor you'll use, and it's easy. Codea is designed to let you touch your code. Want to change a number? Just tap and drag it. How about a color, or an image? Tapping will bring up visual editors that let you choose exactly what you want.
5- L2Code CSS
Are you CSS ready? Cascading Style Sheets (CSS) is the next step from basic HTML. If you want more control over the look and formatting of your webpage, then the L2Code CSS app will help you easily learn how. It provides step-by-step instructions and practice tutorials to help you master layout, colors, and fonts.