Skip to content

brains-on-code/AoC-FRP-Code

Repository files navigation

Unexpected but informative: What fixation-related potentials tell us about the processing of ambiguous program code

Concept

Inspired by existing studies on atoms of confusions such as Langhout et Aniche: Atoms of Confusion in Java (ICPC 2021), which analyzed confusing code patterns in program code, but is extended to a EEG and eye-tracking setup to detect neurocognitive processes on a deeper and more detailed level using fixation-related potentials.

Requirements

The software has been developed and used on Windows 10 and 11 OS. There are no specific hardware requirements

The major share of the code is presented as jupyter notebooks, for which Python3 is required (implementation in Python 3.11). It is recommended to create a virtual environment to use for the execution of those snippets. The required packages can be installed via the requirements file. This should require only a few minutes.

pip install -r requirements.txt

For some aspects like the study presentation, we used other programming languages. For the presentation, we used scripts generated in PsychoPy, so the script presented in 06-Task-Presentation_Recording is created and executed with PsychoPy (Version 2021.3.2). Additionally, for GLMERs we use R (4.3.2), which has to be installed and usable in jupyter notebook.

Study

Purpose

This folder contains all parts used for the study, where we showed the participants code snippets and captured their gaze and brain activity (eye tracker and eeg waves) while understanding the presented code.

Pipeline and Folders

In the folder, there exist the following folders for an iteration:

The data of this project is stored on Zenodo upon publication.

Terminology

Some terms used in the paper have another correspondence in the code analysis due to project evolution.

  • Duration -> Comprehension Time
  • Correctness -> Answer Correctness
  • Rating -> Subjective Difficulty Rating
  • Clean -> Ambiguous
  • Obf -> Unambiguous
  • Block_No -> BlockNo
  • In_Block_No -> ItemOrder

Clarification of further terms:

  • Conditions = Ambiguous, Unambiguous
  • Snippets: one program code stimulus, also referred to as (code) snippet
  • Snippet pair: two corresponding snippets differing only in the condition
  • Snippet number: the snippet number as assigned by Langhout et Aniche, stands for 3 snippet pairs with differ only in their version number (v0,v1,v2)
  • Trials: A unique combination of snippet and Participant
  • Behavioral data = Comprehension Time, Answer Correctness, Subjective Difficulty Rating

License

The work is licensed as Creative Commons Attribution 4.0 International.

The Creative Commons Attribution license allows re-distribution and re-use of a licensed work on the condition that the creator is appropriately credited.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published