As the need for mobile apps developers increases and interest in computer science courses wanes, professional educator-programmers are reaching out to a younger generation of potential coders: students as young as 10.
In Utah this week, two programmers from the nonprofit TeachingKidsProgramming.org are holding workshops at seven schools around the state to expose students and teachers to C# (C-sharp) programming.
The curriculum the programmers will share with the Utah students is based on a free online curriculum that they developed for PluralSight that was originally intended for use by professional programmers to share online with their own children at home.
PluralSight, a private company, primarily offers online coding courses for professionals for a fee, but the online C# course is free and doesn't even require registration. The C# course is offered along with two other programming courses for children and young people called Scratch and App Inventor.
Coding curriculum co-creator and instructor Llewellyn Falco helps students as they learn computer programming.
"Programming is not being taught in schools," said Lynn Langit, a former Microsoft developer who co-wrote the C# curriculum with Llewellyn Falco. "In the U.S., with some exceptions, programming is only introduced in high school as an Advanced Placement course and very few students see programming courses until college. Around the world, basic programming is part of a basic education."
Langit and Falco have taken their coursework to other countries and have developed a teaching framework based on experiential learning, Langit said. "We teach programming almost like an art class, and students create their first executable program in three minutes," she said. The only requirement for their students is an ability to type, which some master at a very young age.
The role of the parent in the C# course can be undertaken by a teacher or even a volunteer in an after-school class, she noted.
"We make it fun. Some kids glom onto it," Langit said. "Denying kids the opportunity to see what programming is all about is not serving kids well."
That's especially true as an entire global apps economy is growing to put different apps on smartphones and tablets, said Aaron Skonnard, the CEO of PluralSight. "Computer programming is the new international language of business, and we're not teaching it in schools. Why is that?" he said.
"There's a big-time need for app devs for mobile," Skonnard said. "Teaching kids programming around mobile could be the secret sauce."
Part of the purpose of this week's workshops is to show how easy the curriculum can be for teachers and parents, he said. "But we want to show that anybody can do this course," he said. "We're really committed to helping with this effort, to help inspire the teaching of programming at younger ages. I have a hunch it will go really well."
Skonnard estimated it costs his company about $100,000 a year to commission free courses and to pay instructors to write and buy copyrights from them. The nine-year-old private PluralSight has 45 employees and last year had $16 million in revenues from 250,000 professionals globally who subscribed for online training. Year-over-year growth has averaged 100% in recent years, he said.
"I am not political and I'm not on any school board, but I am disappointed with how little focus there is on technology and computer technology in our schools," Skonnard said. "The fact it's not happening in junior highs and high schools is a shame given the demand for developers. There's a huge talent crunch, and people aren't connecting the dots. Parents and teachers are not talking about the need and encouraging it."
Skonnard said if the C# workshops are effective and flourish, he would like to take them nationwide. "Our goal is to create a nonprofit or another vehicle to propagate this concept," he said. "If we can inspire other communities like ours, and if we show people how easy it can be, there's power. We already have broad reach with customers in 100 countries. I'm already getting emails from professional coders abroad who say 'I'm using this with my kids.' "
Langit said she and Falco have been teaching programming courses in other countries for several years. One of her biggest hopes in teaching programming to young students is to help them become "creators of technology rather than just consumers."
With most computer courses in middle school and high school, the focus is on teaching students how to use software programs like Microsoft Word and Power Point in practical settings, rather than on training students to write programs for use in creating apps or in other ways.
"What we've found is that some kids will take the course and just be on fire and get interested in writing code," she said.
Separate from Langit and Falco's workshops with Pluralsight in Utah this week, the nonprofit group Code.org is dedicated to expanding computer programming education nationwide. Code.org supports teaching programming to students of all ages,. On its Web site, the organization urges visitors to sign a petition that says, "Every student in every school should have the opportunity to learn to code."
One of Lynn Langit's biggest hopes in teaching programming to young students is to help them become "creators of technology rather than just consumers."
Code.org also tracks the growth in computer programming jobs -- putting that growth at twice the national average -- while noting a decline in the number of college students with degrees in computer science. Also, nine of 10 schools don't offer computer programming classes, according to Code.org.
Code.com's Web site lists a series of activities and games for children to learn computer programming basics such as RoboLogic and Kodu, as well as free online university courses for adults, such as Courseera, Edx, and Udacity.
Scratch, one of the older programming languages that was created by MIT researchers for teaching programming to kids, is undergoing a transition to Scratch 2.0, which is due to be unveiled Thursday on the MIT Web site.
Also, the National Science Foundation has funded research into development of ScratchJr, a new version of the programming language designed specifically for early childhood education from kindergarten to Grade 2.
Teaching programming to children became a mission for author and teacher Douglas Rushkoff, who recently wrote a book on the topic titled Program or Be Programmed. In congressional testimony last December, Rushkoff said: "The failure to teach computer science isn't just impeding kids' understanding of the digital world, but also crippling our nation's competitiveness in business. We outsource programming not because we can't afford American programmers, but because we can't find American programmers."
Wendy Drexler, director of online development at Brown University, said teaching programming early can pay off in improved thinking and decision-making skills. "Programming is an excellent skill to have and not just for the marketability it offers," she said in an interview.
"Programming skills are so integral to what's happening in our world. Name a field that doesn't have some technology integration," she said. As much as teaching students a specific computer program, Drexler said educators need to "teach a mindset for programming, to lay a foundation for it."
Drexler said having an "approach with volunteers and teachers working with small groups of students to form a community is another great way to get programming into the education system, especially if it's difficult to get programming classes into a school curriculum...It's hard to change things in education."
There is a sense of empowerment when a student at any age creates a program, executes the program and watches the program perform on the screen. Rachel Ann Murphy, educational technology specialist
Drexler said she taught Scratch to third graders in a previous job and has worked with teachers on using Scratch in the classroom. "It's a great foundational tool for future programming," she said. Skonnard's idea of taking the C# workshop concept to a nonprofit, national level "is a noble cause," she added.
Teaching programming skills is definitely more valuable to students than taking courses on using existing programs or games, Drexler added. "I'm a very big advocate for making people digitally aware," she said. "The reality is that if you don't understand how this or that programming process works, technology just sort of happens to you."
Rachel Ann Murphy, an educational technology specialist for the Canyons School District in Utah said by email: "Definitely we should be teaching programming to young students -- the younger the better! Research tells us it's easier for younger students to learn a new [spoken] language, and I think the same idea should be applied to programming languages as well.
"There is a sense of empowerment when a student at any age creates a program, executes the program and watches the program perform on the screen. It is the creativity behind programming and watching an idea come to life which teaches our youth that they can be producers and innovators."
Murphy said it's important that school districts make programming a priority by funding teachers and resources.
The push for more programming has had some critics who worry that children shouldn't spend so much time in front of computer screens and TVs. But Wexler and Murphy said that concern can be managed.
"Students as well as adults should limit the time they spend in front of computer screens and TVs, but it is important to realize that programming time on the computer can be limited and broken into chunks of time on the computer and off," Murphy said. " Many aspects of programming happen away from the computer as well."
Matt Hamblen covers mobile and wireless, smartphones and other handhelds, and wireless networking for Computerworld. Follow Matt on Twitter at @matthamblen, or subscribe to Matt's RSS feed. His email address is [email protected].
Read more about education/training in Computerworld's Education/Training Topic Center.