Eye tracking in Software Engineering and Computing Education

What do developers look at when they are fixing a bug or adding new features into a software system? What if we could help developers while they work solely based on their eye movements? How do novices differ from experts while they read and understand source code? Can we use these differences to inform our curriculum to help novices learn better?

Bonita Sharif, an assistant professor in the Computer Science and Information Systems department, is collaborating with CSIS students and professionals in Germany and Switzerland to address many of these issues.

Dr. Sharif and her team are collecting data by using eye tracking devices in hopes of improving software developers’ experience while they are work on their daily tasks such as bug fixing or adding new functionality to a software system.

“Imagine a scenario where the eye tracker will be tracking the person’s eye movements while they are developing certain features or they are trying to figure out a bug. We can leverage that fine-grained eye-tracking data and use it to recommend solutions based on the task” Dr. Sharif said.

The team is using a hands-off system to track participant’s eye movements. There is no need to wear any gear. While eye movement can be tracked by wearing a tracking device on the head, in this research a device that sits at the bottom of the computer monitor is being used instead.

“[The device] shines infrared light into your eyes and the reflection actually tells you where you’re looking at on the screen, and it’s pretty accurate,” Dr. Sharif said. “You just sit in front of the eye tracker like you usually would while working and the data is collected silently.”

This research benefits not just practitioners in the field but also pedagogy. For example, little is known as to how novices become expert programmers. How do we train our students to learn and eventually become an expert programmer? This is another long term goal that Dr. Sharif and her team are working on. They are conducting several studies in entry-level programming classes to understand how novices read source code. These results will help modify the curriculum to employ more evidence-based practices in teaching computer programming.

“[For example,] when you take for instance an entry level class in computer programming…we look at eye movements in maybe the third week and then we look at eye movements in maybe the tenth week, and we try to see if the student has learned enough that they actually solve the problem more accurately and with greater speed,” Dr. Sharif said. “Novices tend to read in a linear fashion as if they were reading natural language, whereas experts jump to the place that is most important in the program. It’s still not known how novices become experts and when that switch happens.”

Dr. Sharif and her collaborators published the following article recently in the highly selective conference on computing education:

Busjahn, T., Schulte, C., Sharif, B., Simon, Begel, A., Hansen, M., Bednarik, R., Orlov, P., Ihantola, P. (2014) “Eye Tracking in Computing Education”, International Computing Education Research (ICER 2014), Glasgow, Scotland, August 11-13 2014, pp.3-10 (25% acceptance rate)