41 |
Instructional technology for the teaching of novice programmers at a university of technologyRudolph, Godfrey January 2015 (has links)
Dissertation submitted in fulfilment of the requirements for the degree of Master of Information Technologyin the Department of Information Technology in the Faculty of Informatics and Design Cape Peninsula University of Technology / Learning computer programming can be fun, challenging and improve problem solving which is a useful ability in general. A teaching-learning environment with a strong emphasis on problem solving promotes social behaviour and discloses the personal benefits that individuals working in almost any Information Technology position can get from programming knowledge. This research project is looking at the challenges experienced by novice programmers and the negative effect it has on the student and the university. This study will address the knowledge and skills needs of programming students and the challenges for students and educators to evolve from traditional to technology-supported teaching and learning. Computer programming is a cognitively challenging subject and good instructional strategies are important in providing the student with optimal learner support. Novice programmers often struggle to understand how a computer executes a program, which impacts negatively on the delivery of the subject and throughput rates. The majority of first year Information Technology students at Cape Peninsula University of Technology are novice programmers and lack strong logic and reasoning as well as other Information Technology skills that can facilitate their interpretation and application of key concepts in programming. These challenges and negative impact on the academic development of programming students have therefore forced the researcher to investigate innovative teaching strategies and/or instructional technologies that can facilitate novice programmers in learning the basic programming concepts. The purpose of this on-going study is to enhance the traditional method of teaching and the understanding of the problems experienced by novice programmers. This study attempts to respond to the question of what the tentative design principles of instructional technology are that can be used to facilitate novice programmers’ understanding of programming concepts. A mix methodology was considered but at the end a qualitative approach was employed. Multiple sources of data gathering, which include participant observations, video recording, a questionnaire, and document analysis, were used as research instruments. The findings, relative to providing a basis for finding a mechanism to help our first year students to cope with the abstract concepts of programming, reflected the literature review. Other key findings included: Students have little or no prior computer or programming experience Student population is diverse in terms of computer skills and programming knowledge Visualization will help reduce the difficulties in writing programs The overall outcomes of this study suggest that:
Good programming examples that include games should be used Students must be given the opportunity to be more active in their learning. Computerized assistants should be provided for novice programmers A visualization tool similar to Scratch should be considered A basic background in Mathematics is recommended
|
42 |
A comparison of programming notations for a tertiary level introductory programming courseCilliers, Charmain Barbara January 2004 (has links)
Increasing pressure from national government to improve throughput at South African tertiary education institutions presents challenges to educators of introductory programming courses. In response, educators must adopt effective methods and strategies that encourage novice programmers to be successful in such courses. An approach that seeks to increase and maintain satisfactory throughput is the modification of the teaching model in these courses by adjusting presentation techniques. This thesis investigates the effect of integrating an experimental iconic programming notation and associated development environment with existing conventional textual technological support in the teaching model of a tertiary level introductory programming course. The investigation compares the performance achievement of novice programmers using only conventional textual technological support with that of novice programmers using the integrated iconic and conventional textual technological support. In preparation for the investigation, interpretation of existing knowledge on the behaviour of novice programmers while learning to program results in a novel framework of eight novice programmer requirements for technological support in an introductory programming course. This framework is applied in the examination of existing categories of technological support as well as in the design of new technological support for novice programmers learning to program. It thus provides information for the selection of existing and the design of new introductory programming technological support. The findings of the investigation suggest strong evidence that performance achievement of novice programmers in a tertiary level introductory programming course improves significantly with the inclusion of iconic technological support in the teaching model. The benefits are particularly evident in the portion of the novice programmer population who have been identified as being at risk of being successful in the course. Novice programmers identified as being at risk perform substantially better when using iconic technological support concurrently with conventional textual technological support than their equals who use only the latter form. Considerably more at risk novice programmers using the integrated form of technological support are in fact successful in the introductory programming course when compared with their counterparts who use conventional textual technological support only. The contributions of this thesis address deficiencies existing in current documented research. These contributions are primarily apparent in a number of distinct areas, namely: • formalisation of a novel framework of novice programmer requirements for technological support in an introductory programming course; • application of the framework as a formal evaluation technique; • application of the framework in the design of a visual iconic programming notation and development environment; • enhancement of existing empirical evidence and experimental research methodology typically applied to studies in programming; as well as • a proposal for a modified introductory programming course teaching model. The thesis has effectively applied substantial existing research on the cognitive model of the novice programmer as well as that on experimental technological support. The increase of throughput to a recommended rate of 75 percent in the tertiary level introductory programming course at the University of Port Elizabeth is attributed solely to the incorporation of iconic technological support in the teaching model of the course.
|
43 |
Errors in Looping and Assignment by Novice Assembly Language ProgrammersMelkus, Lovie Ann Jeffrey 12 1900 (has links)
The problem with which this investigation is concerned is an analysis of errors in looping and assignment made by novice assembly language computer programmers. This analysis is made after subjects write three computer programs. The verbal definition of the problem for each program specifies, without naming, either a for, while, or repeat looping structure. The purposes of the study are the following; to determine whether using the appropriate looping structure is related to writing a correct program; to determine the incidence of assignment errors in incorrect programs; to determine the degree of relationship between mathematical aptitude, and the type of assignment errors made; to determine the degree of relationship between use of the appropriate looping structure and mathematical, verbal, and scholastic aptitude; to determine the degree of relationship between gender and use of the appropriate looping structure, and to determine the degree of relationship between gender and the number of assignment errors.
|
44 |
Validation of a Selection Battery for Computer ProgrammersTuseth, Michael 08 1900 (has links)
Subjects were 38 computer programers employed in a national food-retailing corporation. A job analysis provided a basis for criteria development and served to guide the selection of predictors. Ratings of each programmer's job performance by his immediate supervisor, and scores on such tests as the Computer Programer Aptitude Battery (CPAB), clerical tests, and supervisory judgment test were obtained. Relationships between tests and criteria were examined to find the best test combination for predicting programming performance. Statistical treatment of data included a principal components analysis of the criteria and a multiple linear regression analysis. A weighted combination of the CPAB Reasoning, a test of clerical ability, and supervisory judgment test was found to be highly correlated with performance (R = .60).
|
45 |
Assignment, scope, and sequence: Code tracing as a tool to improve novice programmers’ mental modelsvan den Dool Enebjörk, Mattias January 2022 (has links)
Novice programming students often fail or drop out of beginner’s programming courses. One reason for this are incomplete or incorrect mental models, especially with regards to variable assignment and execution sequence, meaning that students have structural misconceptions of how a computer functions. To help correct such misconceptions, this study develops, tests, and assesses an intervention to correct mental models. The intervention consists of an in-class exercise that revolves around code tracing, which is an activity in which students execute code by hand and keep track of variables and their values by using pen and paper. In order to assess the exercise’s effectiveness, participants completed a baseline test and a follow-up test. The study found that a large proportion of the students held inviable mental models with regards to either variable assignment, execution sequence, or variable scope—or any combination of the three. Post-exercise tests showed a significant improvement across all three of the aforementioned categories of misconceptions, especially with regards to execution sequence. To achieve wide-scale implementation of the proposed intervention, the study identified a number of obstacles and opportunities. In terms of obstacles, the baseline and follow-up tests need further sophistication to increase sensitivity. Relatedly, it is necessary to develop software that generates randomized baseline tests, follow-up tests, and code tracing exercise problems. Key opportunities are the intervention’s low-tech nature, limited time needed for the exercise, as well as effectiveness.
|
46 |
EVALUATING THE IMPACT OF CULTURAL DIFFERENCES AMONG SOFTWARE PROGRAMMERS IN INDIA AND IN THE U.SMAUDGALYA, TUSHYATI S. 01 July 2004 (has links)
No description available.
|
47 |
Facilitating software reuse by structuring the SPS user interface management system's software library according to programmer mental modelsJenkins, Joseph A. 06 June 2008 (has links)
This study evaluates three different ways of structuring a software library for an object-oriented system. The traditional class/subclass tree (CIS) is used as well as two methods from the mental model literature: hierarchical cluster analysis (HCA) of sorting data and modal block clustering (MBC) of attribute rating data (Shurtleff, Jenkins, and Sams, 1988; Tullis, 1985).
Also examined in this context are two software metrics: depth-in- inheritance-tree (D IT) and response-for-class (RFC) (Lei, 1991, 1993). These two metrics had been found by Lei to correlate with the ease of maintenance of software. It was conjectured that they might also be useful in the study of mental model methods for software.
Finally, student and professional programmers are explicitly compared. There has been much debate on the applicability of software-related data generated from student subjects but little research on the topic.
The results indicate that subject performance with the MBC representation was worse than with the CIS representation. Also found was that performance with the HCA representation was not sufficiently better to justify the effort involved in creating the new representation.
Student programmers were found in this study to be no worse than professional programmers and thus appear to be acceptable substitutes for professional programmers in a class-based search task. This study's results indicate that student response time to locate a class could be used as the lower boundary for professional programmer class locating time. The student error rates, however, could be used as the upper boundary for professional programmer error rate performance in class locating tasks.
A "middle" problem was also found. Classes 1n the middle of a library representation proved to be more difficult to locate as measured by time and error rate.
Finally, a higher RFC was found to increase search time for a class when it was in the middle of a library representation. A higher RFC also reduced programmer reusability ratings of a class and the programmer's confidence in the reusability rating. / Ph. D.
|
48 |
Automated Identification and Application of Code Refactoring in Scratch to Promote the Culture Quality from the Ground upTechapalokul, Peeratham 04 June 2020 (has links)
Much of software engineering research and practice is concerned with improving software quality. While enormous prior efforts have focused on improving the quality of programs, this dissertation instead provides the means to educate the next generation of programmers who care deeply about software quality. If they embrace the culture of quality, these programmers would be positioned to drastically improve the quality of the software ecosystem. This dissertation describes novel methodologies, techniques, and tools for introducing novice programmers to software quality and its systematic improvement. This research builds on the success of Scratch, a popular novice-oriented block-based programming language, to support the learning of code quality and its improvement. This dissertation improves the understanding of quality problems of novice programmers, creates analysis and quality improvement technologies, and develops instructional approaches for teaching quality improvement. The contributions of this dissertation are as follows. (1) We identify twelve code smells endemic to Scratch, show their prevalence in a large representative codebase, and demonstrate how they hinder project reuse and communal learning. (2) We introduce four new refactorings for Scratch, develop an infrastructure to support them in the Scratch programming environment, and evaluate their effectiveness for the target audience. (3) We study the impact of introducing code quality concepts alongside the fundamentals of programming with and without automated refactoring support. Our findings confirm that it is not only feasible but also advantageous to promote the culture of quality from the ground up. The contributions of this dissertation can benefit both novice programmers and introductory computing educators. / Doctor of Philosophy / Software remains one of the most defect-prone artifacts across all engineering disciplines. Much of software engineering research and practice is concerned with improving software quality. While enormous prior efforts have focused on improving the quality of programs, this dissertation instead provides the means to educate the next generation of programmers who care deeply about software quality. If they embrace the culture of quality, these programmers would be positioned to drastically improve the quality of the software ecosystem, akin to professionals in traditional engineering disciplines. This dissertation describes novel methodologies, techniques, and tools for introducing novice programmers to software quality and its systematic improvement. This research builds on the success of Scratch, a popular visual programming language for teaching introductory students, to support the learning of code quality and its improvement. This dissertation improves the understanding of quality problems of novice programmers, creates analysis and quality improvement technologies, and develops instructional approaches for teaching quality improvement. This dissertation contributes (1) a large-scale study of recurring quality problems in Scratch projects and how these problems hinder communal learning, (2) four new refactorings, quality improving behavior-preserving program transformations, as well as their implementation and evaluation, (3) a study of the impact of introducing code quality concepts alongside the fundamentals of programming with and without automated refactoring support. Our findings confirm that it is not only feasible but also advantageous to promote the culture of quality from the ground up. The contributions of this dissertation can benefit both novice programmers and introductory computing educators.
|
49 |
Continuing professional education for software quality assurance / CPE for SQAHammons, Rebecca L. January 2009 (has links)
This case study examined the self-directed and team-based learning activities of a software quality assurance organization in central Indiana. The skills required to assure a high level of software quality evolve rapidly and software quality professionals must embrace ongoing technology and process changes. The thirty focus group participants performed a variety of quality assurance tasks including configuration management, research, automated test development, test planning and execution, and team leadership. The case study was based on semi-structured interviews of four focus groups of software quality professionals, and explored the learning styles, preferences, and activities deployed to learn new technologies and solve complex software problems.
Software products are becoming increasingly pervasive in our culture. The study of continuing education for the software quality profession is important due to our increased reliance on this profession to meet customer expectations for high-quality software products. The proliferation of software products in our culture has also increased the demand for software quality professionals. Those professionals who have access to continuing professional education to improve and maintain skills have the opportunity to meet customer expectations. There is no mandated certification or licensing for this profession therefore professionals are left to chart their own course of learning. This study sought to understand how these software quality professionals meet their continuing professional educational needs. As well, the study identified key resources required to support such continuing professional education both within the workplace and off the job.
Future study of the role of critical self-reflection in establishing learning objectives could enhance our understanding of how software quality professionals identify and plan their learning activities. Further investigation of the value of computer programming and logic knowledge to the software quality professional would benefit our understanding of baseline skill requirements for the various roles performed in the profession. There are also opportunities to engage in future action research projects on co-location of teams, mentoring, and job rotation strategies, as employees were found to learn effectively from peers. / Department of Educational Studies
|
50 |
Semi-automated assessment of programming languages for novice programmersBuyrukoglu, Selim January 2018 (has links)
There has recently been an increased emphasis on the importance of learning programming languages, not only in higher education but also in secondary schools. Students of a variety of departments such as physics, mathematics and engineering have also started learning programming languages as part of their academic courses. Assessment of students programming solutions is therefore important for developing their programming skills. Many Computer Based Assessment (CBA) systems utilise multiple-choice questions (MCQ) to evaluate students performance. However, MCQs lack the ability to comprehensively assess students knowledge. Thus, other forms of programming solutions are required to assess students knowledge. This research aims to develop a semi-automated assessment framework for novice programmers, utilising a computer to support the marking process. The research also focuses on ensuring the consistency of feedback. A novel marking process model is developed based on the semi-automated assessment approach which supports a new way of marking, termed segmented marking . A study is carried out to investigate and demonstrate the feasibility of the segmented marking technique. In addition, the new marking process model is developed based on the results of the feasibility study, and two novel marking process models are presented based on segmented marking, namely the full-marking and partial-marking process models. The Case-Based Reasoning (CBR) cycle is adopted in the marking process models in order to ensure the consistency of feedback. User interfaces of the prototype marking tools (full and partial) are designed and developed based on the marking process models and the user interface design requirements. The experimental results show that the full and partial marking techniques are feasible for use in formative assessment. Furthermore, the results also highlight that the tools are capable of providing consistent and personalised feedback and that they considerably reduce markers workload.
|
Page generated in 0.0247 seconds