When educators consider applying the principles of Universal Design for Learning, they often think of providing multiple means of engagement first to create the conditions that allow all students to enter and remain in the learning environment and activities. The image to the right details the guidelines (in green) and checkpoints (in grey) that must be considered to ensure that all students remain engaged in the learning. The guidelines are structured in ascending order of complexity from bottom to top.
There are many points of connection between computational thinking and the guidelines and checkpoints that ensure student engagement. An analysis of the links between each of the three guidelines and CT is presented below.
Provide options for recruiting interest
Any student’s engagement in learning depends heavily upon the extent to which his/her interest is recruited and maintained. The checkpoints under this guideline outline the conditions that contribute to achieving this. The student must feel safe and able to learn without distraction. Learning experiences must be real and relevant to the student in some way. The student must have elements of choice and freedom to follow paths of interest. Computational thinking in the context of programming addresses these checkpoints.
In 1980, Papert wrote that the “kind of mathematics foisted on children in schools is not meaningful, fun, or even very useful” (p. 50). He goes on to describe school math as repetitive, mindless, and disconnected from the student. He is careful to differentiate school math from real mathematics, which he describes as “a vast domain of inquiry whose beauty is rarely suspected by most non-mathematicians” (p. 51). He sees inquiry as pivotal to the development of student interest in mathematics. Through true inquiry, mathematics becomes relevant and authentic to the student. Papert views computational thinking in programming contexts as a way for educators to guide their students toward fruitful inquiry. He writes, “In the LOGO environment new ideas are often acquired as a means of satisfying a personal need to do something one could not do before” (p. 74). More than thirty-five years later, one could substitute LOGO with any programming platform that lends itself to mathematics investigation (for example, Scratch, Alice, or Python), but the key idea is the same: within a programming environment, and with the use of computational thinking skills, the student is able to discover the mathematical ideas required to satisfy a personal need and advance a mathematical inquiry.
Modern scholars agree with Papert. Fessakis, Gouli, and Mavroudi (2013) note that computer programming environments “support autonomous or guided open-ended explorations in the process of which the children participate actively, think, and control the computer” (p. 3). Many of Papert’s ideas about computational thinking supporting mathematical inquiry are present in this statement. Situations in which the students “control the computer” and use computational thinking skills to explore mathematics are ones in which the students are active-minded and more likely to learn mathematical ideas.
A large part of recruiting student interest in mathematics is ensuring that students feel safe in their learning environments. One of the biggest impediments to the creation of such an environment is student fear of being wrong. This fear is arguably more pervasive in mathematics than in any other subject. In extreme cases, a student’s fear of making errors can lead to academic paralysis. Papert (1980) points out that computational thinking and programming breed a metacognitive stance that allows students to be more accepting of being wrong. He says that programmers almost never create perfectly workable programs on the first attempts, and that instead of asking if the program is right or wrong, they become used to asking if it can be fixed or not. The fact that testing and debugging are important computational skills speaks to a shift in mindset about mistakes. Inherent in the adoption and use of computational thinking is the acceptance of the fact that the student will make mistakes, and that these mistakes are necessary steps toward creating the desired program and, ultimately, real learning.
There are many points of connection between computational thinking and the guidelines and checkpoints that ensure student engagement. An analysis of the links between each of the three guidelines and CT is presented below.
Provide options for recruiting interest
Any student’s engagement in learning depends heavily upon the extent to which his/her interest is recruited and maintained. The checkpoints under this guideline outline the conditions that contribute to achieving this. The student must feel safe and able to learn without distraction. Learning experiences must be real and relevant to the student in some way. The student must have elements of choice and freedom to follow paths of interest. Computational thinking in the context of programming addresses these checkpoints.
In 1980, Papert wrote that the “kind of mathematics foisted on children in schools is not meaningful, fun, or even very useful” (p. 50). He goes on to describe school math as repetitive, mindless, and disconnected from the student. He is careful to differentiate school math from real mathematics, which he describes as “a vast domain of inquiry whose beauty is rarely suspected by most non-mathematicians” (p. 51). He sees inquiry as pivotal to the development of student interest in mathematics. Through true inquiry, mathematics becomes relevant and authentic to the student. Papert views computational thinking in programming contexts as a way for educators to guide their students toward fruitful inquiry. He writes, “In the LOGO environment new ideas are often acquired as a means of satisfying a personal need to do something one could not do before” (p. 74). More than thirty-five years later, one could substitute LOGO with any programming platform that lends itself to mathematics investigation (for example, Scratch, Alice, or Python), but the key idea is the same: within a programming environment, and with the use of computational thinking skills, the student is able to discover the mathematical ideas required to satisfy a personal need and advance a mathematical inquiry.
Modern scholars agree with Papert. Fessakis, Gouli, and Mavroudi (2013) note that computer programming environments “support autonomous or guided open-ended explorations in the process of which the children participate actively, think, and control the computer” (p. 3). Many of Papert’s ideas about computational thinking supporting mathematical inquiry are present in this statement. Situations in which the students “control the computer” and use computational thinking skills to explore mathematics are ones in which the students are active-minded and more likely to learn mathematical ideas.
A large part of recruiting student interest in mathematics is ensuring that students feel safe in their learning environments. One of the biggest impediments to the creation of such an environment is student fear of being wrong. This fear is arguably more pervasive in mathematics than in any other subject. In extreme cases, a student’s fear of making errors can lead to academic paralysis. Papert (1980) points out that computational thinking and programming breed a metacognitive stance that allows students to be more accepting of being wrong. He says that programmers almost never create perfectly workable programs on the first attempts, and that instead of asking if the program is right or wrong, they become used to asking if it can be fixed or not. The fact that testing and debugging are important computational skills speaks to a shift in mindset about mistakes. Inherent in the adoption and use of computational thinking is the acceptance of the fact that the student will make mistakes, and that these mistakes are necessary steps toward creating the desired program and, ultimately, real learning.
Provide options for sustaining effort and persistence
Once student interest in a task is established, further engagement depends upon sustained effort and persistence. If a student feels, for any reason, that he/she cannot move forward in the task, or if he/she has no reason to want to move forward in the task, then all engagement is lost.
The provision of feedback is crucial to the maintenance of student engagement. Feedback often provides students with the direction they need to avoid frustration and continue with the task. One of the unique features of the use of computational thinking skills in programming environments is the amount of feedback that is generated by the student’s own actions. As students build their codes, they invariably run them periodically to see if they behave as expected. Testing and debugging programs in this manner are key computational skills. As Israel et al. (2015) explain, the programming context allows students to immediately see the efficacy of their work. In other learning contexts, students might not know if their work is correct, and the teacher may not be available to tell them. In the computing context, however, feedback is immediate and students can use it to fix or build on their programs. Lye and Koh (2014) also noticed this phenomenon. Their research reveals that students from Kindergarten to undergraduates benefited from the feedback inherent in various visual coding environments as they tested and debugged their programs. Both research teams note how this feedback contributes to sustained effort and persistence.
Once student interest in a task is established, further engagement depends upon sustained effort and persistence. If a student feels, for any reason, that he/she cannot move forward in the task, or if he/she has no reason to want to move forward in the task, then all engagement is lost.
The provision of feedback is crucial to the maintenance of student engagement. Feedback often provides students with the direction they need to avoid frustration and continue with the task. One of the unique features of the use of computational thinking skills in programming environments is the amount of feedback that is generated by the student’s own actions. As students build their codes, they invariably run them periodically to see if they behave as expected. Testing and debugging programs in this manner are key computational skills. As Israel et al. (2015) explain, the programming context allows students to immediately see the efficacy of their work. In other learning contexts, students might not know if their work is correct, and the teacher may not be available to tell them. In the computing context, however, feedback is immediate and students can use it to fix or build on their programs. Lye and Koh (2014) also noticed this phenomenon. Their research reveals that students from Kindergarten to undergraduates benefited from the feedback inherent in various visual coding environments as they tested and debugged their programs. Both research teams note how this feedback contributes to sustained effort and persistence.
Papert (1980) has a slightly different perspective on the feedback that comes from testing and debugging in a programming environment. He writes:
“Typically in math class, a child’s reaction to a wrong answer is to try to forget it as fast as possible. But in the LOGO environment, the child is not criticized for an error in drawing. The process of debugging is a normal part of the process of understanding a program. The programmer is encouraged to study the bug rather than forget the error. And in the Turtle context there is a good reason to study the bug. It will pay off” (p. 61).
In addition to supporting the idea that computational thinking creates a safe learning space by reducing the threat of incorrect answers, this quote reveals something about the effect of feedback received in programming environments. First, the feedback is delivered with perfect impartiality by the program itself. There is no judgment; the code simply works or it does not. Also, within the programming environment, there is a natural progression from feedback to action. Unlike the student who tries to forget the wrong answer in math class, a student whose code does not function as desired has a natural inclination to fix it.
“Typically in math class, a child’s reaction to a wrong answer is to try to forget it as fast as possible. But in the LOGO environment, the child is not criticized for an error in drawing. The process of debugging is a normal part of the process of understanding a program. The programmer is encouraged to study the bug rather than forget the error. And in the Turtle context there is a good reason to study the bug. It will pay off” (p. 61).
In addition to supporting the idea that computational thinking creates a safe learning space by reducing the threat of incorrect answers, this quote reveals something about the effect of feedback received in programming environments. First, the feedback is delivered with perfect impartiality by the program itself. There is no judgment; the code simply works or it does not. Also, within the programming environment, there is a natural progression from feedback to action. Unlike the student who tries to forget the wrong answer in math class, a student whose code does not function as desired has a natural inclination to fix it.
Provide options for self-regulation
Students are most successful in any learning task when they can self-regulate effectively. This happens when they believe in themselves, and when that belief contributes to motivation. It involves having strategies and skills that allow them to make adjustments during tasks to keep moving toward success. It also includes an understanding of oneself as a learner that is gained through self-assessment and reflection. Computational thinking provides several ways to promote self-regulation.
Papert (1980) identifies many advantages to teaching students to think computationally. Among these is the fact that students come to understand that there are different types of thinking, and that, when confronted with a cognitive task, they are not limited to a single mode of thought. It may be that, in a given instance, computational thinking is not the most effective cognitive style, but having learned about CT gives students the knowledge that other thinking styles exist, and that they can choose from them. Angeli et al. (2016) concur with Papert’s ideas and add that computational thinking, once learned within the context of computer science, can then be applied by the student to other disciplines. This ability to direct one’s thinking at such a fundamental level provides the student with options to cope with challenging tasks.
Students are most successful in any learning task when they can self-regulate effectively. This happens when they believe in themselves, and when that belief contributes to motivation. It involves having strategies and skills that allow them to make adjustments during tasks to keep moving toward success. It also includes an understanding of oneself as a learner that is gained through self-assessment and reflection. Computational thinking provides several ways to promote self-regulation.
Papert (1980) identifies many advantages to teaching students to think computationally. Among these is the fact that students come to understand that there are different types of thinking, and that, when confronted with a cognitive task, they are not limited to a single mode of thought. It may be that, in a given instance, computational thinking is not the most effective cognitive style, but having learned about CT gives students the knowledge that other thinking styles exist, and that they can choose from them. Angeli et al. (2016) concur with Papert’s ideas and add that computational thinking, once learned within the context of computer science, can then be applied by the student to other disciplines. This ability to direct one’s thinking at such a fundamental level provides the student with options to cope with challenging tasks.
When children program computers, they essentially teach the computer how to think. When this happens, they invariably “embark on an exploration about how they themselves think” (Papert, 1980, p. 19). Papert explains how this happens in the context of his Turtle: “Programming the Turtle starts by making one reflect on how one does oneself what one would like the Turtle to do” (p. 28). Whether the child is programming a sprite on the screen or a programmable robot, he/she must consider the way he/she might think about the movement or problem at hand before he/she can instruct the computer to think about it. This is the type of reflection and self-assessment that can allow one to know oneself as a learner. Brennan and Resnick (2012) conducted many interviews with young programmers who use Scratch as their platform of choice. They note that many of these “young designers describe evolving understandings of themselves, their relationships to others, and the technological world around them” (p. 10). One interviewee self-identifies as having a “programmer’s mind” that causes him to “think about how anything is programmed” (p. 12).
References
Angeli, C., Voogt, J., Fluck, A., Webb, M., Cox, M., Malyn-Smith, J., and Zagami, J. (2016). A K-6 computational thinking curriculum framework: Implications for teacher knowledge. Journal of Educational Technology & Society, 19(3), 47-57. https://www.lib.uwo.ca/cgi-bin/ezpauthn.cgi?url=http://search.proquest.com/docview/1814440935?accountid=15115
Brennan, K., & Resnick, M. (2012) New frameworks for studying and assessing the development of computational thinking. Retrieved from http://scholar.harvard.edu/kbrennan/publications/new-Frameworks-Studying-And-Assessing-Development-Computational-Thinking
Fessakis, G., Gouli, E., & Mavroudi, E. (2013). Problem solving by 5–6 years old kindergarten children in a computer programming environment: A case study. Computers & Education, 63, 87-97. doi:10.1016/j.compedu.2012.11.016
Israel, M., Wherfel, Q. M., Pearson, J., Shehab, S., & Tapia, T. (2015). Empowering K-12 students with disabilities to learn computational thinking and computer programming. TEACHING Exceptional Children, 48(1), 45-53. doi:10.1177/0040059915594790
Lye, S. Y., & Koh, J. H. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12? Computers in Human Behavior, 41, 51-61. doi:10.1016/j.chb.2014.09.012
Meyer, A., Rose, D. H., & Gordon, D. T. (2014). Universal design for learning: theory and practice. Wakefield, MA: CAST Professional Publishing.
Papert, S. (1980). Mindstorms: children, computers, and powerful ideas. New York: Basicbooks.
Angeli, C., Voogt, J., Fluck, A., Webb, M., Cox, M., Malyn-Smith, J., and Zagami, J. (2016). A K-6 computational thinking curriculum framework: Implications for teacher knowledge. Journal of Educational Technology & Society, 19(3), 47-57. https://www.lib.uwo.ca/cgi-bin/ezpauthn.cgi?url=http://search.proquest.com/docview/1814440935?accountid=15115
Brennan, K., & Resnick, M. (2012) New frameworks for studying and assessing the development of computational thinking. Retrieved from http://scholar.harvard.edu/kbrennan/publications/new-Frameworks-Studying-And-Assessing-Development-Computational-Thinking
Fessakis, G., Gouli, E., & Mavroudi, E. (2013). Problem solving by 5–6 years old kindergarten children in a computer programming environment: A case study. Computers & Education, 63, 87-97. doi:10.1016/j.compedu.2012.11.016
Israel, M., Wherfel, Q. M., Pearson, J., Shehab, S., & Tapia, T. (2015). Empowering K-12 students with disabilities to learn computational thinking and computer programming. TEACHING Exceptional Children, 48(1), 45-53. doi:10.1177/0040059915594790
Lye, S. Y., & Koh, J. H. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12? Computers in Human Behavior, 41, 51-61. doi:10.1016/j.chb.2014.09.012
Meyer, A., Rose, D. H., & Gordon, D. T. (2014). Universal design for learning: theory and practice. Wakefield, MA: CAST Professional Publishing.
Papert, S. (1980). Mindstorms: children, computers, and powerful ideas. New York: Basicbooks.