Computational Thinking and Automation
ISTE Standard for Students #5 is “Computational Thinker: Students develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions.” There are four indicators listed under this standard and the last indicator reads: Students understand how automation works and use algorithmic thinking to develop a sequence of steps to create and test automated solutions. (ISTE, 2016). Automation is defined as “having computers or machine do repetitive or tedious tasks” (ISTE, 2016). The words repetitive and tedious typically have negative connotations, but when you shift your thinking and consider automation as a model for efficiency and simplicity it becomes a very positive and powerful concept. Efficiency and simplicity allow us to focus on the important issues and ideas because our thinking is not bogged down with the “repetitive and tedious tasks”. Automation is a key component of computational thinking. In order to “leverage the power of technological methods”, students need to be able to focus on the primary learning objective.
I believe that teaching elementary students coding, specifically explicitly teaching them about loops and repeat functions, allows these young learners to begin to become computational thinkers. “Coding is the language of critical thinking. It requires students to define problems, break them into parts, and be resourceful in finding the answers to their problems” (Kiang, 2014).
Teaching Loops and Repeat Functions
Code.org offers some pretty amazing teaching and learning opportunities. Some of my favorite are their unplugged lessons. While the lessons that require technology are extremely engaging, I feel that beginning with the unplugged lessons can allow for the crucial foundational understandings of the concepts being taught. These unplugged lessons allow for those “oh, now I get it!” moments that come from collaborative discussions and real-life learning experiences. Gaining these understanding before you move to more “game-like” modules allows students to approach the coding puzzles online as learning tools that are helping them develop problem solving skills and strategies that will transfer to the “real world”.
One of the major concepts in the elementary code.org curriculum is loops and repeat functions. We want students to begin to identify patterns in their code that can be replaced with a loop. “Frequently the linear set of instructions includes patterns that are repeated multiple times and as students want to write more complex and interesting programs, manually duplicating that code becomes cumbersome and inefficient. To enable students to write more powerful programs, we’ll need to rely on structures that break out of the that single linear list. Loops allow for students to structure their code in a way that repeats.” (Code.org)
My favorite unplugged lessons that introduce the idea of loops and making your code more efficient are:
Kindergarten: https://curriculum.code.org/csf-1718/coursea/8/
1st grade: https://curriculum.code.org/csf-1718/courseb/9/
2nd grade: https://curriculum.code.org/csf-1718/coursec/7/
Sources:
Code.org website (Retrieved on 2018, February 28)
Iste.org. (2017) ISTE Standards for Students. (Retrieved on 2018, March 4) from: https://www.iste.org/standards/for-students
Kiang, D. (2014). 3 ways coding and gaming can enhance learning. Edutopia. (Retrieved on 2018, March 4) from: http://www.edutopia.org/blog/coding-and-gaming-enhance-learning-Douglas-kiang