12699179
Developing the Software Engineering Team
Teamwork is often considered one of the most important "generic skills" that we can provide to graduates entering the information technology profession. Often though, through the rush of covering important content, we short change our students by giving them limited opportunities to learn how to work effectively in teams. Students also often complain that although they are expected to work in teams on projects, they are never given any advice or guidance on how to work in a team (Hart and Stone, 2002). Or, if they are given guidance, it is often from a business perspective that students find difficult to integrate into their software development practice.In this paper we discuss a course-spanning initiative to help students learn teamwork skills. This initiative starts in first year by emphasising a core set of skills directly related to working in teams. These skills are applied in small software development teams, with close tutor supervision focusing students on teamwork rather than upon individual software development. The theme then continues into second and third year where the growing sophistication of the students' teamwork skills is complemented by increasing their independence and requiring students to apply a professional software engineering process as a development team. By the end of their course students are then in a position to work together effectively solving complex problems for a real industry client.
6336074
Developing Case Studies to Enhance Student Learning
In this paper we describe the cases developed in response to the multifaceted challenges we faced in educating IT professionals in intermediate-level programming. The challenges included: the practical nature of the subject, the level of skill attained, preparing students for the workplace and class size. We implemented Problem-Based Learning (PBL) as the teaching and learning method to meet these challenges by helping first-year university students learn programming while simultaneously developing graduate capabilities. This necessitated redevelopment of the curriculum and the way it was taught. We combined software engineering and information systems approaches in real-world scenarios. The cases were designed to help students come to terms with the human side of information technology through the context and method of teaching and learning as they worked through the cases.
3050709
Quality assurance in a student-based agile software engineering process
Agile methodologies have proven to be a popular addition to the software engineering toolbox, promising significant advances in quality for small teams, with developers no longer weighed under by the documentation said to characterise traditional approaches. Yet, in spite of these claims, quality assurance remains a question to which agile methodologies have given only a partially satisfactory answer. This work examines quality assurance practices among student developers working within a lightweight iterative development process. Our focus is upon the linkages between their reported practices and the quality levels observed in the systems delivered. The study has identified a range of approaches to improving quality for small, inexperienced teams, with applications to both the educational and SME environments.
31462634
Kuratowski Chains
12496489
Studying long-term system use
here have been many studies of computer users but few that extend over very long periods. The reasons for this include costs, the quality of the data that can be obtained and satisfactorily analyzed , and the requirement to obtain results in the short term. We were interested in building long-term user models for teaching systems and wished to track the total development of a guru as well as other types of users. Such goals require tracking large numbers of people over a very long period, because guru-level experience takes years to acquire, and it cannot be predicted in advance who will turn out to develop this level of skill. Therefore, to find even one guru may require the tracking of around 20 to 100 users for a year or two. Finding 10 gurus might require 1,000 users. It is possible to observe such numbers over years only by using a method that is very careful about costs. The objective of this article is to present a methodology for monitoring many users in their natural settings over the long term and to give an example of its application to the domain of students learning an editor for three years. We show how data obtained from this methodology permits the construction of individual user models. Monitoring Methodology We developed a monitoring system to study the use of the sam text editor [13]. It is essentially a modeless editor, with most basic commands invoked using the mouse. It also has powerful keyboard commands, issued through the command window, including the usual Unix regular expressions and an elegant interface to the Unix shell. We had a number of design goals for our system, which strongly influenced our methods. First, we were restricted to low system-building costs followed by very low operational costs. Second, the system needed to be highly reliable; it would not be possible to make changes once the monitoring was under way, nor could the immediate availability of people to fix problems during operation be guaranteed. Third, the impact on the computing resources had to be negligible-a degradation in performance during the day was not an option. Fourth, we wanted to give the users some control over their own data, they should be able to read it and delete it if they really wanted. Finally, and most demandingly, we wanted to measure the time of first use of each command, but …
9928349
The Four-Colour Theorem
The four-colour theorem, that every loopless planar graph admits a vertex-colouring with at most four different colours, was proved in 1976 by Appel and Haken, using a computer. Here we give another proof, still using a computer, but simpler than Appel and Haken's in several respects.
1883056
An Investigation into Keystroke Latency Metrics as an Indicator of Programming Performance
Typing has long been studied in psychology and HCI, and strong cognitive models for transcription typing exist. The goal of the present research was to test if there is any correlation between students' keystroking speed and performance while they are programming. We present the results from two studies with computer science students conducted in different contexts. Keystroke timings were recorded while they worked on Java and Ada source code. Quality of their programming work was measured mainly in terms of completeness. In the controlled experiment that lasted six hours, 39 students undertook three change tasks on a 6000 LOC Java application. In the field study, data was collected over 6 weeks from 141 students while they worked unsupervised on Ada programming in first year laboratories. In both cases there were highly significant (P=0.001), moderately strong, negative correlations between speed and coding performance. With additional development, these techniques may have promise for user modelling and assessment as well as in educational diagnostics.
14742276
Finger tracking for the Digital Desk
One trend in computing environments today is to move towards more 'natural' interaction. Another is to make hardware invisible to the user. Both these ideas converge into ubiquitous computing-the Digital Desk is an example of this idea. In this paper, we concentrate on an input device for the Digital Desk, namely the user's fingertip, which is made to act like a mouse. Tracking such an input device is common to a number of augmented reality environments and involves vision and motion analysis. However, previous attempts have focused more on the vision aspect of tracking general objects than on using the information already known about the user's hand, which is the approach taken in this paper. We adopted the goal of tracking the user's fingertips as fast as possible in real time, so that the system could be compared with other input devices by using models such as Fitts' law. Our system is shown to comply with the law adequately.