Abstract
This article describes the implementation of various core elements of Computational Thinking (CT) in the classrooms of schools of Latin America and USA in two specific courses: PC-01 and ECE130. These courses were designed for students of primary and secondary education, as well as for students of high school as part of a dual enrollment program with a local university. Both courses introduce the core concepts and processes of CT aided by the visual programming environments Scratch and Alice. The courses are facilitated by the classroom teacher with the support of a learning platform. This platform is configured to provide innovative pedagogical strategies based on emerging educational technologies. This article describes the concepts integrated under the term CT, and discusses the benefits of learning environments used to incorporate CT in the classroom. It describes as well the syllabi and assessments of both courses, and analyzes their impact of these courses on the educational institutions, the teachers and the students.
1. Introduction
After a period of transition in which the fundamental ideas promoted by CT were studied and analyzed by the constituencies of public and private education, it appears that a consensus is being reached which can shape future decisions and policies in K-12 education (Hubwieser, Armoni, Giannakos and Mittermeir, 2014). One important consequence of this confluence of ideas is the definition of K-12 curricula with the integration of the core ideas of CT, out of which the particular classroom paradigms will be developed. In addition, it is universally agreed that programming, in its various forms, is a necessary mechanism for the implementation of CT core concepts and best practices. Programming provides the three mechanisms required by a language in the creation of complex systems: a set of primitives; some means of combination; and abstraction. Unlike natural languages, which by design are semi-structured and provide limited ability of multilevel abstraction, programming languages have been designed to realize the core ideas of CT. A mind equipped with the mechanisms of object oriented programming languages is prepared to house the principles of CT and is prepared to develop CT ideas.