Welcome to the week on Computational Thinking and Robotics.
Many teachers are not comfortable teaching with, nor about, algorithmic thinking, or wisely integrating computational thinking into their lessons, but they should be. What about you? Computational thinking is not the same as Coding, which is different still from the science of computing. The ISTE student standards are directed toward Computational thinking. But many schools equate that with learning to code or more specifically use something like An Hour of Code.
For a full hour-long version of hour of code I’d recommend the 2013 Mark Zuckerberg Hour of Code Angry Birds Challenge using Blockly. {for novices this is strongly recommended… and at the end you’ll get a certificate! the fully online version of this module requires this as a class-day activity}
Teachers need to understand the distinction as well as have ideas about how to incorporate computational thinking into their lesson plans. Efforts have been made to increase the participation of underrepresented teachers and students in STEM fields by combining hands-on earth science and environmental engineering with middle school science activities that engage students to use models, to then modify those models, and later create their own models of science concepts and complex systems, using tools like StarLogo or StarLogo Nova block programming environments that work on Chromebooks. Project GUTS is one example that encourages women in science teaching.
Resources
So first let’s distinguish among Computer Science, Coding, and Computational Thinking.
Computer Science vs Coding. In 2016 then President Obama directed US Education to initiate a Computer Science for All program. This effort continues with the hope of enticing more underrepresented students into careers related to computer science, as described by Ed Week 2018. So what’s the difference between computer science and coding? What’s the difference between architecture and construction? What’s the difference between Geology and ditch digging? One is about a science and another is an applied skill. Computer Science is a mathematical science focused on graph theory, logical structures and the rules that govern any computing system. While coding is a skill with a particular computer language (such as Swift, C++, Basic, Java, Ruby, C#, PhP, Unity, SQL, and Rust). Some of these coding languages are associated with particular industries, such as Unity for creating epic video games and Swift for producing mobile apps. There are additional good distinctions between coding and Computer Science here.
Many of us learned about the LOGO turtle to learn coding at a very early age. Logo was created by Seymour Papert, a prolific and amazing combination of MIT professor and student of early childhood development who studied with Jean Piaget. Recently MIT has release MINECRAFT 3D Scratch tools and games.
Next let’s distinguish between Coding vs Computational thinking.
The ISTE standard for students #5 is “Computational Thinker.” When you teach, your classes are supposed to help students become computation thinkers, just as much as they are supposed to support them as good readers and writers. How might you do that? First, you need to understand what a good computational thinker is, just as you may know what a good reader and good writer are.
Here is a definition of Computational Thinking from Carnegie Mellon’s Center on the topic.
- You can learn computational thinking by studying computer science.
- You can learn computational thinking by learning to program robots like the earlier Logo Turtle or the more contemporary drones with Tickle and BB-8’s or just using online games like Tynker. Microsoft has coding supports for teachers called MakeCode, that supports several types of robots including Micro:bits (for elementary projects) or Arduino devices (for more advanced engineering).
- You can learn computational thinking (logic) using examples from everyday tasks like party planning [NOTE: to view this example you will need log in as a GUEST]. And you can learn computational thinking with just plain paper.
Coding Languages appropriate for K-12 Teaching
Reasons for teaching coding in K-12 in an integrated way:
- Economic and workforce development for computer science related careers
- Equity & Social Justice- ensure in-school access that may be unavailable at home
- 21st century digital skills and literacies- even your smartphone and thermostat need to be programmed
- citizenship and civic life- voting on artificial intelligence marketing, big tech monitoring, etc.
- drive tech and social innovation across disciplines- Digital arts, transmedia literature, etc.
- school reform- personalized learning, remote and online classrooms
- fun, personal fulfillment- video gaming, social networking, etc.
WITTLE!
But be careful– just learning to move robots around for their own sake has been criticized as not very instructionally valuable, but instead, robots should be wisely integrated with science, math, social studies, and LA content. Just know how a Mars rover is operated is not, in itself, a significant contributor to deep understanding of the Common Core curriculum. But there is a nexus between computational thinking and many elements of the Common Core.
5th graders at Falk Laboratory School in PA interpreted fables and then used their robots to demonstrate while they read the fables to primary students.
Students at Springdale Jr. High in PA used their research on the biomechanics of joint movement to create interactive models for their health & PE class
(images and examples from Hummingbird Robots)
How does this fit in to my curriculum?
If at first you don’t think there is a connection between your content and computational thinking, then consider how much of science, big data analysis, artificially intelligent systems, fashion design, advertising, sports, and entertainment are now in a digital form.
This is true of most STEM content, with modeling and simulation being a primary tool for advancing the science of weather, cell-drug interactions, engineering, etc. Consider a simple example of teaching Natural Selection in Science. The figure to the left highlights in color the concepts from algorithmic thinking that are present in a text description of the process of natural selection. Concepts such as which ideas might be efficiently considered as variables, processes that iterate, conditional (if/then) contingencies involved, and how subcomponents (procedures) can be called through branching or recursive processes are highlighted.
Consider how YOUR lesson plan for 5221 might be enhanced by highlighting the Computational Thinking elements of the content that it is designed to teach.
Already use (or want to use) online simulations
Consider various math and science simulation (e.g., PhET Colorado sims) that might fit with your lesson plans. How might you make it clear to students how these simulations use If–Then rules to create commands that represent the model properties? Could you envision taking a moment to display how the technology makes the simulations possible?
Enduring Understanding- Student Learning Outcome from this module
This module intends to prepare teachers for ISTE Standard for Students 5D that states: Students understand how automation works and use algorithmic thinking to develop a sequence of steps to create and test automated solutions. Jobs increasingly involve automated or robotic systems, whether it is bio-manufacturing of new drugs, analyzing marketing trends with web-based artificial intelligence tools, or creating online instructional materials for schools. Many see a need for all teachers to have a fundamental understanding of computational thinking, so they can teach these skills to prepare their students for careers that do not yet exist, but will likely involve with automated and robotic systems.