What is coding?
Coding is a set of instructions given to a computer to produce different kinds of output.
Why teach coding in your classroom?
Coding is becoming a very valuable skill to know. Outside of teaching your students job-marketable skills, the act of coding teaches your students mathematical logic, creative exploration, how to understand systems, and a systemic procedure that exists in common computer programs (automator, video editing, animation, web design.). We might think of this as building computational thinking skills.
Coding and learning computational thinking can begin with unplugged activities where learners engage in problem-solving, sequencing, and design. Unplugged simply means ‘without a computer’… making this form of ‘coding’ accessible to all classrooms.
Unplugged Coding Activities:
Ex1: BINARY BRACELETS
Learn Binary by building bracelets! Students can code their initials using black and white beads which represent the language of coding.
Code.org houses an impressive amount of resources to learn about coding, start coding, and even use unplugged activities inside and outside of the classroom. Each idea includes a video tutorial, lesson plan, and assessment answer key.
Kidbots demonstrates cross-curricular advantages of coding by involving numeracy, geometry, and literacy. Students design a way to rescue an item from a designated location, but a classmate is the programmable “kidbot.”
CS Unplugged – here they house lesson ideas of how to get learners working on core components of computational thinking.
aka coding with a digital device. In the BC ADST curriculum, where coding is referred to in grades 6 – 9,
aka: coding with a digital device! When we think about “plugged coding”, we might first look at students utilizing visual programming blocks. As a student’s computational thinking skills improve, they might begin to experiment with other programming languages including java and python. In the BC ADST curriculum, visual programming is referred to in Grades 6 through 9.
Visual block coding
Visual block coding is an approach to coding that represents instructions in the form of visual blocks rather than programming language syntax. This form of coding is seen to be friendlier to beginners of coding due to not having to memorize syntax due to the drag and drop feature, the “puzzle” piece aspect of the blocks that help you determine which blocks fit with one another, and a predefined list (limited choice of blocks) of functions, variables and objects you can use. While visual block coding might seem or feel like playing with logos, this is what coding essentially is at its highest level of abstraction. Once you understand how the functions, variables and object blocks work, you just need to apply language and syntax and that is coding!
Scratch is a block coding language developed by MIT that does not represent any other language (whereas with Microbits, the blocks represent Java). The actual code that is used are the blocks themselves. MET hosts a free cloud-based app and community where users can create stories, games, simulations, animations and more. Scratch Jr. is a simple mobile app allowing students to drag simple block instructions to create actions on their ipad or tablet.
Don’t be scared to start coding in “real” coding languages! Apply what you’ve learned in visual block coding and learn the language and the syntax and you’ll do fine! The first question one might ask themselves when they first decide to learn to code is: which language should I start with? Both Java and Python are good languages to begin learning to code. Both present high levels of abstraction in their language (code is more reminiscent of human language – visual coding can thought to be very high levels of abstraction.) They are also both very commonly used and have plenty of resources for you to begin learning or if you have questions. Most people also find that once they learn one language, learning new languages becomes much easier.
Guides you through a suitable set of activities that are structured to help you understand the basics of coding. Once you first sign up, you are given a 7 day free trial to their premium program which allows you to explore all exercises. Once the trial is over, you will be relegated to practice on their free exercises; albeit, not as complete but still very helpful.
Very similar to Codecademy, with a different set of exercises. As opposed to Codecademy, all exercises are free! However, the interface is not as easy to use as Codecademy and there is not as much guidance in completing exercises. If you progress further in freeCodeCamp, you might find it helpful to Google hints on how to do things and/or ask questions on Stack Overflow (a question and answer platform for computer programming.)
Directed towards more advanced coders to write and debug(fix problems) code in the form of a game. As opposed to Codecademy and freeCodeCamp, the exercises often involve multiple objectives and can take over an hour to solve. Despite its difficulty, CodinGame allows you to swap between 25 different languages. This tool is very helpful if you already know one language and you want to learn another! Don’t give up if you’re finding CodinGame hard – read the instructions very carefully and use the hints!
There are many robots out there that can be used with specific branded apps or open coding apps like Tickle. Some that we had availability to in our Sandbox Session were the following: Dash, Sphero, and Ozobots.
Hour of Code – GLOBAL CODING
Get globally connected by participating in the HOUR OF CODE. This initiative began to introduce all ages, and especially students, to the concept of coding…. in less than an hour! Hour of Code provides multiple plugged and unplugged activities so that classes around the world can begin coding. Anyone anywhere can organize an Hour of Code event – NO EXPERIENCE NECESSARY!