By Lindsay Walker – Co-Founder of Launch Code After School
Over the past three decades, coding and computer science have created a new world of growth and opportunity for the generation of youth that is being raised alongside these technologies. Each decade has brought about innovations, such a personal computers, the Internet, and cellular phones which have in turn revolutionized the way that people live, work, and learn.
As technology evolves, so does the need for education and training. Not only does the technological revolution change what it is that students need to learn and be trained on, but there is also a need for more creative and analytical thinkers to understand and utilize these new technologies in all domains and fields of work. As research in education evolves, and schools undergo reforms and adapt to the modern world, the thinking on how creativity and real-world skills can be fostered evolves as well. Coding presents an amazing opportunity to encourage depth of knowledge and the ability to apply that knowledge in a fun and innovative arena. Students who code have new means to create and explore, leading the way in technological innovation for their generation.
Levels of Understanding
As the need for individuals who can create and innovate with new technology advances, so does the thinking on the hierarchy of learning. Educational researchers use Bloom’s Taxonomy to describe the different levels of understanding students achieve as they work with educational material in increasingly sophisticated ways. Simply memorizing a term or fact according to how it was presented and defined is a very low-order level of understanding. True learning requires higher order processing and connection building that most academic classes, by and large, fail to address. The revised version of Bloom’s taxonomy value the ability to synthesize new materials above all else.
Source: University of Arizona
Coding to Create Higher-Order Skills
When a student creates a coding project, they address a broader range of understanding. A good coding class asks students to first remember and understand concepts such as abstractions, control structures, syntax, and loops. They then apply this new knowledge by creating projects that are built around these concepts. The real magic comes in when students are asked to address the top three levels of understanding through designing and synthesizing their own code based off of knowledge and skills they have gained.
Another interesting movement being embraced by ed-tech companies and schools alike is the project-based learning (PBL) model. Through real-world challenges and problems, students address questions and problems in the same way a professional working in the industry would. Students take an active role in formulating questions, researching needs and background information, and formulating a process to address a real-world need. Students are not only asked to acquire certain sets of knowledge, but also to formulate and implement a plan, gaining valuable understanding that can only be acquired through experience.
Implementing Coding & Project Based Learning
After students have done some basic coding and had some experience applying coding and computer science concepts by following along with lessons and example projects, they have the opportunity to start building their own program.
New coders need specific criteria and suggestions for how they can use code, and guidance in breaking down a need or problem into programmable steps. At this point, students are learning to analyze, evaluate, and create unique artifacts that not only equip them with the knowledge software developers possess but also the ability to produce and implement program code. Knowledge in the form of understanding and memorization is not enough to prepare 21st-century learners. Coding provides the perfect opportunity to develop the creativity, habits of mind, and skill set that enable students to be useful practitioners.
Nearly any challenge you encounter with technology and computer programming is set in the context of an applicable, real-world problem. Computers were created to be programmed by humans to do repetitive, calculating tasks more quickly and diligently than a human could ever do. In order to create these computing programs, however, students must first learn to break a problem into discrete, programmable steps.
Testing and Learning
It is almost never the case that the program you implement to solve a problem works well the first time. As an example, to program an application that takes an order at a restaurant then sends that order to the kitchen, you must design both a way to interact with humans on both ends, and also the code to transmit that information.
As the app is tested out with human users, flaws are inevitably revealed. A good coding education guides the students through the challenges of modifying their programs and creations through experimentation with this real-life problem to make sure that the users understand how to work with the program, and every possible use case of the application is considered. As students test out their app, they will iterate on ways to make it easier for customers to use the app to create an order, and add in features and order combinations as customers request them.
This also teaches another valuable skill, the ability to fail and persist. Unlike a model that reinforces memorization and acing a test, this model encourages students to understand the learning process that goes along with failure, and how to implement a project from beginning to end. Coding provides opportunities to create video games and simulations, program applications, and work with robotics and automation to solve problems in more ways than ever.
Applying Academic Skills
It’s not hard to imagine all of the ways that coding and technology can enhance traditional academic subjects. Publishing software, games, and apps provide new ways for students to express themselves and learn about the English language. Students can address social needs by creating an app or coming up with an affordable robotic solution for communities in need. A deeper understanding of scientific phenomena through analysis and modeling software make difficult science concepts more accessible than ever. Mathematics is at the heart of computer science, and the ability to formulate algorithms and use logic and numbers to solve problems is the foundation of computing.
It won’t be easy, however, to integrate all these principles into an institution that is as old as society itself. For the time being, creative educators, passionate parents, and active communities will need to continue to find ways to solve this problem. Innovative companies have the opportunity to create tools and solutions and empower the next generation.
Lindsay Walker, Co-Founder, Launch Code After School
Lindsay has been an educator for over 10 years, teaching middle and high school mathematics, science, and technology across the world, top public school districts, as well as in urban and high need areas. She earned her undergraduate degree from the University of Wisconsin-Milwaukee and has her Master’s in Integrative STEM Education from the University of Texas Austin. She continues to learn and explore the most current technologies and languages developing content in C#, Unity, MIT App Inventor, Python, web development, and more. Lindsay’s wide range of technology and computer science tools and languages helps her create Launch Code After School‘s innovative computer science education curriculum.