Search form

Teaching children how to code | Opensource.com

Coding is the language of the future, with the power to create and modify the computer programs and websites that increasingly shape our day-to-day lives. While millions of people in the United States spend hours each day engaged with interactive technologies, relatively few truly understand how they work; and fewer take an active role in developing software and websites.

Still, some organizations are advocating more be done to teach young people about computer programing and coding. It is no secret that younger generations, born into an age of smartphone apps and near-ubiquitous Internet access, tend to be more enthusiastic and adept at using new technologies than their parents and grandparents. The key word here is "using" technology, as opposed to creating new programs and reimagining existing processes.

Today's children tend to be passive consumers of software and web pages created for a profit by private companies. Currently only 1 in 10 U.S. schools teach children to code, according to nationwide research by programming advocate Code.org. If school-age children want to learn how to code themselves, it is usually by their own initiative and on their own time. Recent evidence suggests that a lack of students studying coding now could become a serious economic problem in the near future.

Code.org claims that computer programming jobs are growing at twice the national average, while less than 2.4% of college students graduate with degrees in computer science—fewer than 10 years ago. The Bureau of Labor Statistics estimates that by 2020, the U.S. will create 1.4 million jobs in computer science related fields. If current trends continue, U.S. citizens with the necessary skills and experience will fill only 30% of these jobs.

This means that U.S. companies would be forced to outsource valuable coding jobs to India, China, Eastern Europe, and other countries with growing IT sectors, while thousands of Americans remain unemployed or stuck in low-skilled, low-wage positions. So what can the U.S. do to address this problem? In his latest State of the Union address, President Obama issued a "new challenge to redesign America's high schools for the demands of a high-tech economy", by focusing on STEM (science, technology, engineering, and math) classes and promoting partnerships with colleges and employers.

There could be advantages to promoting a focus on STEM subjects in general, and coding in particular, even earlier than high school. In a recent video from Code.org, many prominent technology advocates, including Bill Gates, Facebook's Mark Zuckerberg, and Will.i.am of the Black Eyed Peas, suggest integrating computer science into K-12 classes, striving to make the subject interactive and fun by using simple programming languages and initially focusing on game design.

Several independent groups are seeking to help address America's shortcomings in computer literacy. Elementary teachers across the country use the Logo program, originally developed by Seymour Papert in the 1960s and available for free online in four languages, to teach children the basics of coding by instructing a turtle to move across a computerized grid.

Engineers at MIT developed a basic programming language called Scratch to introduce beginners to coding concepts. Progressive nonprofit groups like Code For America seek to bring experienced coders from the private sector into lower-paying government jobs, in an effort to streamline operations and incorporate technological know-how into the public sector.

Governments and private organizations abroad are also embracing the need for early coding education. In Estonia, home to only 1.3 million people and one of the world's first e-enabled governments, a public-private partnership called ProgeTiiger will channel 70,000 euros into an effort to teach schoolchildren aged 7-19 to code. The pilot program will involve course materials and specialized training for teachers, and explore methods of tying programming concepts to traditional subjects like math and logic.

In the U.K., computer manufacturer Dell has partnered with the British initiative Apps for Good to send volunteers to schools, helping students develop their own smartphone apps to solve common problems. A nonprofit group called Code Club hosts a network of after school clubs run by professional software developers, which utilizes peer-to-peer learning as students stay in touch with each other and continue to share information and ideas.

In the U.S. and abroad, the benefits of teaching children to code extend beyond purely economic considerations. Children's personal and professional lives will increasingly be shaped by computer programs. Without the ability to code, they will become passive consumers at the mercy of programmers working for technology giants, unable to construct or meaningfully interact with the virtual reality that surrounds them. Like any language or skill, the ability and enthusiasm to code is best developed early in life. By incorporating computer and web programming into the public education system, the U.S. stands to benefit not only in terms of economic competitiveness, but also in the overall quality of life for its citizens.

Funny, I heard the same kind of vows from the French government 30 years ago... It costed millions, if not billions, to equip most French schools with brand "new" 6809-based computers (6809 is/was a slow 8-bit MCU), obsolete before they arrived in 1985 (just when the 16/32bit 68000-based AtariST and Amiga came). It didn't work, teachers weren't trained enough for that and were somewhat wary of those new machines, and the kids who were interested in it already had more powerful systems at home.

Anyway, coding is one thing, designing an application is another. Coding someone else's design is lame and uninteresting, designing without the knowledge of what can really be done is even worse, not to say about current situation where good coders are supposed to implement crappy designs from "engineers" who haven't a clue of what the system can do... or not.
Designing an app from the idea to the core is fun, develops intelligence and capacity of deduction. Analysing existing systems and reverse-engineering would be the other side that never no-one thinks of, while everyone accepts the idea that imitation is a master key to knowledge.
Coding is one thing (and coding events in a phone app is definitely NOT coding, Java will give tricks look fancy, but never sane coding habits...), but programming's only a tiny piece of the puzzle, useless on its own.

In the old times, programming required you could read, and dedicate a lot of time to testing, checking, hacking, disassemble to see how things are bound together, while trying to fit everything in a project (don't be too modest...).

Therefore, you need to have a project of what you want to do, and figure out what you need to achieve it, tweak, find workarounds... and realize all you've done so far is wrong and you have to start over. That happens all the time, don't worry.

You should choose the language depending on the type of project (C is not too fit for database apps, unless you're writing a DB kernel) and not the other way round, and you may need many mockups in different languages before you choose the definitive one. Java is a good choice for a prototype, a proof of concept, never assume it's fit to the real world, it is seldom. Netbeans is a good start, handling many different languages.

After a few years of coding, designing, learning, you may catch that coding is nothing and comes last, but the Art you' put in it makes all the difference...

recently I compared LiveCode with what I know of HyperCard language and it seems very much the same. so you could search the net for hypercard or hypertalk code examples or see if your 2nd hand bookshop has these huge HC 'bibles'. they contain lots of code and examples.

Main menu

The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat.

Opensource.com aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. Red Hat and the Shadowman logo are trademarks of Red Hat, Inc., registered in the United States and other countries.