Students develop and employ strategies for understanding and solving problems in ways that leverage the power of technological methods to develop and test solutions.
- 5a. Students formulate problem definitions suited for technology-assisted methods such as data analysis, abstract models and algorithmic thinking in exploring and finding solutions.
- 5b. Students collect data or identify relevant data sets, use digital tools to analyze them, and represent data in various ways to facilitate problem-solving and decision-making.
- 5c. Students break problems into component parts, extract key information, and develop descriptive models to understand complex systems or facilitate problem-solving.
- 5d. Students understand how automation works and use algorithmic thinking to develop a sequence of steps to create and test automated solutions.
Computational thinking refers to a set of thinking skills, processes, and approaches to solving complex problems by drawing on concepts from computer science (Wing 2006). It involves skills as defining problem, analyzing and representing data, using abstraction, conditional logic, algorithmic thinking to solve problems. Computational thinking is a thinking process which is like a computer scientist to solve problems can apply to every area besides computer science. It is an essential skill for the generation who are living with ubiquitous computing in the 21st century and also the preparation for every younger student to adapt and handle the variable digital world with developing a mindset of mathematics, abstraction, and algorithmic. We know that CT can be grown in many areas as reading, writing, even cooking but as known, programming is the best and efficient way with which students will get challenges on problem-solving, debugging, program design, and implementation. Programming is a tough journey needed understanding many abstractive concepts and overwhelmed debugging for K-2’s students; Also a road with bushes for teachers with many difficulties in teaching. So the age-appropriate educational technologies involved and explicit learning objective building are paving the path to the development of computational thinking.
As the educator for younger students, we need to choose age-appropriate programming tools which can motivate active learning and also can scaffold to build fundamentals concepts. Low floor, high ceiling as the guiding principle for teachers to make a decision on this step. The programming tool should be easy for the beginners to build confidence and interests on a child-attractive interface to design program (low floor); also be powerful and extensive enough to satisfy advanced learning needs (high ceiling).
As Chart 1 shows, there are many kinds of programming tools fit the different range of ages. As educators, we need to choose age-appropriate programming tools to develop younger students’ computational thinking concepts. Following, I will introduce three typical tools and analyze their functions of the development of the mindset of CT.
Block-based programming app (ScatchJr)
The block-based programming app as ScatchJr can scaffold younger students to make project design through logical programming but doesn’t need to master the complex coding syntax which can motivate their enthusiasm and increase engagement. The block-based mode compensates for the limited of abstractive cognition for younger age and also can help to understand the abstraction of logical sequence step by step and build a connection between the codes and actions. ScatchJr can provide opportunities to lead a peer-collaborative “code to learn” activity. Students will not receive the knowledge of specific programming language passively but design a cross-subject project using programming tool actively in which process they will develop CT concepts from different aspects. (Chart 2)
Puzzle-based programming app (Playground)
Always the puzzle-based programming app can attract younger students easily because of a game-based interface. It is not like ScatchJr can lead a peer-collaborative PBL through programming, but it is an excellent tool for afterschool autonomous learning. From the Playground app, students need to solve a special problem (get the gem) by different levels. In the Playground, students can create functions for the repeat complex actions which involves algorithmic thinking and abstraction mindset. They also need to debug and test the solution iteratively before the next level. The higher level is, the more algorithmic functions need to be involved, the more complex CT will be developed.
Tangible Robot (Dash and Dot)
The milestone of teaching programming for young students is to build their abstractive cognition. The manipulative programming robot can melt the digital world with the reality that enable students to see actual movement consequence in the physical world. Dash and dot is the robot controlled by five apps from simple concepts to complex concepts which adopt the principle of a low floor and high ceiling. The Blocky app can scaffold students to debug variable data and test their programming through the movement of the robot. They need to analyze the data and represent data from the robot to achieve the final solution. In the Wonder app, students can make a design presented from the robot to create an innovative project. The programming robot reveals complex computational concepts into reality (Chart 2) and builds a bridge to guild students enter into the digital world with wonder and interests.
In the thriving digital world, emerging programming tools are being designed. The three tools above point to the majority of educational technologies for programming in education. Teachers need to analyze the students’ diversity of traits and choose the appropriate ones to cultivate CT for younger students. The appropriate programming tool can change students’ role from consuming media to producing through which they can positively grow intelligence and build CT when they deal with the logical sequence of commands; debug errors and test solutions iteratively; solve problems with algorithmic thinking. In the learning process, teachers need to set CT as the learning objective focusing on the growth of younger students’ CT mindset rather than learning a specific syntax and well-design problem-based, thematic tasks to support the fundamental concept development. For the younger students, the CT mindset is much more important than mastering a specific computing language without any meaning.
- Estapa, A. aestapa@iastate. ed., Hutchison, A., & Nadolny, L. (2017). recommendations to support computational thinking in the elementary classroom. Technology & Engineering Teacher, 77(4), 25–29. Retrieved from http://ezproxy.spu.edu/login?url=http://search.ebscohost.com/login.aspx?direct=true&AuthType=ip&db=eue&AN=126504576&site=ehost-live
- Buitrago Flórez, F., Casallas, R., Hernández, M., Reyes, A., Restrepo, S., & Danies, G. (2017). Changing a Generation’s Way of Thinking: Teaching Computational Thinking through Programming. Review of Educational Research, 87(4), 834–860. Retrieved from http://ezproxy.spu.edu/login?url=http://search.ebscohost.com/login.aspx?direct=true&AuthType=ip&db=eric&AN=EJ1147643&site=ehost-live
- Ching, Y.-H., Hsu, Y.-C., & Baldwin, S. (2018). Developing Computational Thinking with Educational Technologies for Young Learners. TechTrends: Linking Research and Practice to Improve Learning, 62(6), 563–573. Retrieved from http://ezproxy.spu.edu/login?url=http://search.ebscohost.com/login.aspx?direct=true&AuthType=ip&db=eric&AN=EJ1193283&site=ehost-live
- Barr, D., Harrison, J., & Conery, L. (2011). Computational thinking: A digital age skill for everyone. Learning & Leading with Technology, 38(6), 20-23.
- Grover, S., & Pea, R. (2013). Computational thinking in K–12: A review of the state of the field. Educational Researcher, 42(1), 38–43.