The Power of Programming: Sam Rebelsky
Authored on:Dec 20, 2018
Sam Rebelsky is a professional problem-solver. That is, he’s a computer scientist. Whether he’s tackling a programming task or confronting the social and ethical problems of his discipline, he relishes breaking down complex problems, coming up with step-by-step solutions, and teaching others to do the same.
A professor of computer science at Grinnell College and a Fall 2018 Obermann Fellow-in-Residence, Rebelsky is part of Digital Bridges for Humanistic Inquiry, an Andrew W. Mellon Foundation–funded partnership between the University of Iowa and Grinnell College focused on strengthening teaching and research in the humanities through the use of digital tools and methods.
Rebelsky, who serves as vice chair of the Association of Computing Machinery’s special interest group on computers and society, which studies societal and ethical issues around computing, is troubled by the fact that computer science remains dominated by white men from middle- to high-socioeconomic backgrounds. “Computers are changing the world, and a limited set of views is building that technology,” he says, pointing to trends in the U.S., in both industry and the academy. “If we don’t make sure that a broad range of people are involved in developing the technology, we’re less likely to have successful or positive change.”
A narrow focus has led to biased technology, he says, noting a well-known example in which Google used only white faces to train an image-recognition algorithm in 2015 (result: it didn’t recognize non-white faces as human). Other examples include a company designing a device to analyze drivers’ eyes for signs that they are drunk or too sleepy to drive but failing to include Asian subjects in its test group (result: the technology invariably recognized their eyes as “too tired”); and programmers with no legal training developing a so-called “bias-free” computerized risk assessment tool to sentence lawbreakers (result: it predicted that black defendants would have higher risks of recidivism than they actually do).
Diversity through Digital Humanities
“As a computer science educator,” Rebelsky says, “I have a moral responsibility to do what I can to diversify my discipline.” But, he cautions, the solution “isn’t just increasing diversity in embodiment (race, gender, age, socioeconomic status, etc.); it’s also expanding the diversity of approaches, how people think about the world.” Such approaches could be artistic, collectivist, or humanistic.
That's why he’s making digital humanities the centerpiece of his Spring 2019 introductory computer science course, Functional Problem-Solving.
“Digital humanists think differently about the uses of computing. They tend to see it as a tool to help them achieve a wider objective rather than as a goal in itself,” he says. Such objectives have notably included digitally archiving and annotating images of graffiti unearthed in Pompeii, developing software that co-authors music alongside human musicians in real time, and creating an app that maps and reports to a city’s administrators the locations of buckled sidewalks. Eric Gidal, also a Fall 2018 Obermann Fellow, is working on a digital humanities project that combines GIS with computational semantics and network analysis to explore the connections between language and infrastructure in nineteenth-century Scotland.
When institutions modify their introductory CS courses to emphasize the diverse, real-world applications of computing, they tend to see a more diverse population of students enroll in those (and subsequent!) CS courses—especially women.
Rebelsky’s course will ground students’ study in “approaches related to the digital humanities, investigating ways in which computing changes the ways in which people write and analyze texts.” Part of the course will involve thinking about how one can digitally represent a piece of text—say, an article from Grinnell’s historic newspaper archive—in a way that allows a user to more easily extract its information.
“How might markup make texts easier to use?” Rebelsky wonders. “How could it obscure information? Can we write a program that will scan a text and figure out the average number of adjectives per sentence? Do we learn something from doing that, computationally or otherwise?” Class projects may include digital mapping and writing code that generates text.
Rebelsky has been teaching the workshop-style intro course for more than two decades and has so far redesigned it three times, each time with an eye toward making CS more accessible and attractive to a broader population of students. In all versions of the course, he teaches students how to develop algorithmic, or step-by-step, solutions to problems and to express those solutions in a programming language—but his ultimate goal is to get students to think about problems and solutions in new ways.
Diversity a Priority
Grinnell’s Computer Science Department has long been committed to diversifying its population of CS majors. Currently, 33% of CS majors at Grinnell are women, compared to 18% nationally. (Incidentally, the percent of female CS majors in the U.S. is the smallest across all STEM fields, according to the Department of Education.) Rebelsky and his colleagues aim to increase Grinnell’s percentage to at least 52, equivalent to the percentage of female students at the college—as well as to attract more domestic students of color to the major.
How will they effect such change? There’s no silver bullet, as participation rates are affected by complex structural and social barriers—but researchers have identified a few crucial interventions: emphasizing creative problem-solving in introductory CS classes (rather than pure programming) and including topics that show how computing can benefit society; fostering a supportive peer culture; creating positive faculty-student interactions; and expanding access to computer science in K-12 public schools.
Rebelsky’s doing all of this and more. Besides redesigning the intro course, he’s had a diversity staff member observe nine of his classes to make sure he uses inclusive teaching strategies, and he actively supports the department’s student mentorship program, noting that it serves an important purpose for new and underrepresented students: “Most people need nudging at the beginning, and knowing that you’re not alone is important, particularly if you don’t look like the people around you.”
As for reaching out to kids? He’s doing that, too.
When, in 2015, he learned that there were no middle-school coding camps in Iowa, Rebelsky requested funding to organize a series of low-cost summer coding camps for students in fourth through ninth grades on the Grinnell campus.
“It feels so out of my comfort zone to do it,” he laughs—“I’m a fairly extreme introvert.” Happily for Sam, Grinnell CS majors serve as camp counselors (sporting “This Is What a Grinnell Computer Scientist Looks Like” t-shirts), with Rebelsky acting as a mentor. The camps introduce students to computer technology and programming, training them in problem-solving and computational thinking via fun projects with real-world objectives. For instance, the 2017 “Data Science for the Social Good” camp opened with an exercise in which campers designed strategies to reunite family members after an emergency.
“We saw great success in having students consider social issues in their work,” he recalls. “Particularly as computing can affect society in so many ways, code camps should show students the positive effects they can have.”
Solving (More) Problems & Building (More) Things
Rebelsky will use his 2019–20 sabbatical leave to compile a computer science textbook aimed at digital humanities–themed intro courses. He’ll also organize the data that he and his students have collected from the middle-school camps and return to his longstanding interest in computational artmaking. He and his students have already developed an open-source, web-based app—the Mathematical Image Synthesis Toolkit—that allows users to make visual art through computing. A synesthetic student of his recently used it to create an animation showing what he saw as he heard different sounds.
Rebelsky firmly believes that all students should be exposed to CS, even if it’s not their major field of study: “Programming gives you immense power. If you know how to compute, you can build technology that can help people advocate for themselves and their community.” Plus, he says, smiling, “It’s fun to solve problems, and it’s fun to build things!”
Photo of Grinnell's summer coding camp courtesy of Justin Hayworth. Photo of Rebelsky at Obermann Center courtesy of Stacy Ramirez.