Computer science is one of those fields that is all about trail blazing — creating what doesn't yet exist. In fact, computer science itself scarcely exists at the high school level, and a group of Blugolds are working to fix that.
The reasons for the lack of programming classes at the secondary level are many, but one main issue is the decentralized nature of the field, as a subject that overlaps disciplines. Computer science is late to the educational game, so it doesn't have standards like math and science do. In fact, just a few years ago, not many states even counted computer science classes toward graduation requirements. Of course, there are the simple logistics of lab space, available hours of class in a day, even internet access in poorer districts. It's not uncommon for college computer science students to enter the major never having had a computer science class before.
Unlike the earth and physical sciences, languages and social sciences, computer science is truly a brave new world of study for college students to choose. What students should not find too discouraging is that there is a fairly high failure rate in that first CS class — there is a knowledge and experience gap that is unique to the field of computer science, but that gap is overcome quickly.
Dr. Chris Johnson, associate professor of computer science, currently teaches a research seminar aimed at helping students create instructional models to be used in teaching coding to younger students, and bridging that gap.
Computer Science 491, a research seminar uses games and game creation to teach coding, and offers Blugold computer science students a unique opportunity to address a real-world problem while applying their knowledge and problem solving skills. Research in computer science differs in significant ways from other scholarly research, according to Johnson, and these differences provide unique learning opportunities for his students.
"Famous software engineer Fred Brooks once distinguished between scientists and engineers in this way: an engineer studies in order to build, while a scientist builds in order to study. Both scientists and engineers end up doing similar things, but their motivations are different. In computer science we go through what seems like an endless cycle of study-build-study-build.
"In this class, and in many computer science research projects, we spend so much time and mental energy trying to build, that we often have too little time left to study our tools' impact. Research is not an efficient process. When we do new things, we don't have a guiding light leading us down a nice paved trail," Johnson explained.
Eight students are enrolled in this year's research seminar, and they have each been tasked with creating a game that can be played by students at the secondary level. While each student creates their own game, the course is highly collaborative, meeting weekly with discussion time and brief updates on game progress, meant to be a group problem-solving session.
"Each game can have a different target audience," said senior Seth Gilbert. "Our goal is to have that audience come away with a better understanding of a specific computer science topic, so that they can have a better understanding for class or for future programming."
The ultimate goal of the game development is that they be used on campus, serving as a sort of "interactive textbook" Johnson says, allowing students to practice with computer science concepts in a playful manner. In addition, one requirement of the seminar grading is that the research students present their work at a computer science conference with CS educators.
"These games probably won't be finished by the time we share them. But that's by design. When we build a tool to help with learning, the wisest approach seems to be to get a few teachers using it right away. Then the feedback starts to roll in, and we improve the tool based on its actual use by real students," Johnson explained.
Seminar student Christin Fenter, a junior computer science major, has found tremendous benefit in the collaborative discussion-based process of the research.
"It's been great to be put together with a lot of sharp minds and bounce ideas around and get immediate and regular feedback. This type of research has differed from other types in that our primary goal is to create something that will help others learn computer science," Fenter said.
All of the students and Johnson agree that often the most informative part of this process comes from the mistakes, or failures in the game development. The game building process is designed to rely on the missteps and reflection to guide the research toward success.
"If we test what we build early and often, we can steer ourselves back on track," Johnson says about the foiled attempts. "One of the appealing aspects of games is that when you lose, you can be pretty certain why it happened — you fell in the lava, or you mistimed your jump. The 'nearness' of the cause gives hope of success next time."
Katherine Reiter, a senior computer science major, had similar thoughts about this aspect of the game project.
"Whenever I failed in my game, I had to dig around in my code to find the problem. Many times this led me to fix small problems I hadn't noticed before, or things that would have become problems later. Failure seems to lead to better understanding of things I already know," Reiter said.
Senior computer science major Paul Voelker came to UW-Eau Claire after completing a bachelor's degree in biology from UW-Madison, and truly enjoys the significant departure in research style and method from his past experiences in biology.
"The biggest difference is the level of ownership we have in these projects. At Madison, I had the chance to work as an undergraduate research assistant, but the scale of the research meant that my role within it was relatively minor. That made it hard for me to see the impact I had made. With this project, we have complete control of the process from start to finish, which is an opportunity for creativity I haven't found anywhere else," Voelker said.
One way that a seminar like this one best prepares graduates for work in the field is in both the team structure and the open-ended nature of the task. As Johnson points out, industry work is seldom spelled out in exact terms. Instead, it is design work requiring innovation and skills not easily acquired in the classroom.
"Companies that hire our students like what they have learned, but it's side projects like the games we are making that help our students stand out from the crowd," Johnson said.
Top photo caption: Dr. Chris Johnson, associate professor of computer science, currently teaches a research seminar aimed at helping students create instructional models to be used in teaching coding to younger students.