As a researcher of computing education, the perspective of the coding novice is a frequent preoccupation for Mark Guzdial. After all, new pupils are the foundation of his field – early lessons shape the way they think throughout the rest of their education.
It’s no surprise then that throughout his experience teaching, which includes most of his life, Guzdial took on courses that covered the fundamentals. Even in his senior year of high school he led a community education course called “Bits, Bytes, and Basic,” intended for adults who wanted to “learn what these newfangled devices like the Apple II and TRS-80 were all about.”
He carried this mindset with him as a professor in the School of Interactive Computing at Georgia Tech, where he would develop one of his landmark successes in an introductory computer science course designed for non-majors.
“I always told them on the first day that this is for people who are scared of computing,” he says. “They would come up to me after class to say,” leaning in to add in an exaggerated whisper, “that’s me, I’m one of those.”
The course is built around a computing educational framework Guzdial invented himself, called media computation, which replaces standard programming challenges with manipulation of sound and images.
“The idea is it’s the same computing we would normally put in an intro course,” he explains, “but they’re manipulating the digital media of their lives.”
To demonstrate, he grabs a picture from his desktop and defines a function to decrease the red. In a development environment he also invented, called Jython Environment for Students (JES), he builds a rudimentary function to iterate through each individual pixel in the image and reduce its red value by half. Rather than reading a success message in a shell, Guzdial watches the image change color in real time.
The goal of this media computation curriculum, as well as the programming course that first implemented it, is to make programming fundamentals approachable to students who were more accustomed to using computers for expression and creativity. Working with his former student Andrea Forte, now an associate professor at Drexel University, he says they reached the conclusion that for these students “computing is not about computation, it’s about communication.”
In 1999, Georgia Tech offered only a single required programming course for non-majors. With an overall pass rate of 78%, it seemed on its face to be succeeding. But there was a serious disparity in pass rates when students were considered by field of study – around half of the course’s liberal arts, architecture, business, and design students were failing.
Guzdial was charged with addressing this shortcoming, and in 2002 he introduced his course on media computation. The pass rate soared to 85%, where it remained for the subsequent ten years. The curriculum’s success was similarly tremendous at other schools in the years following.
Challenges like these are Guzdial’s bread and butter. Now a Professor of Electrical Engineering and Computer Science and Engineering Education Research (EER) at Michigan, he is embedded with other computer science faculty to determine how different students think about computing, and just how exactly teaching it is supposed to work.
In this new role, Guzdial is really one of a kind. The U-M model of embedding tenured faculty whose area of scholarship is EER within traditional engineering departments is a first, and it hasn’t been followed by other R-1 institutions. The model is likewise the first to put a significant focus on computing education as an area in its own right, with Guzdial spearheading this effort as the sole computing education researcher in the College. He now works with three PhD students (two still at Georgia Tech), with a fourth coming in January as his first specifically EER student.
“It’s all a big experiment,” he says. “We have the opportunity to create a new model.”
Guzdial’s career in computing education research nearly spans the lifetime of the field itself. As he’ll tell you, the area is in its infancy relative to other education research. Educators in computing are faced with unsolved problems waiting for innovative solutions on every front, with Guzdial’s media computation course just one example among many.
He explains the issue with an anecdote: the National Council for Teachers of Mathematics formed in 1920, almost 100 years ago; the American Association of Physics Teachers was formed in 1950; and the Computer Science Teachers Association was founded in…2005.
“We are way, way behind,” Guzdial says. He finds the issue particularly striking given the booming popularity of programming across education levels and the demand for workers in the field. “We have this valuable thing that lots of people want, and we don’t know how to do it well.”
With this world of possibilities open to him, Guzdial’s research spans issues as diverse as education itself – and his contributions to the burgeoning field have been far-reaching.
If we’re right, it really suggests a different way that we should be teaching programming, that teaching in terms of the program lines is the wrong way and not the most natural way people learn.Mark Guzdial
How to think
A body of evidence suggests that novice programmers don’t actually learn how a FOR loop works or what an IF statement does from lectures on the form and purpose of program statements. The principal task of education in any field is to determine how pupils actually absorb new information and apply it, the goal of course being to fine tune teaching methods to adapt to how learning really happens.
One of the big questions Guzdial and his students are asking is how students first seeing programming actually think about computer science. If piecewise code snippets like loops and conditionals aren’t actually registering for new students, what is?
Studies in this area have shown that, instead, the students tend to identify and recognize larger chunks of code that work, called programming plans, that solve common problems (like adding up or averaging all the numbers in a collection). They figure out the form and and purpose of individual programming statements later. Human learners might learn programming more effectively if they get the chance to infer the programming statements from many examples in meaningful contexts.
“If we’re right,” Guzdial says, “it really suggests a different way that we should be teaching programming, that teaching in terms of the program lines is the wrong way and not the most natural way people learn.”
In fact, even the fundamental basis of students’ reasoning is being called into question in a major way. There’s a lot of evidence, some developed by Guzdial’s group, which shows that spatial reasoning correlates with a person’s ability to learn programming. But Guzdial points out that the test predominantly used to determine strong spatial reasoning leaves some ambiguous results.
The test in question presents subjects with a series of 3D objects sketched in 2D. They’re then presented with one more, and tasked with determining which from the original set is a rotation of the new figure. The thinking that goes into drawing this conclusion, Guzdial explains, requires a lot of abstraction – subjects have to be able to identify features in one image, conceptualize those features in a three-dimensional space, repeat this for a handful of other figures, and then identify mentally where features intersect.
Guzdial’s student, Amber Solomon, hypothesizes that the process of mapping the sketch to 3D is what actually correlates with performance in computer science, not the 3D rotation itself. The two tasks aren’t dissimilar. In programming, a student is given a problem and a number of tools whose functions are not obviously catered to the situation at hand. Identifying how these tools will behave when used in combination and determining which of these combinations aligns with the intended solution is a process of abstract thinking.
Starting with fundamental questions like these could have a major downstream effect on teaching methods. Barbara Ericson, Assistant Professor of Information at U-M and Guzdial’s wife, collaborates frequently with Guzdial to develop some of these more concrete outcomes.
“She’s the more technical of the two of us,” Guzdial says. “She actually builds much more than I do.”
Ericson’s hallmark project at the moment is on creating new kinds of eBooks for teaching computer science. The twist is that users actually program inside the books. A given chapter, besides textual material, will include things like multiple choice questions, videos, interactive coding boxes, and Parsons problems embedded on the page.
Parsons problems are “refrigerator magnet” coding problems – you’re tasked with dragging boxes containing code snippets into the correct order to produce a certain solution. Another research focus of hers has been demonstrating the effectiveness of these problems as opposed to traditional coding assignments, and figuring out how to make them more adaptable to students of different proficiencies.
Ericson demonstrated that students do, in fact, perform as well on post-tests after doing Parsons problems as they do with traditional code-writing problems, and they finish the work much faster. For more advanced students, Ericson presented problems that offered bad code snippets as options that had to be omitted. Mechanisms like this helped make the format adaptable to different skill levels on the fly.
Programming the real world
In the spirit of applying these insights to real educational environments, Guzdial and Ericson have also embarked on public policy work.
The pair helped the state of Georgia improve computing education from 2006 until 2012, and then started an effort called Expanding Computing Education Pathways with collaborators from the University of Massachusetts, Amherst. The program’s goal is to increase the number of computing and computing-intensive degree graduates, and the diversity of those graduates, via systemic change to educational pathways. For six years Guzdial, Ericson and their colleagues worked with 16 states and Puerto Rico to improve their computing education programs.
Their efforts included introducing summer camps and training staff, working with the Department of Education in South Carolina, and developing mini-grants for places like Puerto Rico and California. Their work carried them to many different states, giving them valuable insights into how they each organize their computing education differently.
Guzdial is now working to explore this even more deeply with his student Miranda Parker. In particular, they want to tackle the question of why people learn computer science in K-12 from the opposite side of the issue – why do K-12 schools teach it?
“We know a lot about why a student might want to study computer science,” he says, referring especially to the major push at national and state levels to spur interest in the curriculum. “But computer science doesn’t appear in a school unless the school decides to teach it.”
Guzdial and Parker began with a quantitative model based on things like wealth in the school district to try to predict when a school will adopt computer science. And while wealth in the county does predict CS enrollments, the explanation of variance only reached about 4% – in other words, there’s not yet a concrete model.
Exploring whether such a quantitative model can be built is the first part of Parker’s dissertation. To complement this, she’s also visiting schools to conduct interviews and determine why different administrations made their curriculum decisions.
Now, in his new position at U-M, Guzdial is embarking on yet another unique real-world computing question: how can programming be used as a tool to learn something else?
A program called Bootstrap caught Guzdial’s attention, which has kids design a video game to learn concepts in algebra. Think of it this way: a student may be struggling with the concept of a variable, that this name has a lot of different possible values, so they make a simple arcade game that gives the player a score. That score is going to have to take on different values throughout game – a changing variable.
Guzdial illustrated this concept in a guest lecture at U-M Dearborn this fall. He pulled up a slide with equations expressing the relationship between velocity and acceleration.
“When you learn physics,” he explained, “you learn things with this powerful notation – I give you all the variables but one, you can figure out the other one.”
But what this doesn’t give you, he continued, is any sense of causality. Why does the object move at all? How does acceleration relate to velocity?
He then pulled up an alternative view of those same equations – an algorithm driving a visualization. The simple program moves a dot with each tick of a clock, changing velocity to velocity plus acceleration and the position to position plus velocity. Now it’s clear that acceleration is manipulating velocity and velocity is manipulating position.
“I asked a student, if you’re at the top of a two story building and you drop a rock, how long does it take to hit the ground?” he continued. “And if you look at what the kid’s doing, he’s not solving an equation – he’s running the loop in his mind.”
So Guzdial is interested in applying that same logic to how people learn social studies and economics.
“I’d like to think about using programming as a way to make those more accessible,” he says. “I think that economics doesn’t really make sense until you can build models and simulations that mimic different economic processes.”
The idea of the computer being a tool for learning, a tool for expression, humanity’s first metamedium, the first medium that could be any other medium. I love that idea.Mark Guzdial
A new literacy
Computing education first captured Guzdial’s imagination when he was an intern at Bell Labs in 1992. He discovered the famed work of Alan Kay at Xerox PARC, in particular a paper called “Personal Dynamic Media” that presented the idea of the computer as a learning and learnable tool.
“The idea of the computer being a tool for learning, a tool for expression, humanity’s first metamedium, the first medium that could be any other medium,” he says. “I love that idea.”
This vigor is on full display still today. Guzdial, in addition to the reputation he’s earned from his work, is an outspoken expert and critic in his field. On his popular blog, simply titled the “Computer Education Research Blog,” he philosophizes about the state of computing, the growing role it plays in every layer of people’s lives, and the personal duty he feels to expand access to this crucial tool.
“I suggest that programming is a literacy,” he writes in a recent two-part exposition on the goals of his field. “It’s a way of expressing thought, communicating with others, and testing and exploring new ideas.”
The heightened status of literacy presents interesting implications for computing education. If this set of tools is fundamental to the way our world works, the way our social relationships are formed, does this make a person who hasn’t been equipped to “communicate” with them illiterate?
Guzdial argues yes – and that it’s therefore a responsibility of education to make sure no one is left behind in this changing landscape.
“Programming gives you this other way of viewing the world, and that’s part of what makes this so interesting,” he says. “It now behooves us to figure out how you give everybody access to this literacy.”
And, according to Guzdial, that’s what makes computing education a social justice issue. With the advent of this new literacy, it’s the duty of educators, and his personal mission, to make it available to all.