Three numbers are written on the board in Doug Poland's classroom at Stone Bridge High School: two, four and six.
"You have one guess to figure out the rule," he tells his Advanced Placement Computer Science class on a Friday morning before winter break.
The students -- sophomores, juniors and seniors -- team up to test patterns of numbers they think will either fit or fail the rule Poland has written down on a piece of paper ("ascending numbers").
As Poland circles the classroom, he tells the students they're "thinking too logically." These are the kinds of "warm up" activities Poland says he likes to use to encourage his students to think creatively. Then, after a short lecture on a new subject or particularly challenging topic from a previous class, Poland lets the students loose to program for the remaining hour of class time.
"They want to be hands on, they want to be doing as much as possible," Poland says.
The computer science program at Stone Bridge High School is an outlier compared to other high schools throughout the nation. Students at the high school in Ashburn, Va., have the opportunity to take introductory and advanced placement computer science classes, and can also participate in a computer programming club.
But in nine out of 10 high schools in the United States, there are no computer science classes offered, according to Code.org, an organization that encourages more students to learn programming and coding skills. Additionally, in 33 of 50 states, computer science classes do not count towards high school math or science graduation requirements.
That lack of opportunity is adding to a growing concern among educators and industry professionals who worry there will not be enough educated workers to fill the ballooning number of computer science jobs.
Data from the Bureau of Labor Statistics show, for example, that by 2020, there will be 1.4 million new computer science jobs, but only 400,000 computer science students. The number of computer science jobs, according to Code.org, is growing at a pace two times the national average for job growth.
That's why companies such as Microsoft have implemented programs to help engage more students in computer science at a younger age. The company's Technology Education and Literacy in Schools program (TEALS) pairs 70 schools in 12 states with nearly 300 professional software engineers who volunteer to help start computer science programs or further develop existing programs, such as the one at Stone Bridge.
"TEALS came to us through one of our computer science engineers who...had a particular passion around the need to help feed the future pipeline of computer science engineers," says Lori Harnick, Microsoft's general manager for citizenship and public affairs. "He saw that young people, particularly high school students, don't always have access in schools. So he decided on his own that he would stop by his neighborhood school and volunteer to teach alongside the teacher."
Microsoft executives caught wind of the effort as more employees began volunteering. By the 2011-12 school year, TEALS volunteers were in 13 schools, reaching more than 800 students. This year, more than 3,000 students are in computer science classes with TEALS volunteers, both from Microsoft and other companies in the industry, such as Amazon, Dell, Google and HP.
"In recent years we have seen a growing need and demand for computer science professionals. Of course we get those typically out of college, or graduate engineering programs," Harnick says. "But we've started to recognize that that spark starts much earlier. If you haven't been exposed to computer science until university, it probably won't be a field you choose to pursue."
While the technical expertise TEALS volunteers can offer is key -- because many teachers don't have a background in the field -- it's also important for students to see that computer science fields can lead to real careers outside of the tech sector, says Dan Kasun, a TEALS volunteer at Stone Bridge.