4,258 research outputs found
Beyond Surveys: Analyzing Software Development Artifacts to Assess Teaching Efforts
This Innovative Practice Full Paper presents an approach of using software
development artifacts to gauge student behavior and the effectiveness of
changes to curriculum design. There is an ongoing need to adapt university
courses to changing requirements and shifts in industry. As an educator it is
therefore vital to have access to methods, with which to ascertain the effects
of curriculum design changes. In this paper, we present our approach of
analyzing software repositories in order to gauge student behavior during
project work. We evaluate this approach in a case study of a university
undergraduate software development course teaching agile development
methodologies. Surveys revealed positive attitudes towards the course and the
change of employed development methodology from Scrum to Kanban. However,
surveys were not usable to ascertain the degree to which students had adapted
their workflows and whether they had done so in accordance with course goals.
Therefore, we analyzed students' software repository data, which represents
information that can be collected by educators to reveal insights into learning
successes and detailed student behavior. We analyze the software repositories
created during the last five courses, and evaluate differences in workflows
between Kanban and Scrum usage
Links between the personalities, styles and performance in computer programming
There are repetitive patterns in strategies of manipulating source code. For
example, modifying source code before acquiring knowledge of how a code works
is a depth-first style and reading and understanding before modifying source
code is a breadth-first style. To the extent we know there is no study on the
influence of personality on them. The objective of this study is to understand
the influence of personality on programming styles. We did a correlational
study with 65 programmers at the University of Stuttgart. Academic achievement,
programming experience, attitude towards programming and five personality
factors were measured via self-assessed survey. The programming styles were
asked in the survey or mined from the software repositories. Performance in
programming was composed of bug-proneness of programmers which was mined from
software repositories, the grades they got in a software project course and
their estimate of their own programming ability. We did statistical analysis
and found that Openness to Experience has a positive association with
breadth-first style and Conscientiousness has a positive association with
depth-first style. We also found that in addition to having more programming
experience and better academic achievement, the styles of working depth-first
and saving coarse-grained revisions improve performance in programming.Comment: 27 pages, 6 figure
SubCollaboration: large-scale group management in collaborative learning
Computer-supported collaborative learning is a paradigm that uses technology to support collaborative methods of instruction. When combining collaborative learning with the need to exchange documents between students and the teaching staff in a blended learning scenario, version control systems (VCSs) greatly simplify this collaboration. Furthermore, these tools need to be adopted in regular classes as they are used in industrial environments. But deploying a collaborative environment in which version control is used does not scale for large classes. This paper presents SubCollaboration, a platform that uses the VCS Subversion to manage a large number of work spaces in a collaborative learning environment. The tool maintains a reference workspace where teaching staff introduces new material that is then synchronized with the team repositories. Two case studies are presented showing that students easily learn the use of version control and its deployment in large classes is feasible.This work was partially funded by the Learn3 project, ‘Plan Nacional de I+D+I TIN2008-05163/TSI’, the Best Practice Network ICOPER (Grant No. ECP-2007-EDU-417007), the Flexo Project ‘Plan Nacional de Investigación CientÃfica, Desarrollo e Innovación Tecnológica’ (Ref. TSI-020301-2008-19), and the ‘Emadrid: Investigación y desarrollo de tecnologÃas para el e-learning en la Comunidad de Madrid’ project (S2009/TIC-1650).Publicad
Software Development Analytics in Practice: A Systematic Literature Review
Context:Software Development Analytics is a research area concerned with
providing insights to improve product deliveries and processes. Many types of
studies, data sources and mining methods have been used for that purpose.
Objective:This systematic literature review aims at providing an aggregate view
of the relevant studies on Software Development Analytics in the past decade
(2010-2019), with an emphasis on its application in practical settings.
Method:Definition and execution of a search string upon several digital
libraries, followed by a quality assessment criteria to identify the most
relevant papers. On those, we extracted a set of characteristics (study type,
data source, study perspective, development life-cycle activities covered,
stakeholders, mining methods, and analytics scope) and classified their impact
against a taxonomy. Results:Source code repositories, experimental case
studies, and developers are the most common data sources, study types, and
stakeholders, respectively. Product and project managers are also often
present, but less than expected. Mining methods are evolving rapidly and that
is reflected in the long list identified. Descriptive statistics are the most
usual method followed by correlation analysis. Being software development an
important process in every organization, it was unexpected to find that process
mining was present in only one study. Most contributions to the software
development life cycle were given in the quality dimension. Time management and
costs control were lightly debated. The analysis of security aspects suggests
it is an increasing topic of concern for practitioners. Risk management
contributions are scarce. Conclusions:There is a wide improvement margin for
software development analytics in practice. For instance, mining and analyzing
the activities performed by software developers in their actual workbench, the
IDE
- …