Computer scientists play a central role in our technological infrastructure. They develop hardware, software and other applications for use by the military, businesses and average consumers. This has made computer science one of the fastest-growing career fields in the U.S. today, with some occupations, such as software engineer, expected to grow an estimated 22 percent from 2012 to 2022. While this means tremendous opportunity for students and young professionals interested in the field, it also means increased competition, both at the college level and in the job market.
Many experts in computer science education tout skill development before college as the key to success. Students as young as six and seven are learning the logic behind computer programs and, in some cases, how to create simple programs of their own. Yet formal computer science learning remains a rare commodity in K-12 curricula. In 2011, just five percent of high schools across the country offered an Advanced Placement test in the subject. This gap has forced students to seek computer science education elsewhere.
The following guidebook helps students and parents identify and understand the multitude of opportunities available for learning computer science before college. Key elements include:
Young children have a natural gift for learning a foreign language. Advocates for teaching Spanish or Chinese in elementary curricula assert that kids soak up concepts and vocabulary more organically than adults. Computer programming, aka “coding”, includes very similar elements and incorporates multiple languages. Coding also facilitates student collaboration, creativity, design, presentation and problem solving skills. This has many parents asking the question: Why aren’t kids learning basic computer science and programming in school? Common Core and No Child Left Behind may seem like barriers, but alternatives exist.
Teachers, administrators and principals interested in computer science and coding can look to open-source curriculum to help bring volunteer-based programs into their schools. CodeEd, a non-profit volunteer program that teaches principles of computer science and programming to girls in New York, Boston and San Francisco, starts as early as grade six. Its founders understand that an interest in computer science and an I-can-do-this attitude should be nurtured early.
“We’ve seen that children clearly have the capacity to learn complex computer science concepts from an early age,” Angie Schiavoni of CodeEd says.
Computer science can be introduced to students at a young age, but the concepts must be simple to understand, reports the Computer Science Teachers Association. Charlie King of CLEARLINK suggests that kids should start coding and delving into computer science as soon as they show an interest. Specific age may not be as important.
“Fourth or fifth grade is a fun place,” he says. “They have wild imaginations and don’t believe in limitations. My son is in fifth grade and he is loving it.”
Here are a few reasons to add computer science and coding to education at the elementary-education level.
Many different organizations offer coding education for young children. Whether summers camp or online programs, they provide opportunities for children to develop practical computer science knowledge and skills.
“The best way for young children to learn programming is just for them to start doing it in a very concrete way,” Angie Schiavoni of CodeEd says. “It’s kind of like the best way for kids to play soccer is not to just learn how to dribble or just learn to pass the ball, but to get out on the field and play soccer, a lot. Then you can fine tune your skill set later.”
Like CodeEd, Scratch gives young students the chance to create interactive stories, animations and games, and then share them online. While designed for kids ages eight to 16, the program is appropriate for all beginning coders, as it uses visual representations to teach foundational mathematical and computational ideas. The site has sections for kids, of course, as well as for parents and educators. Since conception, an estimated 800,000 students have shared more than a million Scratch projects.
Scratch and CodeEd represent just two of the many online resources for primary schoolers interested in technology. The following resources may also prove helpful for students and parents:
In addition to fueling interest, founders of programs such as CodeEd and Scratch hope their efforts lead to long-term growth in the field.
“It’s time that computer science be taught on par with other scientific disciplines like biology, physics and chemistry,” says Schiavoni. “But we still have a long way to go to catch up. Estonia recently implemented a national program where 100 percent of first graders will be required to take computer science classes.”
For students who missed the chance to code in K-5, middle school offers a wider range of opportunity. Slowly but surely, middle school teachers are incorporating computer science basics into the curriculum. It may not be teaching specific languages at this point, but merely introducing underlying concepts and fundamentals.
Kids at this age often develop an interest in computer science by creating video games or building their own websites. These types of projects use creativity to introduce and develop core skills.
“The message needs to be that computer science is about creating and building beautiful and useful things,” Angie Schiavoni of CodeEd says. “For example, web development, which we teach in CodeEd classes, is about creativity and self-expression, not just about learning a bunch of scary-looking tags.”
By the time students enter high school, they won’t be afraid of computer science. Instead, they’ll be in a position to embrace it, and even pursue advanced study.
Kids in middle school love to game, whether by themselves or online. Batman, Tomb Raider and Call of Duty have made countless appearances under Christmas trees or at birthday parties. As a parent or teacher, gaming may seem a distraction from schoolwork, unless, of course, it becomes an educational opportunity. The following resources give middle-schoolers the chance to learn what happens behind the screen:
Game design and web site development are just two of the many computer science options available to middle school students. Have a child who likes to take things apart? Learning the basics of computer hardware may be the logical next step. Have a son or daughter interested in hacking (or hopefully how to prevent it)? Software development and cyber security are excellent to learn about at the middle school level. For more ideas and information, check out these online resources:
Just 30,000 students took the Advanced Placement test in computer science in 2013, according to Education Week. Less than 20 percent of those test-takers were female, about eight percent were Hispanic and less than 3 percent were African-American. Also frightening may be that in 11 states, no African-Americans took the exam at all, and in eight states, no Hispanic students took the exam.
Recognizing the need to draw students into the field, The College Board has decided to launch a new class called AP Computer Science: Principles, set to launch in the 2016 – 2017 school year. Where offered, it will introduce students to programming, but also give them a broad understanding of computing and its many applications.
“When I was in high school, there was very little available to students with vocational interest in technology,” says Justin Rohrman, senior software tester at Sharable Ink. “From what I gather, though, many public schools are now offering technology specific courses. Pursuing that will help you get a little ahead of the curve. I also encourage getting experience in the open source community with groups like Wikimedia Foundation (Wikipedia) and Mozilla.”
Perhaps the best way to prep for an undergraduate degree in computer science is to cultivate knowledge and skills in mathematics and laboratory science.
“Having a firm grasp of mathematics and science will help if the student wants to pursue a degree even if they never end up using it in the ‘real world,'” says Chris Martino of SimpiVity Corporation. “Most CS programs are heavy in these areas with requirements in calculus, statistics, physics, etc.”
In addition to math and other lab sciences, high school students interested in computer science should explore as many specialties as possible. Not only to better understand the landscape, but to plan out college-level coursework. In addition to general computer science and programming, for example, some high schools have started to offer classes in database management, information assurance and security and fundamentals of information technology (IT). While still rare, they are on the rise.
“My high school offered three software development classes, and I took all three,” said Bradley Stewart of Shareable Ink. “There was a web design course, visual basic course and a C++ course. I would most definitely recommend them where offered, and would openly encourage all high schools to provide them. A focus on math is highly recommended throughout one’s high school education if planning to pursue software engineering.”
Many resources already mentioned in this guide provide opportunities for students in high school to pursue computer science. The options are countless, particularly online, and include sources such as Codecademy, Code.org, Coursera, Udacity and Udemy. Justin Rohrman of Shareable Ink has another suggestion.
“There is a fantastic program for young people called SummerQAmp,” he says. “This program is focused on developing real tech skills and exposing people to them before college.”
Finally, when researching CS undergraduate programs, high school students may want to consider online colleges that provide free laptops. While laptops are useful for any student, they are absolutely essential for CS majors – and every penny saved helps.
Students have many choices when it comes to programming languages. Some learn the basics of several languages as they progress from high school to college, while others concentrate on a single language used for a specific outcome. Examples of the latter include compiled languages, declarative languages, object-oriented languages, scripting languages and many others. The following seven programming languages represent the most common (and most important) a student can learn in high school:
High school students may be on their own when it comes to finding opportunities for computer science and coding instruction. If they can’t find programs at their schools, they may be able to advance their knowledge through in-depth online resources or intensive summer camps. These often provide access to seasoned instructors either remotely or in-person:
Remember, there are few reasons for waiting until college to begin developing your computer science and coding skills. The connected world is the world of the future and whether you decide to strictly work in computer science and programming, or cross over into fields such as health care or space science, you can help build and design the programs and technologies. The exciting thing is that many of these technologies remain to be seen. It’s already clear that programing and coding are the basis for so many new and progressive ideas, which begs the question: Are you ready to shape the future?