There are many web apps and software applications available to have students learn code and programming.
I see them falling into 3 categories:
- Drag and drop (students put together blocks that have the code embedded) These programs are like Scratch, Scratch Jr., and Hopscotch, just to name a few.
- Writing code to solve challenges (students are guided through how to write code in order to solve challenges in a game like platform) Code Monkey would be a good example of this.
- Writing code to enforce self-directed tasks (students write code to create tasks, draw objects, or solve problems given to them) An example of this would be Terrapin Logo Programming. A ‘No floor, no ceiling’ learning philosophy allows for both teachers and students to use this software to truly support and enhance any curriculum.
- Codea is an app that allows you to create games, and would also fit in this group, partially. Students do write the code, but there is also a component of clicking on the ( ) to add code for colors, animations and other features. It would actually be a cross between drag and drop and writing code since it gives you some shortcuts.
What type of tool should you use to have students programming in your classroom? It comes back to your learning goals. If you want students creating stories, or games that support problem solving and determining cause and affect then maybe you start them off with a simple drag and drop program that students won’t need to write code, but simply build the code to create a product. In the ‘drag and drop’ programs the focus is more on the creation, not the code writing.
To introduce and reinforce code writing, the middle category works well since students have to work through their code, remembering the language to get their character through the game (in this case the monkey to the banana). I see this as an easy first step in writing code, since it takes students through the code, practicing and completing ‘trail and error’ steps to accomplish goals. It also reinforces basic math concepts of positive and negative numbers and angles.
If you want them to focus on specific curriculum and learn a different language doing it then you’ll want to use a coding program that has more options and students can write the code they need. The later type allows students to write code to accomplish various tasks which can be self initiated and self directed by the student, or teacher directed as far as the task goes (then allowing students to solve the task using their own solutions through programming).
You may also look at the three categories as building blocks for students, forming a continuum of coding experiences. Each allowing students to see cause and affect, and trouble shooting through progressive steps that create an end product, whether it is a game, website, story or other animation.
Which category from above do you like to use with students the most? Share here and let us know.
Other Coding Resources:
Coding in the Classroom Shows various tools that students can use to learn programming.
Code.org Takes students through a series of lessons, building coding skills. Falls into the ‘drag and drop’ category. After going through the lessons students can become artists or game creators.
Khan Academy Hour of Code A series of lessons taking students through the steps of learning to code.
Codecademy When you are ready to learn more sophisticated code like HTML, CSS, Java, Python, or Ruby this is where you’ll want to go.