Coding has become a popular term in education recently. Many educators are integrating coding into their practice in response to myriad reports that outline the demand for computer programming skills in the job market of the near future. However, there is confusion about these three terms and how they align with each other. Indeed, “computational thinking” and “coding” are often used synonymously by educators in online discussion forums (even those devoted to technology in education). Some clarification of these terms is required.
To Lye and Koh (2014), coding and programming are not the same. They write, “Programming is more than just coding, for, it exposes students to computational thinking which involves problem-solving using computer science concepts like abstraction and decomposition” (p. 51). According to their definition, coding is an activity that occurs within a programming environment, but that does not compel the user to think computationally (as defined on the previous page). Programming, on the other hand, can only be achieved using computational skills and concepts. It is interesting to note that their description makes no mention of technology. They say that computer science concepts, but not technology, are required for the act of programming.
While Lye and Koh see programming and CT as inseparable, Kafai and Burke (2013) see some points of differentiation between the two. They describe how most proposed CT curricula suggest programming as the vehicle through which computational thinking can be taught. However, they are careful to highlight the fact that “teaching the underlying concepts conveyed by the [programming] language – not the language itself – is what’s relevant” (p. 63). In other words, programming is an effective context for CT instruction, but computational skills and concepts require explicit teaching above and beyond instruction on how to use a programming language. Wing (2006) agrees with this idea. She writes, “Thinking like a computer scientist means more than being able to program a computer. It requires thinking at multiple levels of abstraction” (p. 35). Like Kafai and Burke, Wing values the thinking that underlies the act of programming more than the programming itself. Weintrop et al. (2015) further accentuate the primacy of computational thinking over programming in their taxonomy of computational thinking for mathematics and science. In it, programming is one computational practice out of twenty-two. According to their vision, programming is an important but small aspect of the much larger entity of computational thinking.
The experts agree that coding, programming, and computational thinking are not synonymous. Not all of them use the term coding, but those who do see it as the use of computer programming languages in the absence of significant computational thought. Others appear to use the term programming to mean much the same thing. However, they all view computational thinking as a set of skills and concepts that have applications beyond the act of programming. One can employ computational thinking to solve problems far removed from programming and/or any technology whatsoever. This raises the question about the place of computer technology in a CT curriculum, and it is this question that is addressed next.
The CT taxonomy created by Weintrop et al. (2015) consists of four categories: data practices, modeling and simulation practices, computational problem solving practices, and systems thinking practices. Several individual practices, totaling twenty-two, exist as sub-categories of each of these headings. Of these, only one, computer programming, explicitly requires the use of technology. The other twenty-one do not demand it. However, several scholars have commented on the extent to which computer technology can facilitate and accelerate computational thinking. In the explanation of the data practices section of the taxonomy, Weintrop et al. (2015) state that the ability to use new technologies will allow people to “make meaning from the large amounts of data they produce” (p. 135).
Other scholars have commented on the ability of computer technology to enable computational thinking. Wing (2006) wrote, “Just as the printing press facilitated the spread of the three Rs…computing and computers facilitate the spread of computational thinking” (p. 33). Her point is well taken. The printing press, and the books it created, were not necessary for people to become literate, but they certainly created conditions in which it was easier for larger numbers of people to learn to read and write. The same, she says, is true of computers and computational thinking. Lye and Koh (2014) admit that CT can develop outside of the use of computers, but they see computer programming as the most expedient way for students to develop these skills and understandings because “…programming involves students exhibiting computational thinking through the construction of artifacts” (p. 52). In reference to CT skills, Brennan and Resnick (2012) write, “Interactive media creation is a powerful context for developing these practices” (p. 7). All these experts agree that while CT can be learned in classrooms bereft of technology, there is much to be gained by using technology to develop students’ computational thinking skills and understandings.
References
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
Kafai, Y. B., & Burke, Q. (2013). Computer Programming Goes Back to School. Phi Delta Kappan,95(1), 61-65. doi:10.1177/003172171309500111
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
Weintrop, D., Beheshti, E., Horn, M., Orton, K., Jona, K., Trouille, L., & Wilensky, U. (2015). Defining Computational Thinking for Mathematics and Science Classrooms. Journal of Science Education and Technology, 25(1), 127-147. doi:10.1007/s10956-015-9581-5
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. doi:10.1145/1118178.1118215
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
Kafai, Y. B., & Burke, Q. (2013). Computer Programming Goes Back to School. Phi Delta Kappan,95(1), 61-65. doi:10.1177/003172171309500111
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
Weintrop, D., Beheshti, E., Horn, M., Orton, K., Jona, K., Trouille, L., & Wilensky, U. (2015). Defining Computational Thinking for Mathematics and Science Classrooms. Journal of Science Education and Technology, 25(1), 127-147. doi:10.1007/s10956-015-9581-5
Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35. doi:10.1145/1118178.1118215