14,429 research outputs found
Report on a User Test and Extension of a Type Debugger for Novice Programmers
A type debugger interactively detects the expressions that cause type errors.
It asks users whether they intend the types of identifiers to be those that the
compiler inferred. However, it seems that novice programmers often get in
trouble when they think about how to fix type errors by reading the messages
given by the type debugger. In this paper, we analyze the user tests of a type
debugger and report problems of the current type debugger. We then extend the
type debugger to address these problems. Specifically, we introduce
expression-specific error messages and language levels. Finally, we show type
errors that we think are difficult to explain to novice programmers. The
subjects of the user tests were 40 novice students belonging to the department
of information science at Ochanomizu University.Comment: In Proceedings TFPIE 2014, arXiv:1412.473
A document-like software visualization method for effective cognition of c-based software systems
It is clear that maintenance is a crucial and very costly process in a software life cycle. Nowadays there are a lot of software systems particularly legacy systems that are always maintained from time to time as new requirements arise. One important source to understand a software system before it is being maintained is through the documentation, particularly system documentation. Unfortunately, not all software systems developed or maintained are accompanied with their reliable and updated documents. In this case, source codes will be the only reliable source for programmers. A number of studies have been carried out in order to assist cognition based on source codes. One way is through tool automation via reverse engineering technique in which source codes will be parsed and the information extracted will be visualized using certain visualization methods. Most software visualization methods use graph as the main element to represent extracted software artifacts. Nevertheless, current methods tend to produce more complicated graphs and do not grant an explicit, document-like re-documentation environment. Hence, this thesis proposes a document-like software visualization method called DocLike Modularized Graph (DMG). The method is realized in a prototype tool named DocLike Viewer that targets on C-based software systems. The main contribution of the DMG method is to provide an explicit structural re-document mechanism in the software visualization tool. Besides, the DMG method provides more level of information abstractions via less complex graph that include inter-module dependencies, inter-program dependencies, procedural abstraction and also parameter passing. The DMG method was empirically evaluated based on the Goal/Question/Metric (GQM) paradigm and the findings depict that the method can improve productivity and quality in the aspect of cognition or program comprehension. A usability study was also conducted and DocLike Viewer had the most positive responses from the software practitioners
Natural Notation for the Domestic Internet of Things
This study explores the use of natural language to give instructions that
might be interpreted by Internet of Things (IoT) devices in a domestic `smart
home' environment. We start from the proposition that reminders can be
considered as a type of end-user programming, in which the executed actions
might be performed either by an automated agent or by the author of the
reminder. We conducted an experiment in which people wrote sticky notes
specifying future actions in their home. In different conditions, these notes
were addressed to themselves, to others, or to a computer agent.We analyse the
linguistic features and strategies that are used to achieve these tasks,
including the use of graphical resources as an informal visual language. The
findings provide a basis for design guidance related to end-user development
for the Internet of Things.Comment: Proceedings of the 5th International symposium on End-User
Development (IS-EUD), Madrid, Spain, May, 201
Instructional strategies and tactics for the design of introductory computer programming courses in high school
This article offers an examination of instructional strategies and tactics for the design of introductory computer programming courses in high school. We distinguish the Expert, Spiral and Reading approach as groups of instructional strategies that mainly differ in their general design plan to control students' processing load. In order, they emphasize topdown program design, incremental learning, and program modification and amplification. In contrast, tactics are specific design plans that prescribe methods to reach desired learning outcomes under given circumstances. Based on ACT* (Anderson, 1983) and relevant research, we distinguish between declarative and procedural instruction and present six tactics which can be used both to design courses and to evaluate strategies. Three tactics for declarative instruction involve concrete computer models, programming plans and design diagrams; three tactics for procedural instruction involve worked-out examples, practice of basic cognitive skills and task variation. In our evaluation of groups of instructional strategies, the Reading approach has been found to be superior to the Expert and Spiral approaches
Scaling the Management of Extreme Programming Projects
XP is a code-oriented, light-weight software engineering methodology, suited
merely for small-sized teams who develop software that relies on vague or
rapidly changing requirements. Being very code-oriented, the discipline of
systems engineering knows it as approach of incremental system change. In this
contribution, we discuss the enhanced version of a concept on how to extend XP
on large scale projects with hundreds of software engineers and programmers,
respectively. Previous versions were already presented in [1] and [12]. The
basic idea is to apply the "hierarchical approach", a management principle of
reorganizing companies, as well as well-known moderation principles to XP
project organization. We show similarities between software engineering methods
and company reorganization processes and discuss how the elements of the
hierarchical approach can improve XP. We provide guidelines on how to scale up
XP to very large projects e.g. those common in telecommunication industry and
IT technology consultancy firms by using moderation techniques.Comment: 7 pages, 4 figure
Recommended from our members
Summer of Code: Assisting Distance-Learning Students with Open-Ended Programming Tasks
A significant difficulty in teaching programming lies in the transition from novice to intermediate programmer, characterised by the assimilation and use of schemas of standard programming approaches. A significant factor assisting this transition is practice with tasks which develop this schema use. We describe the Summer of Code, a two-week activity for part-time, distance-learning students which gave them some additional programming practice. We analysed their submissions, forum postings, and results of a terminal survey. We found learners were keen to share and discuss their solutions and persevered with individual problems and the challenge overall. 93% respondents rated the activity 3 or better on a 5-point Likert scale (n=58). However, a quarter of participants, mainly those who described themselves as average or poor programmers, felt less confident in their abilities after the activity, though half of these students liked the activity overall. 54% of all participants said the greatest challenge was developing a general approach to the problems, such as selecting appropriate data structures. This is corroborated by forum comments, where students greatly appreciated “think aloud” presentations by faculty tackling the problems. These results strongly suggest that students would benefit from more open-ended practice, where they have to select and design their own solutions to a range of problems
- …