Shriram Krishnamurthi: Programming Languages and Algebra

When Shriram Krishnamurthi considered graduate schools in 1993, Rice’s computer science PhD program was just hitting its stride. “A professor at Indiana said, ‘Matthias Felleisen, one of my PhD students, is now teaching at Rice; you should look into their program,’ so I followed up on his advice,” he said.

Although he chose Rice’s program, Krishnamurthi began his PhD by studying computational biology algorithms with another CS faculty member, Alejandro Schäffer. He said, “After about a year, I felt this huge imposter syndrome, wondering how much I really knew about biology and thinking I had no business working in computational biology.”

While trying to settle on a research area, he read Felleisen’s paper, “On the Expressive Power of Programming Languages.” Krishnamurthi said it was the most beautiful paper he’d ever read and it inspired him to explore programming languages.

“I also knew I wanted the author of that paper for my advisor,” he said. “Alejandro was very gracious and expressed his disappointment in losing me, but also encouraged me to follow my heart. He was really generous about it. He left Rice to work for the NIH, but many years later he even attended a hiring talk of mine; we have stayed in touch every year and continue to do so.”

When Krishnamurthi began focusing on programming languages, he also became involved in K-12 computer science outreach with Felleisen. They heard CS professors expressing dismay at their first year students’ lack of preparedness, so Felleisen’s group began exploring the differences between high school CS curricula and the rich CS curriculum at Rice.

“What is the difference between a high school senior and a Rice freshman? Just one summer,” said Krishnamurthi. “We wondered why a 12th-grader couldn’t do the same work as our Rice freshmen. And if a 12th-grader could do it, why not an 11th-grader? So we created something of a ‘pre-Rice’ curriculum for high schools.”

Over time, the details of the curriculum they created for high school students has changed, but the core remains the same. Krishnamurthi’s team went on to develop Bootstrap, an umbrella program that includes curricula for middle and high school students studying algebra, physics, computer science and data science.

The most widely used curriculum in the program is the Bootstrap:Algebra course. Krishnamurthi said it is designed to reach far beyond programming. “Algebra is a whole new way of thinking and it is the first time abstraction shows up in math courses for middle and high school students. Many students begin having difficulty in math for the first time in their lives at this point.

“But if you can’t do algebra, you won’t become a civil engineer or mechanical engineer, or even a business manager or an economist. So what we did is come up with a way to impact algebra classes by focusing the students’ attention on creating a video game.”

Bootstrap:Algebra can be embedded directly into a teacher’s existing lesson plans for an algebra course. At an appropriate point in the course, the teacher surprises the class by announcing they are going to make their own video games over the next few weeks. The students get to choose their own game environment with a player, a target, a danger and a background, such as a scuba diver, a treasure chest, and a shark in an underwater scene.

“With no prior programming experience, the students build a working video game, but they are learning algebra the whole time,” said Krishnamurthi. “Once they have a basic game started, the teacher might ask, ‘what if you could scroll to the side or detect when things collide? You can do that, but I have to teach you a new programming skill.’ That new programming skill is exactly aligned with a new algebra skill as well. To learn the programming skill, they are also learning an algebra skill.”

In addition, the Bootstrap:Algebra curriculum is designed as a series of word problems, so students are also learning to read and decipher algebraic word problems as they are working through their game creation. “When they’ve done 20-25 hours of this, they have developed some basic programming skills and a method by which they can solve word problems,” said Krishnamurthi.

He said the real beauty of Bootstrap:Algebra is that math teachers with little or no experience teaching computer science can easily incorporate it. “The students never really left algebra class; they just have new skills and also understand why functions are applicable in their lives because the teacher has demonstrated their usefulness in something as common as video game design. Then students can return to those concepts when they want to solve other problems. The teacher might prompt them by saying, ‘So you want to make something move up or down? That ‘update player’ function was actually a piecewise function.’ That’s the kind of transferable knowledge we’re talking about with Bootstrap:Algebra.”

Bootstrap:Algebra uses a language, Racket, that Felleisen started developing at Rice with several of his Ph.D. students. Krishnamurthi said, “Though Racket is a large, industrial language, we use a subset that’s been purposed for education. Then my group at Brown developed another language, Pyret, for the other Bootstrap courses.

“I’m a programming language researcher. I can’t help writing programming languages, it’s what I do. Every language is designed to meet a goal or solve a problem, and I wanted to build a programming language that is just right for the physics, computer science and data science curricula in Bootstrap.

“It doesn’t matter to me if Pyret has no other applications; what we are building is a program language for education that caters well to the specific curricular needs that we have, and it has to be an awesome experience if we want the students to love this curriculum.”

Students and teachers alike seem to love the curriculum; over 15,000 students in 25 states use the Bootstrap curriculum suite. Rather than rest on his success, Krishnamurthi is now approaching CS education from a new angle. He said, “I’m looking at how students learn and what makes our courses effective, more along the lines of applied psychology. If students do well on an exam, we think they may have learned something, but exams are actually a weak method of measurement. So, I’m treating it like a research question, to determine how to measure how much students actually learn.”

His job satisfaction remains high because he’s followed his heart, something he advises other Ph.D. students to do. “I think the biggest mistake students make is trying to chase what’s hot, but there’s no point in trying to determine that in a field that changes so rapidly — nor to do what industry is already doing well,” he said.

“Follow your passion instead, especially in advanced research. When I wanted to study programming languages, I was told, ‘That’s a dead field, and nobody needs any more programming languages.’ But it was merely dormant, and 20 years later, it is still really vibrant.

“Find your vision and keep pounding at it. The world will come around. They will wake up and realize there is a problem, but they will also realize someone has already identified it, spent time thinking about it, and has developed the answers. That’s the point of academic research: the freedom and time to think about those things.”