SlideShare a Scribd company logo
Finding Help with Programming Errors: An Exploratory Study
of Novice Software Engineers’ Focus in Stack Overflow Posts
Preetha Chatterjee Minji Kong Lori Pollock
Journal of Systems and Software (JSS), Volume 159, Jan 2020
Asst. Prof.
[Fall ’21]
Ph.D.
Stack Overflow Usage: Statistics and Challenges
40% participants are novice programmers (< 5 yrs experience)
who struggle to find relevant information from a Stack Overflow post!!
Information Overload:
The top 5 Stack Overflow
questions for a sample
query “Differences
Hashmap Hashtable Java”,
consist of 51 answers
which have 6,771 words in
total [Xu et. al. 2017]
https://insights.stackoverflow.com/survey/2020
We aim to understand:
How novice software engineers direct their efforts and what kinds of
information they focus on within a Stack Overflow post
Study Design
RQ1. Challenges - What slows a
novice software engineer down in
identifying the solution most
appropriate for their problem?
RQ2. Focus - Which parts of a post
novice software engineers focus on to
reduce their time in locating
information?
RQ1 Findings: Developer Challenges
Survey
Question
69% participants indicated “Too much text containing unnecessary details”
51% participants indicated “Determining embedded code segment relevance”
39% indicated “Too much code containing unnecessary details”
Question Title: Polymorphism in Java error: cannot find Symbol
I've just started learning object oriented programming from the book head first java.
It said that polymorphism enables me to create an array of the superclass type and
then have all the subclasses as the array elements.
But when I tried writing code using the same principles it ran into error saying error:
cannot find symbol I made the classes the superclass was animal and the dog class
extended the animal class having a fetch method of its own, but when I referenced
the dog variable as animal it did not work here is the code
…
The error
tester.java:4: error: cannot find symbol doggie.fetch();
symbol: method fetch()
location: variable doggie of type animal
When using polymorphism, if you create an instance of the subclass and store its
reference in a variable of superclass type, you can only call those methods on the
newly created instance which are present in the super class.
In your code, you created an instance of dog class and stored its reference
in doggie which is of type animal (super class of dog), In such case, you can't call any
method on dog class instance that isn't available in animal class. fetch method is not
defined in the animal class hence you get the error.
Either define the fetch method in the animal class
OR Change animal doggie = new dog(); to dog doggie = new dog();
Developer’s Goal
Developer’s Pertinent
Action
System Symptom
Accepted Answer
Symptom Cause
Posted Solution
Solution Justification
RQ2 Findings: Developer Focus
• Too much text including unnecessary
details (69%)
• Determining embedded code segment
relevance (51%)
• Too much code including unnecessary
details (39%)
Developer’s Goal
Developer’s Pertinent Action
System Symptom
Symptom Cause
Posted Solution
Solution Justification
Novice software engineers pay attention to only 27% code and 15-21% of text in a SO post!
@PreethaChatterj
preethac@udel.edu sites.udel.edu/preethac/
Significance:
 improve the Q&A forum interface
 guide tools for mining forums
 improve granularity of traceability mappings involving forum posts
Paper link: https://doi.org/10.1016/j.jss.2019.110454
Summary and Overview
RQ1. Challenges - What slows a
novice software engineer down in
identifying the solution most
appropriate for their problem?
RQ2. Focus - Which parts of a post
novice software engineers focus on to
reduce their time in locating
information?

More Related Content

What's hot (20)

PDF
A Hierarchical Model of Reviews for Aspect-based Sentiment Analysis
Sebastian Ruder
 
PDF
Building a Dynamic Bidding system for a location based Display advertising Pl...
Ekta Grover
 
PDF
Summarization Techniques for Code, Changes, and Testing
Sebastiano Panichella
 
PDF
Extracting keywords from texts - Sanda Martincic Ipsic
Institute of Contemporary Sciences
 
PPT
Supporting program comprehension with source code summarization
Masud Rahman
 
PDF
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
PPTX
Intro to programing with java-lecture 1
Mohamed Essam
 
PPT
Improving VIVO search through semantic ranking.
Deepak K
 
PDF
Illustrated Code (ASE 2021)
CISPA Helmholtz Center for Information Security
 
PPTX
Understanding Log Lines using Development Knowledge
SAIL_QU
 
PDF
Mining Stack Overflow to Tun the IDE into a Self-confident Programming Prompter
Luca Ponzanelli
 
PPTX
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
Tao Xie
 
PDF
Can Deep Learning solve the Sentiment Analysis Problem
Mark Cieliebak
 
PPTX
Sentiment analyzer and opinion mining
Ankush Mehta
 
PPTX
2. introduction to compiler
Saeed Parsa
 
PDF
DRONE: A Tool to Detect and Repair Directive Defects in Java APIs Documentation
Sebastiano Panichella
 
PPT
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Debdoot Mukherjee
 
PDF
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
University of Hawai‘i at Mānoa
 
PDF
Semantic & Multilingual Strategies in Lucene/Solr
Trey Grainger
 
PPT
Vivo Search
Anup Sawant
 
A Hierarchical Model of Reviews for Aspect-based Sentiment Analysis
Sebastian Ruder
 
Building a Dynamic Bidding system for a location based Display advertising Pl...
Ekta Grover
 
Summarization Techniques for Code, Changes, and Testing
Sebastiano Panichella
 
Extracting keywords from texts - Sanda Martincic Ipsic
Institute of Contemporary Sciences
 
Supporting program comprehension with source code summarization
Masud Rahman
 
International Journal of Engineering Research and Development (IJERD)
IJERD Editor
 
Intro to programing with java-lecture 1
Mohamed Essam
 
Improving VIVO search through semantic ranking.
Deepak K
 
Understanding Log Lines using Development Knowledge
SAIL_QU
 
Mining Stack Overflow to Tun the IDE into a Self-confident Programming Prompter
Luca Ponzanelli
 
HotSoS16 Tutorial "Text Analytics for Security" by Tao Xie and William Enck
Tao Xie
 
Can Deep Learning solve the Sentiment Analysis Problem
Mark Cieliebak
 
Sentiment analyzer and opinion mining
Ankush Mehta
 
2. introduction to compiler
Saeed Parsa
 
DRONE: A Tool to Detect and Repair Directive Defects in Java APIs Documentation
Sebastiano Panichella
 
Is Text Search an Effective Approach for Fault Localization: A Practitioners ...
Debdoot Mukherjee
 
On the Distribution of Test Smells in Open Source Android Applications: An Ex...
University of Hawai‘i at Mānoa
 
Semantic & Multilingual Strategies in Lucene/Solr
Trey Grainger
 
Vivo Search
Anup Sawant
 

Similar to Finding Help with Programming Errors: An Exploratory Study of Novice Software Engineers’ Focus in Stack Overflow Posts (20)

PDF
Java Puzzle
SFilipp
 
PDF
Java puzzle-1195101951317606-3
rsmuralirs
 
PDF
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...
Alan Richardson
 
PPT
Polymorphism.ppt
EmanAsem4
 
PDF
Core Java Programming Language (JSE) : Chapter VI - Class Design
WebStackAcademy
 
PPTX
Java interfaces
Stavros Antifakos
 
PDF
Big Java Early Objects 5th Edition Horstmann Solutions Manual
budmarumbet
 
PPT
InheritanceAndPolymorphismprein Java.ppt
gayatridwahane
 
PPT
06 InheritanceAndPolymorphism.ppt
ParikhitGhosh1
 
PPT
Core java by a introduction sandesh sharma
Sandesh Sharma
 
PDF
Core Java Interview Questions PDF By ScholarHat
Scholarhat
 
PPTX
Java Polymorphism Part 2
AathikaJava
 
PDF
Java object oriented programming - OOPS
rithustutorials
 
PDF
Week 8,9,10 of lab of data communication .pdf
nimrastorage123
 
PDF
On Reflection in OO Programming Languages (v1.5.2, 14/04/14)
Yann-Gaël Guéhéneuc
 
PPT
Inheritance & Polymorphism - 2
PRN USM
 
PDF
findbugs Bernhard Merkle
bmerkle
 
PPT
Java Programming - Polymorphism
Oum Saokosal
 
PDF
Yashika Soni, BCA 2nd Year
dezyneecole
 
Java Puzzle
SFilipp
 
Java puzzle-1195101951317606-3
rsmuralirs
 
FAQ - why does my code throw a null pointer exception - common reason #1 Rede...
Alan Richardson
 
Polymorphism.ppt
EmanAsem4
 
Core Java Programming Language (JSE) : Chapter VI - Class Design
WebStackAcademy
 
Java interfaces
Stavros Antifakos
 
Big Java Early Objects 5th Edition Horstmann Solutions Manual
budmarumbet
 
InheritanceAndPolymorphismprein Java.ppt
gayatridwahane
 
06 InheritanceAndPolymorphism.ppt
ParikhitGhosh1
 
Core java by a introduction sandesh sharma
Sandesh Sharma
 
Core Java Interview Questions PDF By ScholarHat
Scholarhat
 
Java Polymorphism Part 2
AathikaJava
 
Java object oriented programming - OOPS
rithustutorials
 
Week 8,9,10 of lab of data communication .pdf
nimrastorage123
 
On Reflection in OO Programming Languages (v1.5.2, 14/04/14)
Yann-Gaël Guéhéneuc
 
Inheritance & Polymorphism - 2
PRN USM
 
findbugs Bernhard Merkle
bmerkle
 
Java Programming - Polymorphism
Oum Saokosal
 
Yashika Soni, BCA 2nd Year
dezyneecole
 
Ad

More from Preetha Chatterjee (7)

PDF
Incivility in Open Source Projects: A Comprehensive Annotated Dataset of Lock...
Preetha Chatterjee
 
PDF
Exploring ChatGPT for Toxicity Detection in GitHub
Preetha Chatterjee
 
PDF
Interpersonal Trust in OSS: Exploring Dimensions of Trust in GitHub Pull Requ...
Preetha Chatterjee
 
PDF
Data Augmentation for Improving Emotion Recognition in Software Engineering C...
Preetha Chatterjee
 
PPTX
Automatic Identification of Informative Code in Stack Overflow Posts
Preetha Chatterjee
 
PPTX
Automatically Identifying the Quality of Developer Chats for Post Hoc Use
Preetha Chatterjee
 
PDF
Extracting Code Segments and Their Descriptions from Research Articles
Preetha Chatterjee
 
Incivility in Open Source Projects: A Comprehensive Annotated Dataset of Lock...
Preetha Chatterjee
 
Exploring ChatGPT for Toxicity Detection in GitHub
Preetha Chatterjee
 
Interpersonal Trust in OSS: Exploring Dimensions of Trust in GitHub Pull Requ...
Preetha Chatterjee
 
Data Augmentation for Improving Emotion Recognition in Software Engineering C...
Preetha Chatterjee
 
Automatic Identification of Informative Code in Stack Overflow Posts
Preetha Chatterjee
 
Automatically Identifying the Quality of Developer Chats for Post Hoc Use
Preetha Chatterjee
 
Extracting Code Segments and Their Descriptions from Research Articles
Preetha Chatterjee
 
Ad

Recently uploaded (20)

PPTX
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
PPTX
SD_GMRC5_Session 6AB_Dulog Pedagohikal at Pagtataya (1).pptx
NickeyArguelles
 
PDF
Is Assignment Help Legal in Australia_.pdf
thomas19williams83
 
PPTX
Difference between write and update in odoo 18
Celine George
 
PDF
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
PPTX
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
PDF
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
PDF
Council of Chalcedon Re-Examined
Smiling Lungs
 
PPTX
Nitrogen rule, ring rule, mc lafferty.pptx
nbisen2001
 
PDF
epi editorial commitee meeting presentation
MIPLM
 
PDF
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
PDF
WATERSHED MANAGEMENT CASE STUDIES - ULUGURU MOUNTAINS AND ARVARI RIVERpdf
Ar.Asna
 
PDF
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
PPTX
How to Create a Customer From Website in Odoo 18.pptx
Celine George
 
PDF
AI-Powered-Visual-Storytelling-for-Nonprofits.pdf
TechSoup
 
PPTX
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
PDF
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
PDF
Week 2 - Irish Natural Heritage Powerpoint.pdf
swainealan
 
PDF
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
SD_GMRC5_Session 6AB_Dulog Pedagohikal at Pagtataya (1).pptx
NickeyArguelles
 
Is Assignment Help Legal in Australia_.pdf
thomas19williams83
 
Difference between write and update in odoo 18
Celine George
 
Reconstruct, Restore, Reimagine: New Perspectives on Stoke Newington’s Histor...
History of Stoke Newington
 
Universal immunization Programme (UIP).pptx
Vishal Chanalia
 
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
Council of Chalcedon Re-Examined
Smiling Lungs
 
Nitrogen rule, ring rule, mc lafferty.pptx
nbisen2001
 
epi editorial commitee meeting presentation
MIPLM
 
Chapter-V-DED-Entrepreneurship: Institutions Facilitating Entrepreneurship
Dayanand Huded
 
WATERSHED MANAGEMENT CASE STUDIES - ULUGURU MOUNTAINS AND ARVARI RIVERpdf
Ar.Asna
 
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
How to Create a Customer From Website in Odoo 18.pptx
Celine George
 
AI-Powered-Visual-Storytelling-for-Nonprofits.pdf
TechSoup
 
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
Week 2 - Irish Natural Heritage Powerpoint.pdf
swainealan
 
Vani - The Voice of Excellence - Jul 2025 issue
Savipriya Raghavendra
 

Finding Help with Programming Errors: An Exploratory Study of Novice Software Engineers’ Focus in Stack Overflow Posts

  • 1. Finding Help with Programming Errors: An Exploratory Study of Novice Software Engineers’ Focus in Stack Overflow Posts Preetha Chatterjee Minji Kong Lori Pollock Journal of Systems and Software (JSS), Volume 159, Jan 2020 Asst. Prof. [Fall ’21] Ph.D.
  • 2. Stack Overflow Usage: Statistics and Challenges 40% participants are novice programmers (< 5 yrs experience) who struggle to find relevant information from a Stack Overflow post!! Information Overload: The top 5 Stack Overflow questions for a sample query “Differences Hashmap Hashtable Java”, consist of 51 answers which have 6,771 words in total [Xu et. al. 2017] https://insights.stackoverflow.com/survey/2020 We aim to understand: How novice software engineers direct their efforts and what kinds of information they focus on within a Stack Overflow post
  • 3. Study Design RQ1. Challenges - What slows a novice software engineer down in identifying the solution most appropriate for their problem? RQ2. Focus - Which parts of a post novice software engineers focus on to reduce their time in locating information?
  • 4. RQ1 Findings: Developer Challenges Survey Question 69% participants indicated “Too much text containing unnecessary details” 51% participants indicated “Determining embedded code segment relevance” 39% indicated “Too much code containing unnecessary details”
  • 5. Question Title: Polymorphism in Java error: cannot find Symbol I've just started learning object oriented programming from the book head first java. It said that polymorphism enables me to create an array of the superclass type and then have all the subclasses as the array elements. But when I tried writing code using the same principles it ran into error saying error: cannot find symbol I made the classes the superclass was animal and the dog class extended the animal class having a fetch method of its own, but when I referenced the dog variable as animal it did not work here is the code … The error tester.java:4: error: cannot find symbol doggie.fetch(); symbol: method fetch() location: variable doggie of type animal When using polymorphism, if you create an instance of the subclass and store its reference in a variable of superclass type, you can only call those methods on the newly created instance which are present in the super class. In your code, you created an instance of dog class and stored its reference in doggie which is of type animal (super class of dog), In such case, you can't call any method on dog class instance that isn't available in animal class. fetch method is not defined in the animal class hence you get the error. Either define the fetch method in the animal class OR Change animal doggie = new dog(); to dog doggie = new dog(); Developer’s Goal Developer’s Pertinent Action System Symptom Accepted Answer Symptom Cause Posted Solution Solution Justification RQ2 Findings: Developer Focus
  • 6. • Too much text including unnecessary details (69%) • Determining embedded code segment relevance (51%) • Too much code including unnecessary details (39%) Developer’s Goal Developer’s Pertinent Action System Symptom Symptom Cause Posted Solution Solution Justification Novice software engineers pay attention to only 27% code and 15-21% of text in a SO post! @PreethaChatterj [email protected] sites.udel.edu/preethac/ Significance:  improve the Q&A forum interface  guide tools for mining forums  improve granularity of traceability mappings involving forum posts Paper link: https://doi.org/10.1016/j.jss.2019.110454 Summary and Overview RQ1. Challenges - What slows a novice software engineer down in identifying the solution most appropriate for their problem? RQ2. Focus - Which parts of a post novice software engineers focus on to reduce their time in locating information?

Editor's Notes

  • #3: The recent Stack Overflow survey shows that 40% participants are novice programmers i.e. people with less than 5 years of coding experience. SO often contain long threads of discussions. A previous study suggests that reading answers of a popular SO post could take about 30 minutes!! Because of this information overload, Finding help from SO is especially difficult for novice software engineers. We conducted an exploratory study to understand how novice software engineers direct their efforts and what kinds of information they focus on within a post.
  • #4: Specifically, our exploratory case study answers 2 research questions: To answer RQ1, we conducted a survey to gather novice software engineers’ perceptions of what slows them down in their Stack Overflow usage. For (RQ2) the software engineers first annotated 400 Stack Overflow posts to indicate what they would recommend to highlight to focus attention. Then, we analyzed their annotations, to gain more insight into their recommendations.
  • #5: Findings from RQ1 suggest that, majority of participants indicated the obstacles of “Too much text containing unnecessary details”, followed by “Determining embedded code segment relevance”, and “Too much code containing unnecessary details”.
  • #6: The results from RQ2 discern the kinds of information prominent in the developers’ focus. In the question we find the: Developers’ Goal: or their intended outcome. Developer’s Pertinent Action: that led to the error. Observed system response to the developer’s action. In the answer we find the: cause of the error. Suggested approach to fix the error. Reason why the suggested Solution works.
  • #7: The results from this study can be leveraged to guide tools for mining forums, and improve granularity of traceability mappings involving forum posts.