Study awarded top paper of past 50 years


Photo Courtesy of ACM SIGCSE

Professor Herman receives an award from the Association for Computing Machinery’s Special Interest group at the Technical Symposium on Computer Science Education.

By Daniel Renteria, Staff Writer

University computer science professor Geoffrey Herman’s co-written study was awarded top paper of the past 50 years.

“Identifying student misconceptions of programming” was presented the award by the Association for Computing Machinery’s Special Interest Group on Computer Science Education at their Technical Symposium on Computer Science Education. The conference gathered educators to discuss the problems faced in computer science education.

At the suggestion of his doctorate advisors, Herman joined a project to develop a research assessment tool to find what teaching methods result in the best education for computer science students.

“The first steps we wanted to do was to figure out what do students learn about computing after their first course and what do they struggle to learn after that,” Herman said. “The focus (of this paper) was to document and understand and describe why students struggle to learn computing programming.”

Herman researched alongside two professors from the University of California, San Diego and one from Northern Iowa University.

    Sign up for our newsletter!

    The major misconception students usually face after their introductory computer science classes is referred to as the “superbug,” the concept computers will perform any kind of interpretations on an inputted code.

    “Computers do not try to interpret what we tell them to do. The main difference between a human and a computer is that a human tries to interpret the intentions of your words,” Herman said. “If I use an idiom or an analogy or a metaphor, then people try to understand what that means, and we use colorful language, while computers don’t.”

    Another concept the study found students struggled to grasp is understanding a computer’s memory. A computer can interpret the type of memory and the memory itself; for example, a computer can have a memory of a sports score and have the actual memory of the score itself.

    Alex Mackowiak, junior in Engineering, found he and the students he taught in CS 126: Software Design Studio had trouble understanding the memory systems in Java and C++ computer programs.

    Mackowiak stated an early source of confusion for him was the parameter system in Java.

    If you were to relate code to a math function, a parameter would be the x in a function F(x).

    In Java, because the memory system can be misunderstood by students, problems can occur.

    “[Students] think that when you pass in an object through the function you get a copy, it just automatically copies the memory for that object,” Mackowiak said. “Instead (in Java), you get the object itself, and when you modify things of the parameter you’re changing them outside the scope of the function as well, so outside where the code for the function actually runs, and I see a lot of people make mistakes like that.”

    Jonathan Kent, sophomore in Engineering, finds computer science teaching methods to be an issue.

    “The capacity to think creatively and learn new things on your own is far more important to being able to code than just having a suitably great volume of background knowledge,” Kent said in an email.

    As to the steps being taken to address these misconceptions, educators are still working out methods for how that should be done. Herman suggests the paper’s significance is due to it initiating ways to address the problem.

    “For why the paper won the award, is because it’s one of those early papers which said, ‘Hey, here is some theory, here is some science to help us make better decisions and inform our future efforts’,” Herman said. “It’s an early paper in the space and we’re still in the process of developing the science to answer those questions.”

    [email protected]