1,388 research outputs found

    How to Ask for Technical Help? Evidence-based Guidelines for Writing Questions on Stack Overflow

    Full text link
    Context: The success of Stack Overflow and other community-based question-and-answer (Q&A) sites depends mainly on the will of their members to answer others' questions. In fact, when formulating requests on Q&A sites, we are not simply seeking for information. Instead, we are also asking for other people's help and feedback. Understanding the dynamics of the participation in Q&A communities is essential to improve the value of crowdsourced knowledge. Objective: In this paper, we investigate how information seekers can increase the chance of eliciting a successful answer to their questions on Stack Overflow by focusing on the following actionable factors: affect, presentation quality, and time. Method: We develop a conceptual framework of factors potentially influencing the success of questions in Stack Overflow. We quantitatively analyze a set of over 87K questions from the official Stack Overflow dump to assess the impact of actionable factors on the success of technical requests. The information seeker reputation is included as a control factor. Furthermore, to understand the role played by affective states in the success of questions, we qualitatively analyze questions containing positive and negative emotions. Finally, a survey is conducted to understand how Stack Overflow users perceive the guideline suggestions for writing questions. Results: We found that regardless of user reputation, successful questions are short, contain code snippets, and do not abuse with uppercase characters. As regards affect, successful questions adopt a neutral emotional style. Conclusion: We provide evidence-based guidelines for writing effective questions on Stack Overflow that software engineers can follow to increase the chance of getting technical help. As for the role of affect, we empirically confirmed community guidelines that suggest avoiding rudeness in question writing.Comment: Preprint, to appear in Information and Software Technolog

    Examining the Relationship Between Confusion and Learning: A Descriptive Meta-Analysis

    Get PDF
    Previous research into confusion and learning neglects to investigate how this relationship varies when faced with impact factors such as multiple types of affect and learning measurements, learning environment, or grade level. Moreover, past research also reports di-verse effect size values for this relationship, making the correlation ambiguous. As such, the current research seeks to reconcile these nuances between confusion and learning through a meta-analytic approach. In this analysis, it was found that there was no relationship between confusion and learning gains, or in the subgroup analysis of grade level. Since only one impact factor, grade level, was analyzed, it is considered that the analysis of other or multiple impact factors could help to further understand the association between confusion and learning. It is also reasoned that variability in the definitions of confusion and learning in the papers included in the meta-analysis as well as publication bias contribute to this result. As such, future research may choose to investigate these avenues and continued research generally into the association between confusion and learning would also be helpful to better understand this relationship

    Expertise and intuition: A tale of three theories

    Get PDF
    Several authors have hailed intuition as one of the defining features of expertise. In particular, while disagreeing on almost anything that touches on human cognition and artificial intelligence, Hubert Dreyfus and Herbert Simon agreed on this point. However, the highly influential theories of intuition they proposed differed in major ways, especially with respect to the role given to search and as to whether intuition is holistic or analytic. Both theories suffer from empirical weaknesses. In this paper, we show how, with some additions, a recent theory of expert memory (the template theory) offers a coherent and wide-ranging explanation of intuition in expert behaviour. It is shown that the theory accounts for the key features of intuition: it explains the rapid onset of intuition and its perceptual nature, provides mechanisms for learning, incorporates processes showing how perception is linked to action and emotion, and how experts capture the entirety of a situation. In doing so, the new theory addresses the issues problematic for Dreyfus’s and Simon’s theories. Implications for research and practice are discussed

    The Design and Evaluation of an Educational Software Development Process for First Year Computing Undergraduates

    Get PDF
    First year, undergraduate computing students experience a series of well-known challenges when learning how to design and develop software solutions. These challenges, which include a failure to engage effectively with planning solutions prior to implementation ultimately impact upon the students’ competency and their retention beyond the first year of their studies. In the software industry, software development processes systematically guide the development of software solutions through iterations of analysis, design, implementation and testing. Industry-standard processes are, however, unsuitable for novice programmers as they require prior programming knowledge. This study investigates how a researcher-designed educational software development process could be created for novice undergraduate learners, and the impact of this process on their competence in learning how to develop software solutions. Based on an Action Research methodology that ran over three cycles, this research demonstrates how an educational software development methodology (termed FRESH) and its operationalised process (termed CADET which is a concrete implementation of the FRESH methodology), was designed and implemented as an educational tool for enhancing student engagement and competency in software development. Through CADET, students were reframed as software developers who understand the value in planning and developing software solutions, and not as programmers who prematurely try to implement solutions. While there remain opportunities to further enhance the technical sophistication of the process as it is implemented in practice, CADET enabled the software development steps of analysis and design to be explicit elements of developing software solutions, rather than their more typically implicit inclusion in introductory CS courses. The research contributes to the field of computing education by exploring the possibilities of – and by concretely generating – an appropriate scaffolded methodology and process; by illustrating the use of computational thinking and threshold concepts in software development; and by providing a novel evaluation framework (termed AKM-SOLO) to aid in the continuous improvement of educational processes and courses by measuring student learning experiences and competencies

    Exploring student perceptions about the use of visual programming environments, their relation to student learning styles and their impact on student motivation in undergraduate introductory programming modules

    Get PDF
    My research aims to explore how students perceive the usability and enjoyment of visual/block-based programming environments (VPEs), to what extent their learning styles relate to these perceptions and finally to what extent these tools facilitate student understanding of basic programming constructs and impact their motivation to learn programming

    An Exploration of Traditional and Data Driven Predictors of Programming Performance

    Get PDF
    This thesis investigates factors that can be used to predict the success or failure of students taking an introductory programming course. Four studies were performed to explore how aspects of the teaching context, static factors based upon traditional learning theories, and data-driven metrics derived from aspects of programming behaviour were related to programming performance. In the first study, a systematic review into the worldwide outcomes of programming courses revealed an average pass rate of 67.7\%. This was found to have not significantly changed over time, or to have differed based upon aspects of the teaching context, such as the programming language taught to students. The second study showed that many of the factors based upon traditional learning theories, such as learning styles, are context dependent, and fail to consistently predict programming performance when they are applied across different teaching contexts. The third study explored data-driven metrics derived from the programming behaviour of students. Analysing data logged from students using the BlueJ IDE, 10 new data-driven metrics were identified and validated on three independently gathered datasets. Weaker students were found to make a greater percentage of successive errors, and spend a greater percentage of their lab time resolving errors than stronger students. The Robust Relative algorithm was developed to hybridize four of the strongest data-driven metrics into a performance predictor. The novel relative scoring of students based upon how their resolve times for different types of errors compared to the resolve times of their peers, resulted in a predictor which could explain a large proportion of the variance in the performance of three independent cohorts, R2R^2 = 42.19\%, 43.65\% and 44.17\% - almost double the variance which could be explained by Jadud's Error Quotient metric. The fourth study situated the findings of this thesis within the wider literature, by applying meta-analysis techniques to statistically synthesise fifty years of conflicting research, such that the most important factors for learning programming could be identified. 482 results describing the effects of 116 factors on programming performance were synthesised and consolidated to form a six class theoretical framework. The results showed that the strongest predictors identified over the past fifty years are data-driven metrics based upon programming behaviour. Several of the traditional predictors were also found to be influential, suggesting that both a certain level of scientific maturity and self-concept are necessary for programming. Two thirds of the weakest predictors were based upon demographic and psychological factors, suggesting that age, gender, self-perceived abilities, learning styles, and personality traits have no relevance for programming performance. This thesis argues that factors based upon traditional learning theories struggle to consistently predict programming performance across different teaching contexts because they were not intended to be applied for this purpose. In contrast, the main advantage of using data-driven approaches to derive metrics based upon students' programming processes, is that these metrics are directly based upon the programming behaviours of students, and therefore can encapsulate such changes in their programming knowledge over time. Researchers should continue to explore data-driven predictors in the future

    A Qualitative Study of Emotions Experienced by First-year Engineering Students during Programming Tasks

    Get PDF
    In introductory computer programming courses, students experience a range of emotions. Students often experience anxiety and frustration when they encounter difficulties in writing programs. Continued frustration can discourage students from pursuing engineering and computing careers. Although prior research has shown how emotions affect students’ motivation and learning, little is known about students’ emotions in programming courses. In this qualitative study of first-year engineering students taking an introductory programming course, we examined the emotions that these students experienced during programming tasks and the reasons for experiencing those emotions. Our study was grounded in the control-value theory of achievement emotions. Each research participant came to two laboratory sessions: a programming session and a retrospective think-aloud interview session. In the programming session, each participant worked individually on programming problems. We collected screen capture, biometrics, and survey responses. In the interview session, each participant watched a video of their actions during the programming session. After every 2 minutes of viewing, the participants reported the emotions that they had experienced during this 2-minute period. We performed a thematic analysis of the interview data. Our results indicate that the participants experienced frustration most frequently. Sometimes they experienced multiple emotions. For example, one participant felt annoyed because she had made a mistake, but she felt joy and pride when she fixed the mistake. To promote student learning, educators should take students’ emotions into account in the design of curriculum and pedagogy for introductory programming courses

    Purpose-first Programming: A Programming Learning Approach for Learners Who Care Most About What Code Achieves

    Full text link
    Introductory programming courses typically focus on building generalizable programming knowledge by focusing on a language’s syntax and semantics. Assignments often involve “code tracing” problems, where students perform close tracking of code’s execution, typically in the context of ‘toy’ problems. “Reading-first” approaches propose that code tracing should be taught early to novice programmers, even before they have the opportunity to write code. However, many learners do not perform code tracing, even in situations when it is helpful for other students. To learn more, I talked to novice programmers about their decisions to trace and not trace code. Through these studies, I identified both cognitive and affective factors related to learners’ motivation to trace. My research found that tracing activities can create a “perfect storm” for discouraging learners from completing them: they require high cognitive load, leading to a low expectation of success, while also being disconnected from meaningful code, resulting in low value for the task. These findings suggest that a new learning approach, where novices quickly and easily create or understand useful code without the need for deep knowledge of semantics, may lead to higher engagement. Many learners may not care about exactly how a programming language works, but they do care about what code can achieve for them. I drew on cognitive science and theories of motivation to describe a “purpose-first” programming pedagogy that supports novices in learning common code patterns in a particular domain. I developed a proof-of-concept ”purpose-first” programming curriculum using this method and evaluated it with non-major novice programmers who had a variety of future goals. Participants were able to complete scaffolded code writing, debugging, and explanation activities in a new domain (web scraping with BeautifulSoup) after a half hour of instruction. An analysis of the participants’ thinkalouds provided evidence the learners were thinking in terms of the patterns and goals that they learned with in the purpose-first curriculum. Overall, I found that these novices were motivated to continue learning with purpose-first programming. I found that these novices felt successful during purpose-first programming because they could understand and complete tasks. Novices perceived a lower cognitive load on purpose-first programming activities than many other typical learning activities, because, in their view, plans helped them apply knowledge and focus only on the most relevant information. Participants felt that what they were learning was applicable, and that the curriculum provided conceptual, high-level knowledge. For some participants, particularly conversational programmers who didn’t plan to program in their careers, this information was sufficient for their needs. Other participants felt that purpose-first programming was a starting point, from which they could move forward to gain a deeper understanding of how code works.PHDInformationUniversity of Michigan, Horace H. Rackham School of Graduate Studieshttp://deepblue.lib.umich.edu/bitstream/2027.42/167912/1/kicunn_1.pd
    • 

    corecore