Atoms of Confusion in Java

@article{Langhout2021AtomsOC,
  title={Atoms of Confusion in Java},
  author={C. Van Langhout and Maur{\'i}cio Finavaro Aniche},
  journal={2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)},
  year={2021},
  pages={25-35}
}
  • C. Langhout, M. Aniche
  • Published 8 March 2021
  • Computer Science
  • 2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)
Although writing code seems trivial at times, problems arise when humans misinterpret what the code actually does. One of the potential causes are "atoms of confusion", the smallest possible patterns of misinterpretable source code. Previous research has investigated the impact of atoms of confusion in C code. Results show that developers make significantly more mistakes in code where atoms are present. In this paper, we replicate the work of Gopstein et al. to the Java language. After deriving… 
1 Citations

Figures and Tables from this paper

BOHR - Uma Ferramenta para a Identificação de Átomos de Confusão em Códigos Java
A atividade de compreensão do código-fonte é fundamental no desenvolvimento e manutenção de software. Nesse contexto, Átomos de Confusão (AC) surgem como a menor porção de código capaz de causar

References

SHOWING 1-10 OF 27 REFERENCES
Thinking aloud about confusing code: a qualitative investigation of program comprehension and atoms of confusion
TLDR
It is argued that thinking of confusion as an atomic construct may pose challenges to formulating new candidates for atoms of confusion, and questioned whether hand-evaluation correctness is, itself, a sufficient instrument to study program comprehension.
Identifying and Validating Java Misconceptions Toward a CS1 Concept Inventory
TLDR
This work proposes a methodology to adapt the validated misconceptions in C and Python to Java, and develops a final term exam, composed of 7 open-ended questions, in which each question was designed to address some of the misconceptions covered in the course.
Teachers’ Perceptions of Student Misconceptions in Introductory Programming
A quality computer science (CS) teacher needs to understand students’ common misconceptions in learning CS. This study explored one aspect of CS teachers’ understanding of student misconceptions:
An investigation of misunderstanding code patterns in C open-source software projects
TLDR
The study shows that according to developers only some patterns considered previously by researchers may cause misunderstandings, and this results complement previous studies by taking the perception of developers into account.
Impacts of coding practices on readability
TLDR
A survey that assessed the impact of a set of Java coding practices on the readability perceived by software developers found that while some practices promoted an enhancement of readability, others did not show statistically significant effects.
Descriptive Compound Identifier Names Improve Source Code Comprehension
TLDR
This paper empirically investigated whether longer but more descriptive identifier names improve code comprehension compared to short names, as they represent useful information in more detail.
Prevalence of Confusing Code in Software Projects: Atoms of Confusion in the Wild
TLDR
This work uses a corpus of 14 of the most popular and influential open source C and C++ projects to measure the prevalence and significance of small confusing patterns, demonstrating that beyond simple misunderstanding in the lab setting, atoms of confusion are both prevalent - occurring often in real projects, and meaningful - being removed by bug-fix commits at an elevated rate.
Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers
TLDR
A process model to explain bugs produced by novices early in a programming course is presented and a representation both for novice natural language preprogramming knowledge and novice fragmentary programming knowledge is described.
...
...