Results 1 - 10
of
49
Learning and teaching programming: A review and discussion
- Computer Science Education
, 2003
"... In this paper we review the literature relating to the psychological/educational study of programming. We identify general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and objectoriented versus procedural programming. (We ..."
Abstract
-
Cited by 54 (2 self)
- Add to MetaCart
In this paper we review the literature relating to the psychological/educational study of programming. We identify general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and objectoriented versus procedural programming. (We do not cover research relating specifically to other programming styles.) The main focus of the review is on novice programming and topics relating to novice teaching and learning. Various problems experienced by novices are identified, including issues relating to basic program design, to algorithmic complexity in certain language features, to the ‘‘fragility’ ’ of novice knowledge, and so on. We summarise this material and suggest some practical implications for teachers. We suggest that a key issue that emerges is the distinction between effective and ineffective novices. What characterises effective novices? Is it possible to identify the specific deficits of ineffective novices and help them to become effective learners of programming? 1.
Practical automated process and product metric collection and analysis in a classroom setting: Lessons learned from Hackystat-UH
- In Proceedings of the 2004 International Symposium on Empirical Software Engineering
, 2004
"... Measurement definition, collection, and analysis is an essential component of high quality software engineering practice, and is thus an essential component of the software engineering curriculum. However, providing students with practical experience with measurement in a classroom setting can be so ..."
Abstract
-
Cited by 15 (4 self)
- Add to MetaCart
Measurement definition, collection, and analysis is an essential component of high quality software engineering practice, and is thus an essential component of the software engineering curriculum. However, providing students with practical experience with measurement in a classroom setting can be so time-consuming and intrusive that it’s counter-productive—teaching students that software measurement is “impractical ” for many software development contexts. In this research, we designed and evaluated a very low-overhead approach to measurement collection and analysis using the Hackystat system with special features for classroom use. We deployed this system in two software engineering classes at the University of Hawaii during Fall, 2003, and collected quantitative and qualitative data to evaluate the effectiveness of the approach. Results indicate that the approach represents substantial progress toward practical, automated metrics collection and analysis, though issues relating to the complexity of installation and privacy of user data remain. 1.
Self-organization of teams for free/libre open source software development,” Inf
- in WWW ’10: Proceedings of the 19th international conference on World wide web
"... 1 Self-organization of teams for free/libre open source software development This paper provides empirical evidence about how free/libre open source software development teams self-organize their work, specifically, how tasks are assigned to project team members. Following a case study methodology, ..."
Abstract
-
Cited by 12 (5 self)
- Add to MetaCart
1 Self-organization of teams for free/libre open source software development This paper provides empirical evidence about how free/libre open source software development teams self-organize their work, specifically, how tasks are assigned to project team members. Following a case study methodology, we examined developer interaction data from three active and successful FLOSS projects using qualitative research methods, specifically inductive content analysis, to identify the task-assignment mechanisms used by the participants. We found that „self-assignment ‟ was the most common mechanism across three FLOSS projects. This mechanism is consistent with expectations for distributed and largely volunteer teams. We conclude by discussing whether these emergent practices can be usefully transferred to mainstream practice and indicating directions for future research. (105 words) Keywords: Free/libre open source software development, task assignment, self-organizing teams, distributed teams, qualitative research methods Running head: Self-organization of teams in FLOSS development 2 Self-organization of teams for free/libre open source software development 1.
Extreme Programming for Software Engineering Education?
, 2001
"... The eXtreme Programming (XP) software development methodology has received considerable attention in recent years. The adherents of XP anecdotally extol its benefits, particularly as a method that is highly responsive to changing customer's desires. While XP has acquired numerous vocal advocates, th ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
The eXtreme Programming (XP) software development methodology has received considerable attention in recent years. The adherents of XP anecdotally extol its benefits, particularly as a method that is highly responsive to changing customer's desires. While XP has acquired numerous vocal advocates, the interactions and dependencies between XP practices have not been adequately studied. Good software engineering practice requires expertise in a complex set of activities that involve the intellectual skills of planning, designing, evaluating, and revising. We explore the practices of XP in the context of software engineering education. To do so, we must examine the practices of XP as they influence the acquisition of software engineering skills. The practices of XP, in combination or isolation, may provide critical features to aid or hinder the development of increasingly capable practitioners. This paper evaluates the practices of XP in the context of acquiring these necessary Software Engineering skills.
Process construction and customization
- Journal of Universal Computer Science
, 2004
"... Abstract: Adopting the most appropriate methodology for particular software developments remains a challenge for all industrial IT organizations. Previous attempts to promote a single approach as useful for all occasions has proven untenable. Rather, a combination of a metamodel and a repository of ..."
Abstract
-
Cited by 7 (6 self)
- Add to MetaCart
Abstract: Adopting the most appropriate methodology for particular software developments remains a challenge for all industrial IT organizations. Previous attempts to promote a single approach as useful for all occasions has proven untenable. Rather, a combination of a metamodel and a repository of process/method components (“method engineering”) provides a more efficacious approach, particularly as elements of the method engineering approach are able to be automated. In this paper, we advocate the use of method engineering, illustrating its utility by the construction of methodologies at various levels of process capability.
Software Quality Across The Curriculum
, 2002
"... One of the major areas of software engineering, as specified in the SoftWare Engineering Body Of Knowledge, is software quality. This paper argues that software quality should be a central focus in an undergraduate computer science or software engineering curriculum, and that quality should not b ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
One of the major areas of software engineering, as specified in the SoftWare Engineering Body Of Knowledge, is software quality. This paper argues that software quality should be a central focus in an undergraduate computer science or software engineering curriculum, and that quality should not be viewed only as an exercise in software testing. First, we discuss the concepts and techniques that are needed to develop a high-quality software product. Then, we propose a model for viewing software quality and use the model to advocate quality activities that should be incorporated in a curriculum, addressing both product quality and process quality. We also share some of our ideas and experiences about integrating quality activities into the curriculum. Finally, we describe why an undergraduate software engineering curriculum should include at least one dedicated course in software quality. We present a detailed outline of such a course.
Dynamic CMM for Small Organizations
- Umeå University
, 2000
"... Software CMM has gained wide acceptance in software process improvement, especially in USA, but recently also at the European market. When the chaos is a fact in a software development organization, it is surely wise to initiate a software process improvement program. That is, however, a difficult t ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
Software CMM has gained wide acceptance in software process improvement, especially in USA, but recently also at the European market. When the chaos is a fact in a software development organization, it is surely wise to initiate a software process improvement program. That is, however, a difficult task to undertake in addition to the normal duties in a chaotic situation. This suggests that it would be wiser to apply the process improvement principles already from the very start of the organization, at the time when they are not yet really needed. To this end, there is a need for models for small organizations. The existing models for software process improvement, e.g. CMM, are an overkill for several reasons, and moreover difficult to understand and comprehend for the management of small organizations. This paper presents a model called Dynamic CMM for small organizations, applicable from the very start and supporting organizational growth, thereby covering all the way from the start until the organization is ready to shift to the original Software CMM.
My program is correct but it doesnt run: A review of novice programming and a study of an introductory programming paper
, 2001
"... Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novic ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Contents 1.0 Introduction 2.0 Learning to program 2.1 Overview 2.1.1 Experts vs. novices 2.1.2 Knowledge vs. strategies 2.1.3 Comprehension vs. generation 2.1.4 Procedural vs. object--oriented 2.1.5 Other 2.2 Novice programmers 2.2.1 The task 2.2.2 Mental models and processes 2.2.3 Novice capabilities and behavior 2.2.4 Kinds of novice 2.3 Novice learning and teaching in CS1 2.3.1 Goals and progress 2.3.2 Course design and teaching methods 2.3.3 Alternative methods and curricula 2.4 Summary 3.0 A study of an introductory programming paper 3.1 The design of COMP103 3.1.1 Context 3.1.2 Lectures and knowledge 3.1.3 Laboratory sessions and strategy 3.1.4 Summary 3.2 The study 3.2.1 Background 3.2.2 Method 3.3 Results 3.3.1 Lab based problem tallies 3.3.2 Trends 3.3.3 Other observations 4.0 Discussion 4.1 Kinds of novice 4.2 Knowledge, strategies, and effective teaching and learning 4.3 A framework 5.0 Summary References
An Educational Software Development Process
- In Proceedings of the International Conference on Computer Science, Software Engineering, Information Technology, E-Business and Applications
, 2002
"... Software engineering education must provide the students with knowledge and practice of software development processes. These must be used in course projects, to confront the students with realistic software engineering issues. A requirements set for educational software development processes is pro ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Software engineering education must provide the students with knowledge and practice of software development processes. These must be used in course projects, to confront the students with realistic software engineering issues. A requirements set for educational software development processes is proposed here. It includes requirements about process architecture, team orientation, project life cycle, standards and practicesl student support and instructor support. Some published real-life processes were evaluated against these requirements, and a new process was designed to meet them. 1.

