With billions of lines of code being deployed and running on cloud servers, PCs, as well as battery-driven mobile phones, embedded systems, and IoT devices, software energy efficiency will play an increasingly importa...
详细信息
ISBN:
(纸本)9781538634707
With billions of lines of code being deployed and running on cloud servers, PCs, as well as battery-driven mobile phones, embedded systems, and IoT devices, software energy efficiency will play an increasingly important role in green IT. In the past decades, objectorientedprogramming (OOP) has become the de facto standard for commercial software design. However, very little is known about the impact of OOP and design patterns on software energy efficiency. In this paper, we conduct an empirical study on a series of OOP features and design patterns and find out that their influences on performance and energy efficiency vary greatly. Some of them have negligible impact while others could degrade performance and increase energy consumption. If used appropriately, design patterns can also help improve performance and reduce energy consumption.
NASA Technical Reports Server (Ntrs) 19900010442: objectorientedprogramming Systems (Oops) and Frame Representations: an Investigation of programming Paradigms by NASA Technical Reports Server (Ntrs); published by
NASA Technical Reports Server (Ntrs) 19900010442: objectorientedprogramming Systems (Oops) and Frame Representations: an Investigation of programming Paradigms by NASA Technical Reports Server (Ntrs); published by
Educational technology offers several potential benefits for programming education. Still, to facilitate the technology properly, integration into a course must be carefully designed. In this article, we present a red...
详细信息
Educational technology offers several potential benefits for programming education. Still, to facilitate the technology properly, integration into a course must be carefully designed. In this article, we present a redesign of an object-oriented university-level programming course. In the redesign, a collaborative education tool was utilized to enhance active learning, facilitate communication between students and teachers, and remodel the evaluation procedure by utilizing automatically assessed tasks. The redesign was based on the best practices found in our own earlier research and that of the research community, with a focus on facilitating active learning methods and student collaboration. The redesign was evaluated by comparing two instances of the redesigned course against two instances using the old methodology. The drop-out rate decreased statistically significantly in the redesigned course instances. Moreover, there was a trend toward higher grade averages in the redesigned instances. Based on the results, we can conclude that the utilization of educational technology has a highly positive effect on student performance. Still, making major changes to course methodology does not come without certain difficulties. Hence, we also present our experiences and suggestions for the course redesign to help other educators and researchers perform similar design changes.
As part of curriculum changes in South Africa, an introductory programming language, Scratch, must first be taught before switching to the well-established teaching of Delphi. The nature of programming in Scratch is c...
详细信息
As part of curriculum changes in South Africa, an introductory programming language, Scratch, must first be taught before switching to the well-established teaching of Delphi. The nature of programming in Scratch is considerably different from that in Delphi. It was assumed that the teaching of Scratch as introductory programming language could support learners’ understanding of Delphi. Teachers did not receive much training in Scratch. This study explores teachers’ experiences of their first year of the teaching of Scratch. The purpose of the research was to understand how Scratch can be used effectively as a transitioning language to Delphi and to deduce guidelines for teaching Scratch as introduction to object-oriented programming in Delphi. A qualitative research method, within the interpretive paradigm, was selected for this research. Interviews were done with eight randomly selected Information Technology (IT) teachers in the province of North-West, South Africa to gain insight into their experiences of teaching Scratch in 2012, the first year of implementing the new curriculum. Findings show that teachers were uncertain how to teach programming concepts and how to integrate problem solving and algorithm design into teaching Scratch. The focus of teaching was on Scratch, instead of on teaching programming concepts with Scratch. Emerging guidelines emphasise the integration of problem solving and algorithm design; the creation of opportunities to expose learners to error handling and program testing; and the inculcatation of programming concepts. We furthermore recommend active teaching-learning strategies such as pair programming.
While object-oriented programming in Java has been widely adopted as an introductory programming course in Computer Science, it is considered difficult to teach and learn. Studies have identified that the difficulty i...
详细信息
ISBN:
(纸本)9781479984541
While object-oriented programming in Java has been widely adopted as an introductory programming course in Computer Science, it is considered difficult to teach and learn. Studies have identified that the difficulty is from the underlying object-oriented concepts and principles. To help student programmers better understand the structure of a program and the concepts of object-oriented design, visualizations in various formats have been applied to programming environments. This paper presents a web-based interactive educational programming environment, JavlinaCode, and its unique design principles. JavlinaCode is designed for teaching object-oriented programming in Java. It aims to enhance student programmers' programming skill and to help them understand object-oriented design concepts. It provides integrated static and dynamic visualizations: the static state of a Java program in an UML class diagram and the dynamic run-time state of the program execution. With the synchronized multi-view real time visualization along with source code, JavelinaCode is highly expected to reduce student programmers' cognitive workload in Java programming and to enhance comprehension of the object-oriented programming and design concepts.
The paper analyzes the possibilities of transforming C programming language constructs into objects of EO programming language. The key challenge of the method is the transpilation from a system programming language i...
详细信息
The paper analyzes the possibilities of transforming C programming language constructs into objects of EO programming language. The key challenge of the method is the transpilation from a system programming language into a language of a higher level of abstraction, which does not allow direct manipulations with computer memory. Almost all application and domain-orientedprogramming languages disable such direct access to memory. Operations that need to be supported in this case include the use of dereferenced pointers, the imposition of data of different types in the same memory area, and different interpretation of the same data which is located in the same memory address space. A decision was made to create additional EO-objects that directly simulate the interaction with computer memory as in C language. These objects encapsulate unreliable data operations which use pointers. An abstract memory object was proposed for simulating the capabilities of C language to provide interaction with computer memory. The memory object is essentially an array of bytes. It is possible to write into memory and read from memory at a given index. The number of bytes read or written depends on which object is being used. The transformation of various C language constructs into EO code is considered at the level of the compilation unit. To study the variants and analyze the results a transpiler was developed that provides necessary transformations. It is implemented on the basis of Clang, which forms an abstract syntax tree. This tree is processed using LibTooling and LibASTMatchers libraries. As a result of compiling a C program, code in EO language is generated. The considered approach turns out to be appropriate for solving different problems. One of such problems is static code analysis. Such solutions make it possible to isolate low-level code fragments into separate program objects, focusing on their study and possible transformations into more reliable code.
This paper reviews some programming techniques in R that have proved useful, particularly for substantial projects. These include several versions of object-oriented programming, used in a large number of R packages. ...
详细信息
This paper reviews some programming techniques in R that have proved useful, particularly for substantial projects. These include several versions of object-oriented programming, used in a large number of R packages. The review tries to clarify the origins and ideas behind the various versions, each of which is valuable in the appropriate context. R has also been strongly influenced by the ideas of functional programming and, in particular, by the desire to combine functional with objectorientedprogramming. To clarify how this particular mix of ideas has turned out in the current R language and supporting software, the paper will first review the basic ideas behind object-oriented and functional programming, and then examine the evolution of R with these ideas providing context. Functional programming supports well-defined, defensible software giving reproducible results. object-oriented programming is the mechanism par excellence for managing complexity while keeping things simple for the user. The two paradigms have been valuable in supporting major software for fitting models to data and numerous other statistical applications. The paradigms have been adopted, and adapted, distinctively in R. Functional programming motivates much of R but R does not enforce the paradigm. object-oriented programming from a functional perspective differs from that used in non-functional languages, a distinction that needs to be emphasized to avoid confusion. R initially replicated the S language from Bell Labs, which in turn was strongly influenced by earlier program libraries. At each stage, new ideas have been added, but the previous software continues to show its influence in the design as well. Outlining the evolution will further clarify why we currently have this somewhat unusual combination of ideas.
Teaching and learning programming, and especially object-oriented programming (OOP), is a complicated and challenging task. Students have to comprehend various OOP concepts and utilize them for designing object-orient...
详细信息
Teaching and learning programming, and especially object-oriented programming (OOP), is a complicated and challenging task. Students have to comprehend various OOP concepts and utilize them for designing object-oriented programs. Various types of educational programming environments, such as microworlds and educational games, have been devised for supporting novices mainly in comprehending OOP concepts. However, such environments do not usually support students in the conceptual design of object-oriented programs of a considerable length and complexity. In this paper, we focus on a systematic mapping study (SMS) of educational programming environments for enhancing the conceptual design in OOP, which relies on modularity, abstraction and encapsulation. The research questions investigate the intended learning outcomes, the empirical evidence on the effectiveness, and the teaching/learning technologies used by educational programming environments for enhancing the conceptual design in OOP. The findings can support instructors in selecting appropriate tools for their courses and researchers in the field of educational programming environments for OOP.
This paper is to demonstrate the use of MATLAB object-oriented programming(OOP) for developing Multi-Train Movement Simulation(MTMS). Dynamic performance of the train movement is modeled with the help of Newton's ...
详细信息
This paper is to demonstrate the use of MATLAB object-oriented programming(OOP) for developing Multi-Train Movement Simulation(MTMS). Dynamic performance of the train movement is modeled with the help of Newton's law of motion. Train movement in this work is based on a sequence of four operating modes: i) accelerating mode, ii) constant speed or cruising mode, iii) coasting mode and iv) braking mode. The design concept of a train movement class is described with its properties and methods. To evaluate its use, the proposed train movement simulator developed here is tested against Bangkok Transit System(BTS) – Sky Train Silom Line. This system has the service distance of 13-km and is fed by seven 750-V DC power sources through its 3rd rail. The results showed the effectiveness of the proposed simulator.
In recent years, object-oriented programming has become the most influential programming paradigm. But teaching and learning object-oriented(OO) programming are both difficult. There has been debate about problems of ...
详细信息
In recent years, object-oriented programming has become the most influential programming paradigm. But teaching and learning object-oriented(OO) programming are both difficult. There has been debate about problems of teaching OO at university. In this paper, we focus the teaching OO issues on the student of Internet of Things(Io T) major. By analyzing the situation of major and students propose the specific strategies to the existing problems.
暂无评论