NSF Grant to add “a teaspoon of computing” to non-CS classes

Teaspoon programming languages can broaden access to computing skills through incorporation in a variety of coursework.

A new class of programming languages in development at the University of Michigan offers teachers a straightforward way to teach computer science to a much broader student population. Lead researcher Prof. Mark Guzdial hopes to see the tools, called Teaspoon languages, for task-specific programming (TSP), incorporated into social studies, language arts, and mathematics teaching materials to bridge the experience gap and make computing more accessible. With a new NSF grant, the group will explore how they can be adapted to discrete mathematics courses for early CS majors.

“If we can get CS into, for example, history courses, we will reach more students, and more diverse students, than we do today,” Guzdial says. “We want to achieve CS for all, by taking CS to where the ‘all’ are.”

Unfortunately, as Guzdial points out, the “all” are not in CS courses. Fewer than 5% of US high school students enrolled in a CS course in 2022, even though 51% of US high schools now offer CS classes. For comparison, three times as many students take the AP US History exam as the AP CS Principles exam, and those students are much more diverse. One of the big challenges is getting students to try programming, says Guzdial, because it seems so complex and challenging. Teaspoon languages aim to give students a different perspective on programming by introducing it more simply in the classes with the most – and the most diverse – students.

The question becomes, what kind of CS can be done in non-CS classes? The answer is digestible, approachable, and brief CS. The first principle of Teaspoon language design is usability, Guzdial says.

“A Teaspoon language has to be usable and useful to a non-CS teacher. If a language can be learned in less than 10 minutes, then it’s not a huge investment. You can use it for even just a single one-hour lesson, and then throw it away.”

History in data interface
DV4L allows students to get their hands on programming in the context of a history lesson.

As an example, the Teaspoon language Guzdial showcased for history courses at the 2022 ACM SIGCSE Technical Symposium had students perform visualization exercises on population data from around the world. The language, Data Visualization for Learning (DV4L), has both a graphical and a scripting (JSON) interface, so users can make adjustments with sliders or look under the hood at the source script. Both approaches give real-time visual feedback to their inputs.

“History teachers tell us that setting a driving question is critical for all history inquiry, so we built that in,” Guzdial says. DV4L lets instructors pose analytical questions that students can answer with comparative visualization, checking out and saving graphs of different data.

For math and engineering classes, a tool called Pixel Equations has students program their own image filters. It demonstrates three things to the users: equations can describe sections of a picture just like a graph, colors can be specified by equations, and conditional statements can be used to test and select pixels based on their value.

Both of the sample Teaspoon languages introduce the process of programming without the need to understand loops, ifs, and curly braces.

“It’s programming, but just for one task and with just mathematics,” says Guzdial.

The researchers received an NSF grant (“Task-Specific Languages as Scaffolding for Programming in Discrete Mathematics Classes”) to apply the principles of Teaspoon languages to learning discrete mathematics, which is a required course in most computer science programs, including here at Michigan. 

The newly funded work is built on research by Guzdial’s collaborator, Dr. Elise Lockwood, who has been successfully teaching counting problems in discrete mathematics courses by having students build Python programs to do the counting. The new Teaspoon languages developed by Guzdial and Lockwood support programming to solve a similar class of problems, with much more usable languages than Python. This next leg of the project will explore how the use of Teaspoon languages can compare to Python for discrete mathematics instruction, and how they can be used in combination.

With these and other Teaspoon languages, Guzdial’s lab hopes to achieve a much more continuous exposure to computing practices for students at all levels. 

“We’re adding a teaspoon of computing to other subjects,” he says.