Tools for Coding in the Classroom:  Integrating Computer Programming into K-12 Curriculum to Prepare Students for Jobs or Entry into Higher Education

In today’s learning environments, students need to employ their new literacies, including digital literacies which enable them to utilize the Internet and other networked systems to search, utilize, integrate, analyze, share and communicate their understanding and knowledge.  They can use multiple hardware devices such as laptops, tablets, smartphones, and the software which is available in the form of applications/apps.  In addition, utilizing emerging electronic I/O devices such as game controllers, 3D printers, VR/AR devices and others.  However, I want to focus on the software aspect of new and digital literacies.  Particularly, not just the software applications that students learn the bring the abstractions of hardware to the high level of human interfaces, but the software development systems that drive creation of new things or intelligences of new things such as robots or other programmable hardware.  There is a myriad of programming language and educational technology options for educators to explore for use for self-directed student learning in the classroom (Akerlind, 1999).

Educational technology, ultimately, is not just for teachers, but to serve the entire educational experience which equally involves students.  So, tools for teachers to communicate, organize, and create lessons, post, and share their grades are fantastic to further the teaching practice, but technology tools which students use are the essential things that drive learning and create knowledge in them.

Software drives many of the innovations we see in education today, whether it is a website written in HTML and JavaScript, an application running on an iPhone written in Swift, or a robot being controlled by an Arduino device with software written in C or C++.  The apps that we have available in a smartphone and on the marketplaces enable us to replace at least a wheelbarrow full of things with a single smartphone (consider how much room it would take to store a camera, camcorder, compass, calculator, ruler, video game console, remote control, flash drive, book, world atlas, GPS, MP3 Player, flashlight, radio, clock, newspaper, magazine, TV, check-book, and multiples of many of these things in the form of several instances such as magazines, etc.  Also, it serves a phone!   This is all done with software, so doesn’t it stand to reason that software matters, and being able to code is essential.  The few experts in software development also make much higher salaries than most other college graduates.  Coding, specifically, may not be an official digital literacy, but it can enable many of the digital literacies such as constructors in OOP.  Software is capable of modeling the real world (Grover, 2013).

The power of learning coding for students lies in the fact that it involves experiential and project based learning.  The hands-on instruction that students receive in coursework that involves coding enables them to construct, leading to high levels of intrinsic value, and feelings of accomplishment which has been expressed in flow theory which states that spontaneous flow experience can occur when people employ creativity from their history of gaining technical knowledge, and begin to change state of things.  This spontaneous transformation gives intrinsic satisfaction, enhancing the inner state of person, leading to success, ethical/socially responsibility, and happiness in their lives and workplaces (Csikszentmihalyi, 1996).

When a student prototypes a new device with a 3D printer, codes the behaviors of a robot (whether virtual in a game, or real rolling around on the floor), programs the control of some invented device with a Raspberry PI, or simply creates a Fahrenheit to Celsius conversion program in Python, the student is experiencing a creation, which leads to high levels of satisfaction.  This moves us into the realm of “constructionism,” a word to describe the creating of artifacts that can be shared with others (Papert 1991).

I learned the computer programming languages COBOL and BASIC at Kennedy High School in the Chicago Public Schools, back in 1983.  So, it is not new to learn programming as a general education course in K-12.  I didn’t earn a degree in Computer Science while in High School, but it did spark the interest that I fulfilled when I went to college.  Learning coding is not wasted on young students.  Similarly, and more amplified, is the urgent for today’s K-12 students to be exposed to programming.  Whether they end up in pure sciences, education, engineering, or many of non-STEM (also, by adding Art to STEM, we can utilize the term STEAM) degree programs available, the ability to create a series of codified steps, with logic and control structures, to accomplish a task is essential for problem solving.  Many games have scripting languages that are accessible to the non-programmer gamer.  Engineers have programmable calculators.  Business people use Excel macros to automate processes to save time and accomplish a series of steps in an instant.  CAD (Computer Aided Design) users need to learn scripting, for example, Auto Lisp in AutoCAD to automate various renderings and accomplish multiple tasks quickly.  Auto mechanics refer to programming the “brain box,” or ECU (Electronic Control Unit) or ECM (Engine Control Module).  These devices and the machines used for diagnosis are programmable.  In home construction, the devices in a smart home need to be programmed.  And, the future of IoT (Internet of Things) will require that we all know how to program virtually any electronic device found in our homes and work (Gubbi, 2013).

References

Åkerlind, G. S., & Trevitt, A. C. (1999). Enhancing self‐directed learning through educational technology: When students resist the change. Innovations in Education and Training International36(2), 96-105.

Csikszentmihalyi, M. (1996). Flow and the psychology of discovery and invention. New Yprk: Harper Collins.

Grover, S., & Pea, R. (2013). Computational Thinking in K–12 A Review of the State of the Field. Educational Researcher42(1), 38-43.

Gubbi, J., Buyya, R., Marusic, S., & Palaniswami, M. (2013). Internet of Things (IoT): A vision, architectural elements, and future directions. Future generation computer systems29(7), 1645-1660.

Papert, S., & Harel, I. (1991). Situating constructionism. Constructionism36(2), 1-11.

Webliography

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s