Teaching the joy of coding
|Mandy Huey, a UC San Diego senior and computer science major, works with Preuss School students during a workshop.|
San Diego, Calif., Dec. 7, 2017 -- A group of high school students are huddled over one smart phone, poking at the screen and laughing. But in this class at the Preuss School they’re not being disruptive —they’re actually testing a game app for smartphones that they programmed themselves.
It’s all part of CSE 190, a computer science class at the University of California San Diego, designed to prepare undergraduate students to teach others how to code in the wild—in libraries, as well elementary, middle and high schools. The class is taught by Sarah Guthals, who earned a Ph.D. in computer science at UC San Diego in 2014 and received a Forbes 30 Under 30 award in 2016 for her efforts to teach children how to code.
Guthals is now a manager at GitHub. But she came back to campus as a lecturer to share some of the things she’s learned while cofounding a startup, ThoughtSTEM, and then working for a large tech company. For CSE 190, she talks to students about effective teaching practices and how to navigate programming environments for people who are just starting to learn how to code. Guthals works with students to design and implement engaging projects. Then she releases them into the world to practice what they’ve learned.
“I want children who take classes from my students to experience coding as something magical,” she said.
At the Preuss School, a charter school for low income middle and high school students, students in ninth- through 12th-grade were using App Inventor 2, a software developed by MIT. The tool allows users to move blocks of code around until they find the correct combination or order. It took the Preuss students about 45 minutes to code the app—a whack-a-mole style game—under the direction of computer engineering student Artin Chimayan. He gave step by step instructions and often stopped to check that everyone was following. Guthals’ students walked around and answered questions.
|Computer science alumna Sarah Guthals teaches UC San Diego undergraduates how to teach coding.|
“This allows me to see the world of coding with different eyes,” said Diana, a sophomore at Preuss. “So this is a great opportunity to learn.”
She thought making an app would be difficult. But it was not. She’s learning how to code as part of Preuss’ robotics team this year, but plans to study medicine when she gets to college.
By contrast, Josue, a Preuss junior, wants to major in computer science and become a software engineer. He too enjoyed the class. “It’s very targeted, with lots of one-on-one,” he said. “It gives us insight into software we haven’t used.”
The UC San Diego undergraduates are great role models for high school students, said Daniel Rupert, who teaches computer science at Preuss. “They can look at the tutors and think ‘this could be me’,” he said.
Guthals teaches two weekly sessions at UC San Diego this quarter. On a recent Tuesday, she urged her students to think about the community they want to serve by teaching, and about their audience.
Sarah Yao, a senior at UC San Diego, was nodding along and smiling during class. “Dr. G is so enthusiastic and cares about the students,” she said. “I wish that I had learned computer science when I was younger. It’s useful for your entire life.”
Learning different ways to teach how to code is useful, said Mandy Huey, a UC San Diego senior, who had served as a tutor at Preuss. “This isn’t the way I learned how to code,” she said, referring to the block-based program the students used. “This makes it easier to learn concepts.”
Guthals likely won’t be able to offer the class next quarter—she’s expecting a baby girl in January—but is working with some of her students to develop an organization that will pick up where her class left off, visiting different neighborhoods to spread the love of coding.
|A UC San Diego computer science student helps a Preuss School student learn how to program an app for a smart phone.|
Jacobs School of Engineering