A recent story on NPR asked "Should Computer Education Cover More Than Just Coding?" My answer is, "Yes." You can read their story for the full details, but the takeaways are that teaching other computer (really "technology") skills and the accompanying "soft" skills like critical thinking often require coding.
For example, students learning to work with and structure data, or ones working with an Arduino will need to use code and understand basic concepts such as algorithms.
Some K-12 educators are integrating computer coding into non-computer subjects such as English and art to develop the skill as a type of literacy.
Using block-based coding programs (such as Scratch https://scratch.mit.edu/) to express learning by coding interactive media, or App Inventor to create mobile applications that can actually be used used by students in their classes.
"Although technology has flooded America’s schools, interest in computer science courses has not kept pace, especially among girls and underrepresented minorities. While states discuss if and how to make computer science a required course, many educators want to inject coding into all sorts of courses, from science to art to English. They’re not just out to prepare the next generation of technology workers. Their goal is far more expansive. They want to turn coding into a new kind of literacy — a fundamental applied skill, a mode of inquiry and expression — that everybody should know. One of the biggest challenges for computer science advocates is that many kids simply don’t see why coding matters, in a world of preloaded software and the vast resources of the Internet." (via The Hechinger Report)
Of course, students are still taking computer science and Advanced Placement classes and doing Java coding, but those numbers don't compare favorably with other STEM AP courses. Enrollment in computer science at the college level has also been declining despite the fact that everyone considers computers and technology to be ubiquitous.
The College Board is working on a new, project-based AP “computer science principles” course (set to debut in fall 2016) in which students will use coding to address real-world problems.
DARPA has a program called MUSE (Mining and Understanding Software Enclaves) that is described as a "paradigm shift in the way we think about software." The first step is no less than for MUSE to suck up all of the world’s open-source software. That would be hundreds of billions of lines of code, which would then need to be organized it in at database.
A reason to attempt this is because the 20 billion lines of code written each year includes lots of duplication. MUSE will assemble a massive collection of chunks of code and tag it so that programmers can automatically be found and assembled. That means that someone who knows little about programming languages would be able to program.
Might MUSE be a way to launch non-coding programming?
Cognitive technology is still emerging, but Irving Wladawsky-Berger, formerly of IBM and now at New York University, has said “We should definitely teach design. This is not coding, or even programming. It requires the ability to think about the problem, organize the approach, know how to use design tools.”
I wrote earlier about the "Hour of Code" and about how coding is a subject not often taught in schools (at all levels) or taught in isolation and to only a small percentage of students.
Students and teachers are sometimes moving into coding via other projects, such as a makerspace and playing with things like an Arduino board or robotics that require some coding knowledge. But a lot of coding education is occurring outside of traditional school settings.
Code.org has a search tool to find computer science classes in your area and my searching around New Jersey didn't turn up as much as I would have guessed.
Coding bootcamps are intensive, accelerated learning programs that teach beginners coding skills, but the "coding academies" like General Assembly, Galvanize, and the Flatiron School are much more.
I know someone is reading this and thinking "Why do I or my students need to learn to code?" I might answer that you don't know what skills will be necessary for your future work, but knowing something about coding could be part of that skil set. Of course, that is very close to the answer I got from my 8th grade algebra teacher when I complained that I would never need algebra to be a writer or English teacher.
These coding bootcamps and academies have only been around for about five years, although there have been computer science classes and programming courses in schools and for-profits for more than three decades.
Ones that are intended for adults are usually making their money by offering courses aligned with or even in partnership with an employer network.
In 2015, it was expected that the number of graduates from such programs would be 16,000. Not an enormous number, but more than double from 2014, according to a recent survey by Course Report.
College tuition isn't cheap and these outside bootcamps and academies aren’t cheap either. A summary of the Course Report survey notes that the average cost of the courses is more than $11,000. There are about 70 of the programs in the United States and Canada today.
Last March, President Obama announced an initiative, called TechHire, to train Americans in technology jobs. Among other things, the effort encourages people to enroll in coding boot camps.
Boot camps have the potential to complement computer-science departments’ curricula and degrees, but most colleges are not comfortable in these partnerships, although they do often work with individual employers looking for customized training.
I am particularly interested in the growth of programs for our younger students that use coding both as a critical thinking builder and as a way to learn coding in order to do other STEAM projects.
The vision of many of these groups is based on the belief that computer science and programming should be part of the core curriculum in education, alongside other science, technology, engineering, and mathematics (STEM) courses, such as biology, physics, chemistry and algebra.
Here are some resources towards that goal.
Code.org – This nonprofit foundation website is a great starting point for coding novices. It shares lots of useful online resources, apps and places to learning coding.
Scratch was designed by MIT students and aimed at children ages 8 to 16 as an easy-to-use programming language. Without using lines of code, you arrange and snap together Scratch blocks of code.
Stencyl is software inspired by Scratch's snapping blocks system that allows you to create simple games for iOS, Android, Flash, Windows, Linux and Mac. There are paid pro plans that come with advanced functionality.
Khan Academy is best known for its math tutorials that often look like games, but it also has basic programming tutorials and students can learn to build graphics, animations and interactive visualizations.
CodeAcademy is an interactive website that has a gentle learning curve and teaches kids basic code through fun and simple exercises that feel like games.
Hackety Hack this quick download allows you to learn Ruby, an open-source programming language that's easy and intuitive.
Code Monster is particularly good for kids learning as the Code Monster shows two adjacent boxes - one showing code, the other shows what the code does. As you play around with the code with some help from a prompt, you learn what each command does.
No one knows how old you are when you use these sites, so all you curious adults should feel free to use them as a way to get started - an then share them with your own kids in school or at home.
Coding - transforming actions into a symbolic language - is offered in colleges and in many high schools, but computer science is not part of the core curriculum alongside other courses such as biology, chemistry or algebra that all students take.
Launched in 2013, Code.org is a non-profit dedicated to expanding access to computer science, and increasing participation by women and underrepresented students of color. Their vision is that every student in every school should have at least the opportunity to learn computer science.
Code.org is organizing its “Hour of Code” event for the third consecutive year as part of Computer Science Education Week. They give students the opportunity to learn about programming with free online tutorials and instructional videos. There are more than 191,000 events in more than 180 countries and one-third of all U.S. schools are participating, They expect to reach 50 million students this week.
Coding is becoming an increasingly crucial skill. If you hear asked (or you ask) "Why do I need to learn to code? I'll never use it to be a ________ (fill in the blank)," I can identify. Teaching English for many years, I always heard that question with poetry or some other item being substituted for "coding." I knew students would need language skills, including learning to interpret language, understand symbolism etc., but it was hard to make the point to someone who had no idea what they would do or need in life.
Do I believe everyone in the future will be doing coding? No, but I believe understanding how code works to run much of the world we live in is essential, at least on a basic level.
This month, the "Hour of Code" campaign from nonprofit Code.org makes that very visible. If you look at its website, you can see that it is aimed at students and teachers in K-12, although it is is clear that people older have as many (or more) gaps in their coding knowledge.
The site uses popular movie characters from films like Frozen and Star Wars as avatars for coding activities.
not unlike when I was teaching students in the late 1970s to make a turtle on a screen move by writing Logo programs. That was Apple Logo which was an early implementation of Logo that was popular then due to marketing for Apple's Apple II computer.
This week (but really all year), educators, extracurricular leaders, and parents are being encouraged to introduce kids to coding. There are many free, online coding tutorials designed for all ages. Some tutorials are designed to be suitable for kids as young as 4 and even for implementation without computers. But many of these tutorials are designed as games that are accessible for computers, laptops, tablets, and smartphones.
This year 3 for the "Hour of Code" and partnerships for licensing with Microsoft and Disney to create tutorials using settings and characters from Minecraft or Star Wars makes coding more appealing to children. "The goal of the Hour of Code is not to teach anybody to become an expert computer scientist in one hour," reads the description on Hour of Code's homepage. "One hour is only enough to learn that computer science is fun and creative, that it is accessible for all ages, for all students, regardless of background."
A sample is an activity (there are also sequenced courses at different age and ability levels) to program characters from the Star Wars universe to make a game of your own creation. In the video below, Star Wars film producer Kathleen Kennedy introduces some broad uses of computer programming, and then Rachel Rose, Senior Engineer for the Star Wars Animation and Creature Team, walks you through the basics of programming using Blockly.
If you try the activity, it is obvious that critical thinking and thoughtful placement of the blocks is required to make the program run correctly.
Using Blockly as a visual programming language is a great start and, although in the working world most code is typed, each block conatins and corresponds to a line of "real" code which students can view.
Students doing any of the most basic activities are learning that an algorithm is a series of instructions on how to accomplish a task. they experience debugging -
finding and fixing issues in code.
If they advance through the activities , they will learn what a function is (a piece of code that can be called over and over), and how to customize their code parameters with extra bits of information that you can pass into a function to customize it.
Students are reminded that some of the tools, like autofill, seem like "cheats" but are used by full time programmers too in order to speed up the coding and maintain consistency.
One activity is designed for very young coders and kids without access to computers. Using a predefined “Robot Vocabulary,” students will figure out how to guide
one another to accomplish specific tasks without discussing them first. This teaches students the connection between symbols and actions, as well as the valuable skill of debugging.