Spelling suggestions: "subject:"core example""
1 |
Exploiting Context in Dealing with Programming Errors and Exceptions in the IDE2014 September 1900 (has links)
Studies show that software developers spend about 19% of their development time in web surfing. While collecting necessary information using traditional web search, they face several practical challenges. First, it does not consider context (i.e., surroundings, circumstances) of the programming problems during search unless the developers do so in search query formulation, and forces the developers to frequently switch between their working environment (e.g., IDE) and the web browser. Second, technical details (e.g., stack trace) of an encountered exception often contain a lot of information, and they cannot be directly used as a search query given that the traditional search engines do not support long queries. Third, traditional search generally returns hundreds of search results, and the developers need to manually analyze the result pages one by one in order to extract a working solution. Both manual analysis of a page for content relevant to the encountered exception (and its context) and working an appropriate solution out are non-trivial tasks. Traditional code search engines share the same set of limitations of the web search ones, and they also do not help much in collecting the code examples that can be used for handling the encountered exceptions.
In this thesis, we present a context-aware and IDE-based approach that helps one overcome those four challenges above. In our first study, we propose and evaluate a context-aware meta search engine for programming errors and exceptions. The meta search collects results for any encountered exception in the IDE from three popular search engines- Google, Bing and Yahoo and one programming Q & A site- StackOverflow, refines and ranks the results against the detailed context of the encountered exception, and then recommends them within the IDE. From this study, we not only explore the potential of the context-aware and meta search based approach but also realize the significance of appropriate search queries in searching for programming solutions. In the second study, we propose and evaluate an automated query recommendation approach that exploits the technical details of an encountered exception, and recommends a ranked list of search queries. We found the recommended queries quite promising and comparable to the queries suggested by experts. We also note that the support for the developers can be further complemented by post-search content analysis. In the third study, we propose and evaluate an IDE-based context-aware content recommendation approach that identifies and recommends sections of a web page that are relevant to the encountered exception in the IDE. The idea is to reduce the cognitive effort of the developers in searching for content of interest (i.e., relevance) in the page, and we found the approach quite effective through extensive experiments and a limited user study. In our fourth study, we propose and evaluate a context-aware code search engine that collects code examples from a number of code repositories of GitHub, and the examples contain high quality handlers for the exception of interest. We validate the performance of each of our proposed approaches against existing relevant literature and also through several mini user studies. Finally, in order to further validate the applicability of our approaches, we integrate them into an Eclipse plug in prototype--ExcClipse. We then conduct a task-oriented user study with six participants, and report the findings which are significantly promising.
|
2 |
Insert Title Here : Investigating the communication of placeholders and placeholder-characters in code examples in the programming trade.Parker, Sven January 2017 (has links)
To improve the communication between programming instructors and learners; placeholders, placeholder-characters and placeholder characteristics are investigated via two focus groups. One focus group with instructors, the other with learners. The combined and analyzed results show that placeholder-characters can confuse more than they help, more often for programming beginners. The semantics of a placeholder is the most crucial part of understanding its purpose and strengthens its characteristics. A placeholder using a different letter case from the surrounding code is easier to differentiate and find in a block of code. / Summary The study’s purpose is: To find out if digital characters could improve the communication between programming instructors and learners by standardizing the implication “placeholder” or “replace this”. What characteristics could be used to communicate placeholders? To answer the purpose, it has been broken down into two research questions. What opinions do programming instructors and learners have about using placeholder-characters to improve the communication between them? What characteristics could a placeholder have to better communicate its purpose? To answer the research questions, two focus groups were held. One with instructors and one with learners. They are then asked to discuss placeholders, placeholder- characters and their characteristics. Later transcribed, categorized and analyzed into findings that are discussed and concluded upon. The participants mostly believed that placeholder-characters can confuse more than they are able to help, more often the case for beginners. That the placeholder’s semantics of the label is crucial for understanding the purpose of it. Using a different letter-casing for placeholders could make it easier to find and understand that it deviates from the rest of the code in the concerned code example, preferably “SCREAMING_SNAKE_CASE”. A placeholder-character is considered viable to use as a global standard if it complies with the following five requirements: It is universally used (A standard). Available easily (found on any keyboard). Shows what and what not to replace (keep quotation marks). Is understood by programming-software (displayed and compiled correctly). Not used for other purposes in coding already (has another implication). Otherwise it is not considered supposable for implementation.
|
Page generated in 0.0351 seconds