Search This Blog

Sunday, December 13, 2015

Keeping coding going in K8 after Hour of Code

Just because Computer Science Week (CS Week) only happens once a year doesn't mean that students' exposure to coding and computer sciences has to end, as well.  

Coding is a powerful skill for students to learn and practice. Our job as educators is to prepare students for life outside of school. In this day and age, that means preparing students for jobs that don't yet exist. We need students to learn flexibility and collaboration. We need our students to be critical thinkers and creators. According to a study out of the Oxford Martin School at Oxford (2013), approximately 47% of U.S. employment could be automated in the next 20 years, with "highly routine tasks" being at highest risk of being replaced by robots or computers. This information would suggest that rather than preparing students to simply follow directions and regurgitate facts and algorithms, we need to prepare students to create new technologies and to work in the "non-routine" industries that cannot be automated due to a robot's current inability to mimic human critical thinking and creative intelligence. Coding is one of the ways that we can better cultivate students' abilities to think creatively and solve problems.

So how does coding help students become better critical thinkers and creators?

8 Mathematical Practice Standards
1) Coding activities provide students with practice in important math skills including geometry standards, algebra, numbers and operations, and the 8 mathematical practices. Manipulating code, and/or creating it from scratch, demands that students make sense of problems and persevere in solving them, attend to precision, make use of structure, and look for repeated reasoning.

My favorite student quote from "Hour of Code" activities at one of my school sites:
"Look Ms. Haughs, it's a pattern!"

2) As a math TOSA/Coach, I am particularly excited about the math skills/standards practiced in the process of coding including:
  • Direction and ordinal numbers
  • Counting
  • Angle measurements
  • Distance (think, distance object will travel in terms of pixels)
  • Algebraic expressions
  • Input/Output (function tables)
  • Patterns
  • And more!
Other subject area skills learned in coding:
  • Sentence structure/syntax (ela)
  • Problem/Solution (ela)
  • Cause/Effect (ela/science)
  • Giving directions (ela)
  • Engineering design process (science/engineering)
  • And more!
3) Coding can also be another creation outlet for students. What if students use tools like Scratch or Hopscotch to create a game or animation that describes what they learned? Or coded a RaspberryPi to create a machine or robot that can help solve a problem on their school campus? For students that learn to code, the sky's the limit when it comes to creative demonstrations of knowledge!
During hour of code, many teachers exposed students to introductory block coding using the website, and students followed directions to practice using code to make things happen. As students become well versed in block coding, they can begin to use blockly apps and others to modify code and then move on to creating their own code to make things happen.

Apps & websites for learning to create with code:

  • (ages 6-adult) -- Work through guided, game-like tutorials and use block coding to learn basic programming skills
  • Scratch Jr. (iPad, Android, Chrome; ages 5 & up) -- A good intro to block coding, students can create animations with up to 4 different scences using basic movement, repeat, and audio blocks

Using Scratch to model multiplying
  • BrainPop coding games (ages 6-adult) -- Students are introduced to block-based coding by playing games and completing challenges
  • Kodable (iPad; ages 5-11) -- Learn foundational coding skills and then learn to read and write code using block code
  • Hopscotch (iPad; ages upper elementary) -- Use block coding to learn core coding concepts while creating your own games
  • Scratch by MIT (ages 6-adult) -- Use block coding to complete tutorials or to create your own projects; much more freedom to create your own projects from scratch (no pun intended) and share them with the Scratch community
  • CodeMonkey (ages 6-adult) -- In a game-like setting, students learn how to use simple text-based coding by completing challenges. Each level focuses on a different coding skill and, with a classroom subscription, teachers can view their progress in the reporting tool. Students also use what they learn in lessons to start creating their own games.
  • AppInventor by MIT (ages 9-adult) -- Create Android apps that can be used on any Android device via tutorials and use of block coding
  • Khan Academy (ages 9-adult) -- More advanced coders can complete free lessons in
    4th grade on AppInventor
    JavaScript and HTML and practice coding in these popular programming languages; students can edit others' projects or create their own from scratch; once students have a strong understanding of Java or HTML, they can begin to use these languages in other programs to create applications or websites (Google Sites is a great way for students to start using their HTML skills to edit website designs or create new designs from the ground up)
  • PythonRoom (ages 10-adult) -- Let's anyone learn or teach the Python language in a self-paced environment; individuals can practice learning Python on their own or teachers can create a class online and monitor student learning for free
  • Codecademy (ages 10-adult) -- Free, online, self-paced resource for learning popular coding platforms including JavaScript, HTML/CSS, Python, Ruby and more. 
  • Google Apps Script (ages 10-adult) -- Google Apps Script uses a JavaScript platform and students with a solid understanding of JavaScript can make their own add-ons for Google Applications by creating Google Apps Script; Alice Keeler has also written a few nice tutorials for those that want to get started making their own Apps Script
  • (ages 14-adult) -- W3Schools provides free online lessons in HTML, CSS, JavaScript, and more; self-paced lessons for older students who want to explore commonly used coding languages

Favorite tools for learning physical computing and coding:

  • Arduino -- An electronics platform and robotics controller, run on the Arduino programming language, for creating interactive projects. 
  • MakeyMakeys -- Complete circuits to control the keyboard. 
  • RaspberryPi -- Credit card sized computer for exploring physical computing and learning to code using Scratch and Python. Create a traffic light, build a security camera, develop a digital weather stations, hack Minecraft, assemble a battery powered vehicle, and so much more using a RaspberryPi computer!

1 comment:

  1. Nice list with a few goodies I wasn't familiar with . We use as our jump off into Python, a good place to start your first text based coding.