Original file was elearn2013. tex



Yüklə 164,19 Kb.
tarix08.08.2018
ölçüsü164,19 Kb.
#61072

A Closer Look at Promoting and Teaching Computational Thinking

Li Xu


University of Arizona South

1140 North Colombo Avenue

Sierra Vista, AZ 85635

United States

lxu@email.arizona.edu
Abstract: Since Jeannette Wing proposed a grand vision that “computational thinking will be a fundamental skill used by everyone in the world in the middle of the 21st century” (Wing, 2006), the vision has been realized to a reality in many areas including engineering and sciences. However, what is the best pedagogy for promoting and teaching CT is still a research and unanswered question (National Academics, 2011). This paper reviews and summarizes the available empirical evidences on promoting and teaching CT in problem solving and writing, focusing on abstraction, automation, and analysis. The review includes teaching CT to K-12 teachers and college students across disciplines.

Introduction

In 2006, Jeannette Wing coined the term Computational Thinking (CT). Wing explained and elaborated that CT is a key for solving problems, designing systems, and understanding human behaviors by drawing Computer Science (CS) concepts (Wing, 2006). In the same paper, Wing proposed a grand vision that “computational thinking will be a fundamental skill used by everyone in the world in the middle of the 21st century”, and CT should be added to every child’s analytical ability in addition to reading, writing, and arithmetic. The need to develop CT skills in children requires teachers and decision makers in K-12 to understand what and how CT can be included in their curricula. On college campus, undergraduate STEM students need to develop high-order thinking and metacognitive skills in problem solving, which is verified by program accreditation documents and employer requirements. CT could be taught to the undergraduate students so that they would be more competent on critical thinking and problem solving. Guzdial (2008) pointed out that “Computing professionals and educators have the responsibility to make computational thinking available to thinkers of all disciplines” and “the metaphors and ways of thinking about computing must be explicitly taught.”

Even though research has shown that in practice students have already experienced different aspects of CT in K-12 classroom (Mannila, Dagiene, Demo, Grgurina, Mirolo, Rolandsson, and Settle, 2014), what is the best pedagogy for promoting CT is still a research and unanswered question (National Academics, 2011). We need further efforts to reach the broadest audience in K-12 effectively. Since it is a well-established fact that thinking skills are most effectively taught when taught directly and deliberately (Bono, 1992), we developed professional development workshops to engage teachers in K-12 in learning and practicing CT so that the teachers could experience what CT is and how to conduct CT in classroom. In 2013 and 2014, we conducted two CT workshops sponsored by the University of Arizona (UA) Southern Arizona Writing Project (SAWP) for a group of English teachers from Bisbee High School and Bisbee Middle School. In order to engage the group of teachers in practicing CT, we linked CT with writing as well as teaching problems.

Guzdial (2008) emphasized that “we need to understand how to teach computing better” to make CT available to students across the entire campus. Since 2012, we have developed an online course to teach CT to students in applied sciences, CS, and mathematics at our campus. In addition to programming, the course development focuses on what Selby and Woollard (2013) identified the core CT skills including abstraction, algorithmic thinking, decomposition, evaluation, and generalization. The class starts with the topic to allow students develop insight on what is CT and realize the difference between CT and how people usually think. Then, students gradually learn algorithm representation and creation, control structures, programming paradigms, and data structures. While students are acquiring knowledge, they also practice the concepts in programming activities. Later, students further study how to think in terms of objects and design systems based on behaviors and objects’ responsibilities. To understand the computational model, students also study theory of computation so that they understand what computers can do and cannot do in practice.

In this paper, we approach the problem of promoting and teaching CT by having a closer look at the available empirical teaching evidences collected on how teacher professional development can be employed to teach CT to teachers in K-12 and course development experiences on teaching CT to undergraduate students across disciplines at college campus. Section 2 Computational Thinking in Problem Solving presents our approaches to promote CT that has rooted in problem solving. Section 3 Computational Thinking in Writing presents how we employed writing to facilitate problem solving in a computational way and support collaborative learning. Section 4 Computational Thinking in Abstraction, Automation, and Analysis presents how the three focal points including abstraction, automation, and analysis can help CT learners gain insights in CS and improve productivities in practice. Finally, Section 6 Conclusions and Future Works draws conclusions from the teacher professional development and online course development to teach CT explicitly.

Computational Thinking in Problem Solving

In a later paper Wing published (Wing, 2011), Wing further defined CT as “the thought process involved in formulating problems and their solutions so that the solutions are represented in a form that can be carried out by an information-processing agent.” To promote and teach CT, we established the CT process in problem solving, which aligned to the view from which CT was perceived as a way of critical thinking with technology. In this particular view, CT involves finding the right technology for a problem, applying the technology to resolve the problem, debugging the solution, and communicating the outcome (National Academics, 2010). As John Dewey (1916) rooted critical thinking in the students’ engagement with a problem, problems, for CT, equally stimulate thoughts and inspire learning as they do in critical thinking.

CT in K-12 has some of its groundwork developed and teachers in K-12 classrooms have already practiced multiple computational methods. To integrate CT across disciplines in K-12, it is necessary to clearly demonstrate that CT is beneficial to systematically integrate the computational methods to resolve relevant, practical, and complex problems in classroom. As Mannila etc. (2014) pointed out, “Successful infusion of CT will only occur when teachers understand and are able to identify how it is relevant to the topics they teach.” When delivering the CT workshops to the group of English teachers from Bisbee High School and Bisbee Middle School, we first provided a theme question that generalized the problems we expected to bring up: “How to Teach Writing Argumentative and Informational Text with Emphasis on the Common Core Standards?” We then asked each team, which was formed by two participating teachers, to raise one problem of interest that was consistent with the theme question. The teachers exploited their developed experiences with technology and explicitly linked CT with the problem-solving process. To resolve the problems, teachers learned to represent, implement, and evaluate problem solutions. Their problem solutions employed the use of technologies, and delegated tasks to machines so that the teaching and learning could get effective support by technology in classroom.

To promote and teach CT to college students, we designed course assignments and a final project where students actively conducting CT by solving problems. The course intentionally taught the means and tools in CT such as algorithms, data structures, and programming so that students were equipped with tools when they approached the problems. The assignment problems were well structured but students needed to identify, represent, and resolve a problem of their own choice in the final project. Based on the collected student performance data, students were able to understand the CT concepts rapidly but sometimes had difficulty to apply them together effectively. By analyzing student learning outcomes including project proposals, progress reports, and project posters, it was obvious that students’ prior research experience as well as problem-solving and critical thinking skills affected their applications of CT skills to solve problems and design systems. In the past five course deliveries, we consistently found a portion of the enrolled students were struggling with identifying and structuring the problems they wanted to solve. Students also reported that they needed to frequently adjust their project scope to model the problem they approached and the problem solution took efforts and time to mature.

For both groups of learners including the participating teachers who conducted professional development on CT and the undergraduate students who learned CT explicitly, we taught that CT is how humans think about problems in a way that the problems can be resolved computationally. One thing that was common between the two groups is the challenge to explore problem solution space and write step-by-step solutions. All raised problems during the two teacher professional development workshops and in most of the proposed final projects by the undergraduate students were adaptive problems (Heifetz & Laurie, 1997) that have no absolute answers and complex problems that surface in less recognizable forms. Even when working on the well-structured assignment problems, it was obvious to see some students, especially who had no prior programming experience, struggled on writing solutions because they couldn’t figure out the algorithms, which were just steps of instructions to resolve the problems. When identifying and representing the adaptive and complex problems, both the participating teachers and the undergraduate students could easily get lost in problem and solution complexity.

Computational Thinking in Writing

Writing provides one of the best ways to help learn the active, dialogic thinking skills (Bean and Weimer, 2011, p. 24). Resnick (1987) pointed out that writing is not simply a product but also a process, and it is essential for effective writing not just emphasizing and evaluating the final product but focusing on the crucial steps of the writing process. When teaching and promoting CT to K-12 teachers and college students, we emphasized writing by focusing on the fundamental question, “what could I have to do to get a computer to implement an existing solution to the problem?” (Wing, 2008). More specifically, we employed writing in CT as a creative, reflective, critical process to explore problem and solution spaces, communicate and document solutions for later or repeated use.

While promoting CT during the professional development workshops to the group of English teachers, we designed a workbook that provided the teachers a list of questions as following.


  1. What is the problem?

  2. Can we reformulate the problem into a format that can be solved or mitigated by applying technology or other resources?

  3. What instructional strategies/methods/activities could be used to approach the teaching problem?

  4. What is to be created, organized, stored, and/or shared?

  5. What available resources including technology do you think can be applied to help us solve/mitigate this problem? What specifically do you need from SAWP to solve the problem?

  6. How can technology, SAWP, and/or other resources help you solve/mitigate your problem?

  7. What is the solution to your problem? Write down a step-by-step sequence to achieve your grade-level solution to the problem.

  8. What are pros and cons of your solution?

  9. What other problems that can be solved or partially solved by the solution?

The participating teachers conducted discussions and wrote down notes and answers to the questions. The third step was only added at the second workshop in order thoroughly explore the teaching problem and solution space in writing and dialogs. Note that we raised the questions based on the breakdown of CT (ISTE, 2011). While discussing and writing to address the questions, each team constantly created new ideas and revised their problem-solving strategies.

Hazzan (2008) suggested conducting reflections and stated that reflection “increases one’s awareness of the objects with which one thinks, and may therefore systematically and consciously lead one to think …” When teaching CT to undergraduate students during a term, we required students to conduct reflective online discussions weekly and persistently. The instructor designed the scaffolding online-discussion questions across the learning topics of the whole course development with the expectation of students to write and unfold the computational concepts that form the foundation of CT. For each discussion, we provided a list of reference questions for students to reflect on their short-term learning of the course topic. For example, during the week students were learning shell programming in bash, they had the following questions to address:



  • What and how did you learn shell programming in bash this week?

  • If you have experience on using any UNIX or UNIX like systems, please share what you experienced and learned.

  • Share some interesting commands, using examples to highlight their use.  

  • Share a simple bash script and briefly explain what it does.   Note that you should include some control structures (selection and/or loop statements) in your script.  

  • Any questions/experiences regarding this week’s homework assignment.

In their reflective writing, students reflected their learning and shared tips as well as additional learning materials such as YouTube video or online tutorials to the classroom. They also reflected the learning topic by demonstrating and explaining concepts and examples to their peers, which resulted in collaborative learning by sharing and teaching. In addition, the instructor was able to closely monitor what students reflected and effectively provided her support during the learning process.

Based on the workshop and course delivery experiences, we found that writing provided an engaging process to explore and experiment, and to think clearly and computationally. Even thought the learners were different, writing as a tool provided a universal, iterative, and evolving process to make progress on approaching to master CT. Especially, the writing process supported engaging learners to focus on the on-going experience rather than the final products during the learning process. Moreover, the writing notes and reflections have seeded ideas to engage deep thinking and meaningful dialogs for the purpose of collaborative learning among the learners.



Computational Thinking in Abstraction, Analysis and Automation

CT has been described as the use of abstraction, automation, and analysis in problem solving (Cyny, Snyder, and Wing, 2010). Lee etc. (2011) explained that CT involves in conducting the abstraction process at multiple levels to define, understand, and solve problems; accomplishing automation by instructing a computer to execute a set of repetitive tasks quickly and efficiently compared to processing power of a human; and analyzing the appropriateness of the abstractions made during. When teaching CT to the undergraduate college students, we emphasized the view that computer programs are automations of abstractions. To equip students with the skills to abstract and automate problem solutions, we required students to conduct programming, which is one of many skills that CS students are expected to master.

Alan Perlis, who was awarded the first ACM A.M. Turing Award, said that everyone should learn to program as part of the liberal education. From Perlis’s point of view, programming as the exploration of process and the automated execution of process by machine was going to change everything. Today, we have already seen how automation has significantly changed the works in all fields of science and engineering. Programming in our CT course was taught as a means to express algorithms and accomplish abstractions and automations. However, we also made students aware that programming and CT are not equivalent concepts and programming is but one context for the practice of CT (Voogt, Fisser, Good, Mishra, & Yadav, 2015).

Research reported that learners struggled with programming skills. Our own course development experiences confirmed the point. Despite many initiatives to teach programming to students outside of CS, programming often is perceived as unpleasant, low-level and mundane rather than as inspiring and creative. During the professional development workshops for teachers, we didn’t introduce or practice programming considering the background of the participating English teachers as well as the time limit to deliver the workshops. Instead, at the beginning of the second workshop, we introduced data gathering and analysis tutorial on how to use evidence data to identify problems and improve teaching effectiveness. The addition of data analysis introduced to validate whether or not their problem solutions were effective and efficient had great impact on the teachers. All of the problem solutions resolved at the end of the second workshop integrated teaching and learning evidence data that the teachers intended to use to evaluate their problem solutions.

Based on the experiences from delivering the workshops and online CT course, we believe that CT is ubiquitously relevant since everyone could apply CT by using the process of abstraction to narrow a problem down to something that could be done or facilitated by use of computers. It is necessary to teach K-12 teachers and college students to understand CT by demonstrating and practicing abstraction, automation, and analysis, so that the teachers and the college students would get engaged by knowing what CT looks like and how CT matters. The emphasis on abstraction, automation and analysis in CT has kept us focusing on promoting and teaching CT for gaining insights in CS and improving productivities in practice by combining human and machine powers.

Conclusions and Future Works

To draw our conclusions, our study suggests promoting and teaching CT focusing on abstraction, automation, and analysis with the other relevant processes including problem solving and writing. We believe that it is necessary to explicitly promote and teach what CT is and how meaningful it can be so that CT could be engaged and relevant to teachers in K-12 and to students across disciplines at collage campus. By promoting CT with problem solving and writing, we believe K-12 teachers are more willing to learn and master CT, and further integrate teaching CT in classroom. Teaching CT explicitly supports students at college campus to form a foundation of CT concepts and techniques, and be competent in problem solving. While analyzing how we promoted and taught teachers in K-12 and students at college campus reflectively, we become informed to continually improve teaching CT strategically in future.

References

Bean, J. C, & Weimer M. (2011). Engaging ideas: The professor’s guide to integrating writing, critical thinking, and active learning in the classroom, 2nd Edition. Jossey-Bass.

Bono, E. D. (1992). Six thinking hats for schools. Hawker Brownlow.

Cuny, J, Snyder,L., & Wing, J.(2010). Computational Thinking: A Definition.

Dewey, J. (1916). Democracy and Education. New York: Macmillan.

Guzdial, M. (2008). Education: Paving the way for computational thinking. Communications of the ACM, 51(8), 25-27.

Hazzan, O. (2008). Reflections on teaching abstraction and other soft ideas. SIGCSE Bull. 40(2), 40-43.

Heifetz, R.A. & laurie, D. (1997). The work of leadership. Harvard Business Review 75(1):124-134.

ISTE. (2011). Computational thinking across the curriculum: a conceptual framework. http://compthink.cs.depaul.edu/Framework.pdf

Lee,I., Martin, F., Denner, J., Coulter, B., Allan, W., Erickson, J., Malyn-Smith, J., and Werner, L. (2011). Computational thinking for youth in practice. ACM Inroads 2, 1 (February 2011), 32-37. 

Mannila, L., Dagiene, V., Demo, B., Grgurina, N., Mirolo, C., Rolandsson, L. & Settle, A. (2014). Computational Thinking in K-9 Education. In Proceedings of the Working Group Reports of the 2014 on Innovation & Technology in Computer Science Education Conference (pp. 1-29), Alison Clear Clear and Raymond Lister (Eds.).

National Academics, N. R. C. of the. (2010). Report of workshop on the scope and nature of computational thinking. Washington, D.C.: National Academics Press.

National Academics, N. R. C. of the. (2011). Report of workshop of pedagogical aspects of computational thinking. Washington, D.C.: National Academics Press.

Resnick, L.B. (1987). Education and Learning to Think. Washington, DC: National Academy Press.

Selby, C., & Woollard, J. (2013). Computational thinking: the developing definition.

Voogt, J., Fisser, P., Good, J., Mishra, P., & Yadav, A. (2015). Computational thinking in compulsory education: Towards an agenda for research and practice. Education and Information Technologies, 20(4), 715-728.

Wing, J. (2006, March). Computational thinking. Communications of the ACM, 49(3), 33-35.



Wing, J. (2008). Computational thinking and thinking about computing. Philosophical Transactions of the Royal Society, A 366, 3717—3725.

Wing, J. (2011). Computational thinking: What and Why. http://www.cs.cmu.edu/link/research-notebook-computational-thinking-what-and-why.
Yüklə 164,19 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə