首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 20 毫秒
1.
Agile Software Development methodologies have grown in popularity both among academic researchers and industrial practitioners. Among the various methodologies or practices proposed, pair programming, which is concerned with two programmers collaborating on design, coding and testing, has become a controversial focus of interest. Even though some success stories have been reported with the use of pair-programming in real software development environment, many people remain rather skeptical of the claims on pair-programming productivity. Previous studies in pair programming have only addressed the basic understanding of the productivity of pairs and they have not addressed the variation in productivity between pairs of varying skills and experience, such as between novice–novice and expert–expert. Statistical productivity measurements reported by different researchers also seem to lead to contradictory conclusions. Until now, the literature has not addressed how those results and experiments were related to each other. In this paper, we propose a controlled experiment called repeat-programming which can facilitate the understanding of relationships between human experience and programming productivity. Repeat-programming can be performed when controversial issues in non-traditional programming methodologies and development productivity need to be investigated into. To illustrate how the proposed empirical experiment can put arguable, divisive problems into perspective, we have examined the productivity in pair programming as a case study. With repeat-programming, we are able to (i) better understand why results of previous pair programming control experiments reached different conclusions as to the productivity of pair programming and (ii) most importantly, present a case in which novice–novice pairs against novice solos are much more productive than expert–expert pairs against expert solos.  相似文献   

2.
Abstract

This paper describes a new method for knowledge elicitation that may contribute to effective expertise transfer from human experts to knowledge-based systems. The method was applied to knowledge transfer in an aerospace design context. Knowledge was transferred directly from an expert designer to both expert and novice “receivers” of information. Transfer occurred in a natural way, without intervention from a knowledge engineer. To evaluate the process, the information receivers were required to recall the transmitted knowledge after a seven week delay. Results suggest that this method can be effective for expertise transfer and can indicate desirable characteristics for knowledge-based systems which aim to be adaptable to users’ differing levels of competence.  相似文献   

3.
Among the challenges facing companies transitioning from structured to object-oriented (OO) programming is how (and whether) to retrain existing procedural programmers. Common wisdom has it that old-time programmers can be retrained in object technology only with great difficulty, but new programmers lack experience building large systems and the knowledge of the business. This paper describes a study of students learning OO programming where the participants ranged in experience from a single semester of programming to over 10 years of professional programming. The purpose of this study was to explore how students learn OO programming by observing them between their first exposure to OO programming and the time they finally “get it.” We identified five categories of learners who each took a different path to learning OO programming, encountered different obstacles, and adopted different learning strategies. We describe some factors that may play a part in helping and/or hindering a student's progress and that may be used to predict a student's learning category. We conclude with suggestions for alternative training program strategies that may be appropriate for each category and with directions for future research.  相似文献   

4.
5.
以“数据结构”课程为导向,可以指导“C语言程序设计”课程相关内容的应用案例设计。而将“以赛促学”的思想融入计算机大类基础课程中,以成果为导向,分层次学习“C语言程序设计”和“数据结构”,循序渐进,并针对每个知识点的项目案例驱动学习兴趣,可以体现应用型本科学以致用的宗旨。  相似文献   

6.
目前,基于电子信息专业的“C语言程序设计”研究已较为深入,在培养电子信息专业人才方面也设立了相应方案。文章探讨了基于电子信息专业的“C语言程序设计”教学现状,提出具体的专业“C语言程序设计”教学思路,并就具体的教学改革策略进行了全盘分析,探讨。  相似文献   

7.
To help computers make better decisions, it is desirable to describe all our knowledge in computer-understandable terms. This is easy for knowledge described in terms on numerical values: we simply store the corresponding numbers in the computer. This is also easy for knowledge about precise (well-defined) properties which are either true or false for each object: we simply store the corresponding “true” and “false” values in the computer. The challenge is how to store information about imprecise properties. In this paper, we overview different ways to fully store the expert information about imprecise properties. We show that in the simplest case, when the only source of imprecision is disagreement between different experts, a natural way to store all the expert information is to use random sets; we also show how fuzzy sets naturally appear in such random set representation. We then show how the random set representation can be extended to the general (“fuzzy”) case when, in addition to disagreements, experts are also unsure whether some objects satisfy certain properties or not.  相似文献   

8.
Computer programming is generally understood to be highly challenging and since its inception a wide range of approaches, tools and methodologies have been developed to assist in managing its complexity. Relatively recently the potential benefits of collaborative software development have been formalised in the practice of pair programming. Here we attempt to ‘unpick’ the pair programming process through the analysis of verbalisations from a number of commercial studies. We focus particularly on the roles of the two programmers and what their key characteristics and behaviours might be. In particular, we dispute two existing claims: (i) that the programmer who is not currently typing in code (“the navigator”) is constantly reviewing what is typed and highlighting any errors (i.e. acting as a reviewer) and (ii) that the navigator focuses on a different level of abstraction as a way of ensuring coverage at all necessary levels (i.e. acting as a foreman). We provide an alternative model for these roles (“the tag team”) in which the driver and navigator play much more equal roles. We also suggest that a key factor in the success of pair programming may be the associated increase in talk at an intermediate level of abstraction.  相似文献   

9.
10.
Knowledge engineering is the term given to the process of developing expert systems and knowledge engineers are the people who acquire the requisite knowledge from experts and structure that knowledge into a useable computer program. As knowledge engineering becomes a more accepted technology, there is increasing concern about attendant social costs, such as job displacement or possible exploitation of experts. This paper reports on our efforts to explore this latter issue by scrutinizing how knowledge engineers think about the domain expert and the role that person plays in system development. To accomplish this aim, we asked several samples of novice engineers to write story completions to a preamble that describes a knowledge engineer encountering a reluctant expert who may be fearing job loss if the system is implemented. The resulting accounts were content-analysed for insights as to how novice system builders think about experts. The results indicate that experts are conceived more as a tool to be used rather than a person to be respected.Preparation of this chapter was supported by National Science Foundation Grant BNS 87-21882 to Marianne LaFrance.  相似文献   

11.
This paper describes a new method for knowledge elicitation that may contribute to effective expertise transfer from human experts to knowledge-based systems. The method was applied to knowledge transfer in an aerospace design context. Knowledge was transferred directly from an expert designer to both expert and novice “receivers” of information. Transfer occurred in a natural way, without intervention from a knowledge engineer. To evaluate the process, the information receivers were required to recall the transmitted knowledge after a seven week delay. Results suggest that this method can be effective for expertise transfer and can indicate desirable characteristics for knowledge-based systems which aim to be adaptable to users' differing levels of competence.  相似文献   

12.
Pair programming, in which two individuals share a single computer to collaboratively develop software, has been shown to have many benefits in industry and in education. One drawback of pair programming is its collocation requirement, which limits its use to situations where the partners can physically meet. A tool that supported distributed pair programming, in which the partners could pair from separate locations, would remove this impediment.This paper discusses the development and empirical evaluation of such a tool. A significant feature of this tool is the presence of a second cursor that supports gesturing. Students who used the tool in their introductory programming course performed as well as collocated students on their programming assignments and final exam. These students also spent less time working by themselves. They also felt that the gesturing feature was useful and used it regularly.  相似文献   

13.
Prior empirical studies of programming have shown that novice programmers tend to program by exploration, relying on frequent compilation and execution of their code in order to make progress. One way visual and end-user programming environments have attempted to facilitate this exploratory programming process is through their support of “live” editing models, in which immediate visual feedback on a program's execution is provided automatically at edit time. Notice that the notion of “liveness” actually encompasses two distinct dimensions: (a) the amount of time a programmer must wait between editing a program and receiving visual feedback (feedback delay); and (b) whether such feedback is provided automatically, or whether the programmer must explicitly request it (feedback self-selection). While a few prior empirical studies of “live” editing do exist, none has specifically evaluated the impact of these dimensions of “live” editing within the context of the imperative programming paradigm commonly taught in first-semester computer science courses. As a preliminary step toward that end, we conducted an experimental study that investigated the impact of feedback self-selection on novice imperative programming. Our within-subjects design compared the impact of three different levels of feedback self-selection on syntactic and semantic correctness: (a) no visual feedback at all (the No Feedback treatment); (b) visual feedback, in the form of a visualization of the program's execution state, provided on request when a “run” button is hit (the Self-Select treatment); and (c) visual feedback, in the form of a visualization of the program's execution state, updated on every keystroke (the Automatic treatment). Participants in the Automatic and Self-Select treatments produced programs that had significantly fewer syntactic and semantic errors than those of the No Feedback treatment; however, no significant differences were found between the Automatic and Self-Select treatments. These results suggest that, at least in the case of novice imperative programming environments, the benefits of delivering a continuously updated visual representation of a program's execution may fail to justify the substantial costs of implementing such feedback. We recommend that programming environment designers instead direct their efforts toward carefully considering when programmers will be ready to take advantage of the feedback that is coming toward them, along with what content will be of most benefit to them.  相似文献   

14.
We present an expert system that can handle various complicated decision-making problems of optimal control that are hardly solvable manually or even by computer-aided design techniques. The expert system is the first implementation of solving decision-making problems of optimal control using a computer, which paves the way for us to develop the real-time intelligent optimal control environment. Through a user-friendly interface, the expert system can receive the needed information from the user, perform heuristic search, and provide the results of a decisionmaker quickly both on the screen and from a printer. The important features of this expert system are that it () makes a decision on the problem-solving strategies for optimal control, that is, provides the solution structure and transversality conditions as well as types of some key equations; (2) processes symbolic information; (3) breaks down the whole search into three reasoning levels such that the problem can be solved easily and the search routine can be simplified; (4) utilizes “filter rules” to reduce production rules and enhance the program efficiency; (5) modifies the knowledge base and creates new rules in production rule memory; and (6) applies a “certainty factor” to represent imprecise knowledge. The expert system has been implemented using the AI tool OPS5 on a VAX 11/780 computer running under VMS. An example is also used to illustrate our expert system.  相似文献   

15.
在疫情防控期间,全国高校响应教育部“停课不停教、停课不停学”的号召积极开展在线教学工作。本文充分探讨了作为公共基础课的Python程序设计课程线上教学的教学流程,并从教、学、教学相长、平台的二次开发等几个方面进行了教与学的实践。  相似文献   

16.
《Computers & Education》2010,54(4):1029-1039
Throughout their lives, people are faced with various learning situations, for example when they learn how to use new software, services or information systems. However, research in the field of Interactive Learning Environments shows that learners needing assistance do not systematically seek or use help, even when it is available. The aim of the present study is to explore the role of some factors from research in Interactive Learning Environments in another situation: using a new technology not as a means of acquiring knowledge but to realize a specific task. Firstly, we present the three factors included in this study (1) the role of the content of assistance, namely operative vs. function-oriented help; (2) the role of the user’s prior knowledge; (3) the role of the trigger of assistance, i.e. help provided after the user’s request vs. help provided by the system. In this latter case, it is necessary to detect the user’s difficulties. On the basis of research on problem-solving, we list behavioral criteria expressing the user’s difficulties. Then, we present two experiments that use “real” technologies developed by a large company and tested by “real” users. The results showed that (1) even when participants had reached an impasse, most of them never sought assistance, (2) operative assistance that was automatically provided by the system was effective for novice users, and (3) function-oriented help that was automatically provided by the system was effective for expert users. Assistance can support deadlock awareness and can also focus on deadlock solving by guiding task. Assistance must be adapted to prior knowledge, progress and goals of learners to improve learning.  相似文献   

17.
Program comprehension research can be characterized by both the theories that provide rich explanations about how programmers understand software, as well as the tools that are used to assist in comprehension tasks. In this paper, I review some of the key cognitive theories of program comprehension that have emerged over the past thirty years. Using these theories as a canvas, I then explore how tools that are commonly used today have evolved to support program comprehension. Specifically, I discuss how the theories and tools are related and reflect on the research methods that were used to construct the theories and evaluate the tools. The reviewed theories and tools are distinguished according to human characteristics, program characteristics, and the context for the various comprehension tasks. Finally, I predict how these characteristics will change in the future and speculate on how a number of important research directions could lead to improvements in program comprehension tool development and research methods. Dr. Margaret-Anne Storey is an associate professor of computer science at the University of Victoria, a Visiting Scientist at the IBM Centre for Advanced Studies in Toronto and a Canada Research Chair in Human Computer Interaction for Software Engineering. Her research passion is to understand how technology can help people explore, understand and share complex information and knowledge. She applies and evaluates techniques from knowledge engineering and visual interface design to applications such as reverse engineering of legacy software, medical ontology development, digital image management and learning in web-based environments. She is also an educator and enjoys the challenges of teaching programming to novice programmers.  相似文献   

18.
一种计算机编程辅助教学专家系统的构建   总被引:1,自引:0,他引:1  
杨路明  阳志梅 《微机发展》2004,14(2):41-42,45
计算机编程辅助教学专家系统是一种应用于程序设计课的专家系统,它是教学专家系统在高等学校的高级程序设计语言课上的应用,其目的是帮助学生快速检测、纠正程序中的错误,以减轻教师的负担。文中提出了一种计算机编程辅助教学专家系统的总体设计,并从它的知识库的构建、推理机制的算法实现等方面进行了分析。  相似文献   

19.
针对如何提高学生的程序设计能力,笔者将本科教育分四个阶段,并给出各个阶段的目标。通过分析程序设计教学中存在的问题,结合教学实践,对培养学生的程序设计能力提出了一些意见,对教学手段、教学方法等方面提出了改革的对策。其次,针对本科生缺乏实际项目开发经验的问题,教师可以开发难度适中的软件项目,努力增强学生的解决问题和实践动手能力。  相似文献   

20.
针对如何提高学生的程序设计能力,笔者将本科教育分四个阶段,并给出各个阶段的目标。通过分析程序设计教学中存在的问题,结合教学实践,对培养学生的程序设计能力提出了一些意见,对教学手段、教学方法等方面提出了改革的对策。其次,针对本科生缺乏实际项目开发经验的问题,教师可以开发难度适中的软件项目,努力增强学生的解决问题和实践动手能力。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号