Tandon Grad Student Wins Awards for His Computer Science Research

How can we identify minute, confusing snippets of code to make programming more efficient? Dan Gopstein, a Ph.D. candidate in NYU Tandon’s Department of Computer Science and Engineering, has in recent months received two distinguished paper awards for publications discussing just that.

In September 2017 he presented “Understanding Misunderstandings in Source Code” at the Association for Computing Machinery (ACM) Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), an internationally renowned forum that brings together experts from academia and industry to exchange the latest research results, trends, and practical applications in all areas of software engineering. In the paper, he explains how a programmer’s misunderstanding of the meaning of source code can lead to confusion about a program’s true behavior and identifies specific confusing code patterns that style guidelines tend to overlook.

His latest publication, “Prevalence of Confusing Code in Software Projects: Atoms of Confusion in the Wild,” tackles a problem inherent in source code, which serves a dual purpose: communicating program instructions to machines, and programmer intent to people. Unfortunately, it is common for a person to come to a different conclusion about the behavior of a piece of code than a machine does when executing the program. In other words, he explains, a programmer’s interpretation of a piece of code’s behavior differs from that of the machine. While a difference of interpretation can naturally happen in some situations (such as those involving randomness or undefined behavior), it can also occur in small, self-contained lines of code that Gopstein has dubbed “atoms of confusion.” These design patterns, which are easy to misinterpret, naturally lead to bugs in code.

Gopstein presented “Atoms of Confusion,” which was prepared under the guidance of Professor Justin Cappos, at the Mining Software Repositories (MSR) conference in late May of this year. Gopstein predicts that his research could lead to increased efficiency and security in computer programming. (This is especially true in light of the fact that confusing coding micro-patterns can occur as often as once in every 23 lines of code).

Gopstein’s research provides tools for identifying atoms of confusion so future programmers can locate and remove them from their code. More information can be found at atomsofconfusion.com.