Transformer, a deep learning technology, has achieved great success in various applications such as natural language processing. However, its space-time consumption remains a concern, leading to the issue of AI techno...
详细信息
Transformer, a deep learning technology, has achieved great success in various applications such as natural language processing. However, its space-time consumption remains a concern, leading to the issue of AI technology monopoly. Therefore, downsizing this technology is critical to mitigating the adverse effects of technological monopoly on innovation and competition. This article proposes a revised version of the Performer, an efficient variant of Transformer. Specifically, the proposed revision aims to resolve three issues associated with Performer. First, generating a target token necessitates padding tokens that require O(L) space and time for sequences of maximum length L. Second, Performer redundantly calculate attentions between previously generated tokens. Third, inconsistencies arise between the training and inference phases due to normalizer calculation in the stable FAVOR+ masked attention operation. The proposed revision introduces a cached version of the FAVOR+ operation, resulting in fast text generation with O(L) time and O(1) space complexity. To examine the effectiveness of the proposed revision, a Performer -based encoder/decoder model that generates text feedback for code correction in object -orientedprogramming education is developed and evaluated. The results show that the revised Performer achieves high accuracy and a more than 120 -fold increase in inference speed. In addition, user evaluation shows that the feedback generated by this model is more beneficial for programming education than that generated by ChatGPT.
Novice students still have problems with the abstraction of object-oriented programming. This research shows that the debugger could be used to clarify abstraction of the object-oriented programming with the C++ progr...
详细信息
Novice students still have problems with the abstraction of object-oriented programming. This research shows that the debugger could be used to clarify abstraction of the object-oriented programming with the C++ program language. Our investigation spans two consecutive courses on object-oriented programming. For the introduction course on the object-oriented programming, we modified both lectures and lab sessions so that with the help of the debugger objects could be visualised, and we could walk through the program step by step. In the second course, the lectures were extended by forty-five minutes, allowing the students to do assignments during the lectures with the help of the debugger. The results of the written examination and the completed questionnaire showed that working with the debugger in both the lectures and the practical exercises had a positive influence, especially for the introductory course on object-oriented programming. Although the Corona pandemic influenced part two, the results of the written exam did improve, but it is unclear which influence the use of the debugger had during this course. Visualising objects and walking through methods step by step could help in understanding the fundamentals of object-oriented programming language C++.
Java is arguably today's most popular and widely used object-oriented programming language. Learning Java is a daunting task for students, and teaching it is a challenging undertaking for instructors. To assess st...
详细信息
Java is arguably today's most popular and widely used object-oriented programming language. Learning Java is a daunting task for students, and teaching it is a challenging undertaking for instructors. To assess students' object-oriented programming skills with Java, we developed the "Department-Employee" project. In this article, we review the history of object-oriented programming, provide an overview of object-oriented programming with Java, and present a summary of existing Java projects and their limitations. We also provide the project specifications as well as the course background, grading rubric, and score reports. Survey data are presented on students' backgrounds, as well as students' perceptions regarding the project. Results from the instructor score reports, correlation of the project score and the final course score, and student perceptions show that the "Department-Employee" project is effective in assessing students' object-oriented programming skills with Java.
This pilot study examines how students& x2019;performance has evolved in an object-oriented (OO) programming course and contributes to the learning analytic framework for similar programming courses in university ...
详细信息
This pilot study examines how students& x2019;performance has evolved in an object-oriented (OO) programming course and contributes to the learning analytic framework for similar programming courses in university curriculum. First, we briefly introduce the research background, a novel OO teaching practice with consecutive and iterative assignments consisting of programming and testing assignments. We propose a planned quantitative method for assessing students& x2019;gains in terms of programming performance and testing performance. Based on real data collected from students who engaged in our course, we use trend analysis to observe how students& x2019;performance has improved over the whole semester. By using correlation analysis, we obtain some interesting findings on how students& x2019;programming performance correlates with testing performance, which provides persuasive empirical evidence in integrating software testing practices into an object-oriented programming curriculum. Then, we conduct an empirical study on how students& x2019;design competencies are represented by their program code quality changes over consecutive assignments by analyzing their submitted source code in the course system and the GitLab repository. Three different kinds of profiles are found in the students& x2019;program quality in the OO design level. The group analysis results reveal several significant differences in their programming performance and testing performance. Moreover, we conduct systematical explanations on how students& x2019;programming skill improvement can be attributed to their object-oriented design competency. By performing principal component analysis on software statistical data, a predictive OO metrics suite for both students& x2019;programming performance and their testing performance is proposed. The results show that these quality factors can serve as useful predictors of students& x2019;learning performance and can provide effective feedback to the instru
The computing education community has shown a long-time interest in how to analyze the object-oriented (OO) source code developed by students to provide them with useful formative tips. Instructors need to understand ...
详细信息
The computing education community has shown a long-time interest in how to analyze the object-oriented (OO) source code developed by students to provide them with useful formative tips. Instructors need to understand the student's difficulties to provide precise feedback on most frequent mistakes and to shape, design and effectively drive the course. This paper proposes and evaluates an approach allowing to analyze student's source code and to automatically generate feedback about the more common violations of the produced code. The approach is implemented through a cloud-based tool allowing to monitor how students use language constructs based on the analysis of the most common violations of the object-oriented paradigm in the student source code. Moreover, the tool supports the generation of reports about student's mistakes and misconceptions that can be used to improve the students' education. The paper reports the results of a quasi-experiment performed in a class of a CS1 course to investigate the effects of the provided reports in terms of coding ability (concerning the correctness and the quality of the produced source code). Results show that after the course the treatment group obtained higher scores and produced better source code than the control group following the feedback provided by the teachers.
The early stages of the development of a finite element method (FEM) based computational tool for numerically simulating mineral-slurry transport involving both Newtonian and non-Newtonian flows are described in this ...
详细信息
ISBN:
(纸本)9783030504366;9783030504359
The early stages of the development of a finite element method (FEM) based computational tool for numerically simulating mineral-slurry transport involving both Newtonian and non-Newtonian flows are described in this work. The rationale behind the conception, design and implementation of the referred object-oriented programming tool is thus initially highlighted. A particular emphasis is put on several architectural aspects accounted for and object class hierarchies defined during the development of the tool. Next one of the main modules composing the tool under development is further described. Finally, as a means of illustration, the use of the FEM based tool for simulating two-dimensional laminar flows is discussed. More specifically, canonical configurations widely studied in the past are firstly accounted for. A more practical application involving the simulation of a mineral-slurry handling device is then studied using the power-law rheological model. The results from the simulations carried out highlight the usefulness of the tool for realistically predicting the associated flow behavior. The FEM based tool discussed in this work will be used in future for carrying out high-fidelity numerical simulations of turbulent multiphase flows including fluid-particle interactions.
Starting out from a general consideration of the concepts of code, abstraction, and programming paradigm, and of how computers compel us to reconceive of thinking as technē rather than as the realization of a given n...
详细信息
This paper presents an observational study that takes an initial step towards answering the question of how the selection of a programming paradigm affects the maintainability of a software system. Answers to this que...
详细信息
ISBN:
(纸本)9781728168074
This paper presents an observational study that takes an initial step towards answering the question of how the selection of a programming paradigm affects the maintainability of a software system. Answers to this question are important because they can provide insight on how the maintainability characteristics of different programming paradigms could be leveraged to improve software-engineering education. The observational study compares developers' effectiveness and speed performing pre-determined maintenance tasks on two equivalent variations of a web-based application: one based on Procedural programming and one based on object-oriented programming. Presented within this paper are the study's design, metrics measuring maintenance effectiveness and speed, and a statistical analysis of the results, which provides evidence that the maintainability characteristics of the two paradigms are different within the context of this research. In addition, as an observational study, some of its important contributions are lessons learned about the experiment design process and ideas for new hypotheses. These are presented in preparation for a future, broader research, and larger-scale experiment. Finally, we discuss some forward-thinking ideas about how differences in the maintenance characteristics of programming paradigms may influence on software-engineering education.
This article describes experiences of teaching object-oriented programming to undergraduate Electrical Engineering students. The proposed project-based methodology increased the interest of students in programming. Th...
详细信息
This article describes experiences of teaching object-oriented programming to undergraduate Electrical Engineering students. The proposed project-based methodology increased the interest of students in programming. The project focuses on the development of a small C++ class that allows students to build geometric models by manipulating a three-dimensional matrix. The class methods (C++ member functions) can draw complex scenes by using combinations of them. Students can improve their programming skills according to the points of view of a class developer and a class user. In addition, students try to create beautiful models to present to each other, making the learning experience pleasant and motivating.
Java is arguably today’s most popular and widely used object-oriented programming language. Learning Java is a daunting task for students, and teaching it is a challenging undertaking for instructors. To assess stude...
详细信息
Java is arguably today’s most popular and widely used object-oriented programming language. Learning Java is a daunting task for students, and teaching it is a challenging undertaking for instructors. To assess students’ object-oriented programming skills with Java, we developed the “Department-Employee” project. In this article, we review the history of object-oriented programming, provide an overview of object-oriented programming with Java, and present a summary of existing Java projects and their limitations. We also provide the project specifications as well as the course background, grading rubric, and score reports. Survey data are presented on students’ backgrounds, as well as students’ perceptions regarding the project. Results from the instructor score reports, correlation of the project score and the final course score, and student perceptions show that the “Department-Employee” project is effective in assessing students’ object-oriented programming skills with Java.
暂无评论