In his State of the Union address this week, President Obama talked about the progress he's made on big issues, including education. And he laid out a new goal: expanding computer science in America's schools.
"In the coming years," the president said, "we should build on that progress, by providing pre-K for all, offering every student the hands-on computer science and math classes that make them job-ready on day one."
But what, exactly, would offering every student hands-on computer science look like?
Dan Garcia spends part of each day trying to answer that question. He's a computer science professor at the University of California, Berkeley, and he's working out ways to teach computer science to everyone.
BJC was originally an undergraduate computer science course, one Garcia co-developed to teach the subject to non-majors. In the last five years, he's given summer courses to more than 200 high school teachers across the country, helping them learn the same material.
He's also working with New York City public schools to create an advanced placement course for high school students there.
Garcia thinks a key is for teachers to make their courses joyful.
"Picking a project, getting engaged, getting really deep into the weeds of it, feeling they owned it, then having trouble ... and finally getting over that hump and getting it to just sing." Garcia says that can be the most most exciting time for students: "When they finally finish their first project and they want to shout to the roof tops, 'This is mine!' "
But students can't shout from the rooftops until more schools start offering computer science.
Fewer than 10 percent of U.S. high schools cover the subject, and those that do don't always teach coding. Some only teach the basics of Microsoft Office, or search engine use, yet still call it "computer science."
"We have a crisis in the country that we don't have enough computer science teachers," Garcia says. "Well trained, engaging computer science teachers. We just need more bodies."
But it's hard to attract those bodies when the tech sector is so hot. Both big tech companies and start-ups are struggling to hire young engineers. And those private sector employers can pay almost three times more than public schools.
Also, computer science doesn't have a natural spot in the school-day schedule. It's vying for a spot in a crowded curriculum.
Recently, I asked Sal Khan, the founder and CEO of Khan Academy, about this.
He says most educators weren't exposed to computer science classes when they were young, and that's part of the challenge. But, he adds, "there's also an opportunity in that there isn't anything to replace. It's a green field, it's a new area, and there's all sorts of incredible tools for people to learn. And when I talk about people, I'm not just talking about students — I'm talking about people of all ages. I encourage parents, teachers, people of all walks of life to start dabbling a little bit."
Professor Garcia says one key mistake he sees a lot is teachers giving the same assignment to all: " 'Hey, let's all do Tic-Tac-Toe, let's all do one project.' That's never going to engage everybody."
Instead, he counsels, let students search out and find a project that's based on their own interests. "Maybe it's working with a local non-profit and making an app for them. Maybe it's making a game. Whatever it is, it's important to that student."
Dan Garcia says there's another important issue: Once courses are created, educators must make sure they're reaching a diverse audience. Women and minorities are grossly under-represented, not just in tech fields, but also in computer science classes.
Teachers should shake the trees and reach out to more kinds of students, not just the student who's doing well in math. And, he says, connect computer science to bigger, more controversial topics, Garcia says, because coding and data are connected to issues of power.
With the persistent digital divide, he says, educators must ask, "What does that mean for equity? What does that mean for fairness? Privacy issues? Hopefully the curriculum brings equity as part of it," he says.
UC Berkeley student Michael Ball didn't arrive on campus intending to be a computer science major. But after taking Garcia's BJC class, Ball was hooked. He's now a graduate student and teaching assistant heading for a career he hopes will stay connected to teaching.
One of the biggest challenges, Ball says, is that computer languages can be tricky, especially when just starting out.
"Teachers need to be motivating, and open to the idea that CS doesn't come easy for a lot of students," Ball explains. "Even a very minor error can be the difference between code working and completely failing. It's important for teachers to be able to work through this process with students, so that they realize what's normal when learning and how to persevere through errors."
"I think we, as educators, need to go seek out the students we want," Ball says. "Go find them during lunch, or breaks. Ask them to join, and if they don't want to, learn their hesitations."
Despite all these challenges, there is some good news. Seven of the nation's largest school districts — including San Francisco, Chicago and New York City — have pledged to radically expand access to Computer Science classes.
In addition, Microsoft is expanding it's successful TEALS program which pairs computer science professionals in the tech industry with classroom educators to team-teach and support CS in high school classes throughout the country.
KELLY MCEVERS, HOST:
In his State of the Union Address this week, President Obama said the country has made progress in education, and it's time for a new goal.
(SOUNDBITE OF ARCHIVED RECORDING)
BARACK OBAMA: Offering every student the hands-on computer science and math classes that make them job ready on day one.
MCEVERS: That got us wondering just what might it look like if every student could take a good, hands-on computer science class? NPR's Eric Westervelt from our Ed team went to find out.
ERIC WESTERVELT, BYLINE: UC Berkeley computer science professor Dan Garcia spends part of everyday thinking about how to best teach computer science to everyone. He's turned part of his home next to his laundry room into a makeshift studio to webcast to the world a massive open online course he calls BJC, the beauty and joy of computing.
(SOUNDBITE OF ARCHIVED RECORDING)
DAN GARCIA: Welcome, everybody, we're live on BJC on the air, hanging on the air. Week five - welcome, everybody, from the BJCX.
WESTERVELT: Garcia co-developed the popular undergraduate computer science course at Berkeley for non-majors. And for the last five years, he's helped more than 200 high school teachers across America learn to teach the subject through a summer course. And he's also helping New York City public schools create an advanced placement course for high school students there. Key to a good hands-on course, he says, take that joyful part seriously. He advises teachers to help their students cultivate a passion for the creative possibilities of computing.
GARCIA: Picking a project, getting engaged, getting really deep into the weeds of it, feeling they owned it, having trouble - having like, oh, it's not working - and then finally getting over that hump, getting it to then just sing. That's the most exciting time in a young student's computer science career is when they finally finish their first project and they want to just shout to the rooftop, this is mine.
WESTERVELT: But before students can shout from the rooftops, more schools need to actually offer computer science. It's taught in less than 10 percent of America's high schools. Adding to the dysfunction, some schools are teaching the basics of Microsoft Office and search and calling it computer science. It's not.
GARCIA: We have a crisis in the country that we don't have enough computer science teachers, well-trained, engaging computer science teachers. We just need more bodies.
WESTERVELT: But it's tough to attract more bodies when the tech sector is so hot. Big tech companies and startups alike are struggling to hire enough engineers. And young CS majors can make maybe three times as much in the private sector than as a public school teacher. And because computer science traditionally has not been taught in schools, many administrators are struggling to find a place for it in an already-packed school day and crowded curriculum. I recently asked Sal Khan about this. He's the founder and CEO of Khan Academy.
SAL KHAN: A lot of educators haven't been exposed to it when they were you. So that's the challenge, but there's also an opportunity in that there isn't anything to replace. It's green field. It's a new area and there's all sorts of incredible tools for people to learn.
WESTERVELT: Another hurdle is diversity. Women and minorities are underrepresented in tech fields and in participation in computer science courses. Dan Garcia at UC Berkeley advises teachers not to shy away from the big, important and often controversial topics that connect computer science to the larger world.
GARCIA: It is coding and data and issues of power. You have the digital divide, and what does that mean for equity? What does that mean for fairness, privacy issues?
WESTERVELT: There is some good news. Seven of the nation's largest school districts have pledged to radically expand access to computer science classes including San Francisco, Chicago and New York City. Eric Westervelt, NPR News, San Francisco. Transcript provided by NPR, Copyright NPR.