CHAPTER
8
Why Introduce Students to Coding with Block-Based Programming Languages?
Code.org was founded in 2013 with the primary mission of promoting computer science. The organization believes that every student in every school should have the opportunity to learn computer science. While this is a great concept in theory, it is much more difficult for the K–5 teacher to fit into their already full schedule. However, it is essential that we find ways to do so. According to Code.org,
Computing is a fundamental part of daily life, commerce, and just about every occupation in our modern economy. It is essential that students are exposed to the field of computer science in our K–12 system—as it is foundational in transforming the way a student thinks about the world. It not only teaches them about technology, it also teaches them how to think differently about any problem. Computer science puts students on the path toward some of the highest paying, fastest growing jobs in America. (Code.org, 2017)
As of this publication, Code.org states that only 45 percent of our high schools teach computer programming to students. More shocking is that only 11 percent of students graduating from STEM programs go into the field of computer science; however, 67 percent of all new jobs in STEM are in computing (Code.org, 2017). Thus, if we want to strengthen our K–12 CS pathways, exposing all students to computer science, beginning in kindergarten, is essential.
Diversity Within Computer Science
With only 20 percent of girls entering high school computer science classes, the diversity problem begins in K–8. The good news is that women who try AP computer science in high school are ten times more likely to major in it in college. The statistics for African American and Hispanic students show that they are seven times more likely to major in computer science in college if exposed to it during their K–12 educational career (Code.org, 2017).
One simple step that any educator at any level can participate in is Code.org’s Hour of Code. The Hour of Code is a global movement reaching tens of millions of students in more than 180 countries. No experience is necessary, and anyone can organize an Hour of Code event. For tutorials and more information visit hourofcode.com.
Just participating in and exposing all students to coding can shift mindsets toward a more diverse computer science workforce. This can be seen in the research done immediately before and after the Hour of Code by examining the following four-point Likert scale that used the following statements:
- I like computer science.
- I think computer science is interesting.
- I have the ability to learn computer science.
- I am better at computer science than most kids at my school.
It should be noted that the first two statements comprise the construct of “attitude” in the studies, while the second two comprise the construct of “self-efficacy.” The pre-survey also included a question on previous experience, allowing students one of three options: never done an Hour of Code, only done an Hour of Code, done more than an Hour of Code.
The findings of the study concluded that there were statistically significant changes in students’ attitudes toward and self-efficacy with computer science, after engaging in just one Hour of Code activity. Most students in the study engaged in only forty minutes of tutorials, but this suggests that simple exposure to computer science might be a critical first step in engaging underrepresented groups in the area of computer science (Phillips & Brooks, 2017).
Easy, Free, and a Worldwide Educational Community
Block-based programming languages were designed to be used by students, scholars, teachers, and parents, making the languages very easy to learn and use. Scratch, Snap, and Blockly are all free visual programming languages that use a drag-and-drop environment of visual LEGO-looking blocks to easily create animations, games, and stories. They provide a steppingstone to the more advanced world of computer programming, as users can see instant results without needing to be versed in the language of code. As users grow more familiar, they can “read” the code within the blocks.
Block-based programming languages are not just for kids or teens; teachers and adults can use coding to create effective educational tools such as math quizzes, physics simulations, and educational videos. Many visual programming languages include access to free teacher communities. For example, the website Scratch ED (scratched.gse.harvard.edu), supported by Harvard University, has resources for teachers, including a variety of educational levels, content types, curricular areas, and languages. Content types include activities, assessments, curriculum, handouts, lesson plans, presentations, reference guides, research, sample projects, textbooks, tools, tutorials, and websites.
The University of California Berkeley Snap! community has an event called Snap!Con (bit.ly/34OrfWS), which provides a serious computer science platform kids and adults can use to create and share projects.
Computational Thinking Made Visible
Programming requires students to use cognitive and metacognitive strategies linked to computational thinking. Among the strategies used are thinking sequentially, exploring cause and effect, persevering through problem solving, and understanding design thinking in application. Scratch is hands-on and highly engaging, as students manipulate “sprites” (characters) and code blocks to create original content. The process is open-ended—there are myriad ways to make characters move, speak, and interact—and allows students to learn about math and language in a meaningful and motivating context.
In an article published in the journal Communications of the ACM (Association for Computing Machinery) titled “Scratch: Programming for All,” the researchers recognize that it has become commonplace to refer to young people as “digital natives” due to their use of and fluency with technology. It recognizes that many young people are comfortable sending and receiving text messages, playing online games, and browsing the web, but the researchers question if this really makes them fluent, as few are able to create their own games, simulations, or animations. Mitch Resnick compares this to students being able to “read” but not “write” (Resnick et al., 2009).
If digital fluency means being able to design, create, and invent with new media, then visual programming languages are an excellent tool in making this kind of thinking visible. More importantly, programming supports computational thinking. Using CT helps students to learn important problem-solving and design strategies that carry over to non-programming domains. It provides opportunities for students to reflect on their own thinking and even to think about thinking itself, as students work to find errors within their thinking and then correct those errors to make their games work.
Check out Mitch Resnick’s TED talk “Let’s teach kids to code.” bit.ly/34PB1rH
Metacognition
Flavell (1979) described metacognition as the interplay between goals (what the learner is trying to achieve), strategies (how the learner tries to achieve it), metacognitive knowledge (what the learner knows about learning), and metacognitive experiences (how the learner thinks about that knowledge in action). The significance of metacognition in a variety of learning and cognitive processes has long been recognized.
Metacognition plays an important role in oral communication of information, oral persuasion, oral acquisition, attention, memory, problem solving, social cognition, and various types of self-control and self-instruction (Flavell, 1979). The ideas of self-control and self-instruction described by Flavell—varyingly referred to as self-control, self-instruction, self-regulation, self-efficacy, and self-directedness—speak directly to the idea of learner agency. Bandura (1997) highlighted the significance of these capacities, for supporting learning as both a lifelong and life-wide activity. Development of capabilities for self-directedness enables individuals not only to continue their intellectual growth beyond their formal education but to advance the nature and quality of their life pursuits. Changing realities are placing a premium on the capability for self-directed learning throughout the lifespan. The rapid pace of technological change and the accelerated growth of knowledge require continual upgrading of competencies if people are to survive and prosper under increasingly competitive conditions (Bandura, 1997).
Metacognition has been shown to increase student ability in the area of problem solving, which is useful when programming in Scratch. Teachers can help to facilitate this thinking by engaging students in metacognition, or thinking about their thinking, by asking students a variety of questions, such as:
- What was your biggest challenge throughout this project? Can you remember what you were thinking when you faced this challenge?
- Are there different ways to make a character move? How did you identify the different ways?
- What would you do differently if you had more time?
- How do you think your thinking would have changed if you had to work with a partner?