An advantage of implementation of object-oriented programming principles in numerical simulation in hard X-ray optics was considered. The suggested approach was demonstrated on the example of two-beam X-ray interferom...
详细信息
An advantage of implementation of object-oriented programming principles in numerical simulation in hard X-ray optics was considered. The suggested approach was demonstrated on the example of two-beam X-ray interferometer with the refracting prism. It was shown that the proposed coding technique significantly simplifies the main program code by reducing its size, as well as making it more readable and easily modifiable.
An introduction to both automatic differentiation and object-oriented programming can enrich a numerical analysis course that typically incorporates numerical differentiation and basic MATLAB computation. Automatic di...
详细信息
An introduction to both automatic differentiation and object-oriented programming can enrich a numerical analysis course that typically incorporates numerical differentiation and basic MATLAB computation. Automatic differentiation consists of exact algorithms on floating-point arguments. This implementation overloads standard elementary operators and functions in MATLAB with a derivative rule in addition to the function value;for example, sin u will also compute (cos u) * u', w here u and u' are numerical values. These methods are mostly one-line programs that operate on a class of value-and-derivative objects, providing a simple example of object-oriented programming in MATLAB using the new(as of release 2008a) class definition structure. The resulting powerful tool computes derivative values and multivariable gradients, and is applied to Newton's method for root-finding in both single and multivariable settings. To compute higher-order derivatives of a single-variable function, another class of series objects keeps Taylor polynomial coefficients up to some order. Overloading multiplication on series objects is a combination (discrete convolution) of coefficients. This idea leads to algorithms for other operations and functions on series objects. A survey of more advanced topics in automatic differentiation includes an introduction to the reverse mode (our implementation is forward mode) and considerations in arbitrary-order multivariable series computation.
In this paper, we describe the results of a thorough analysis of 44 K12 computer science curricula and standards documents conducted as part of an ongoing research project aiming at the development of a competency str...
详细信息
ISBN:
(纸本)9783319546872;9783319546865
In this paper, we describe the results of a thorough analysis of 44 K12 computer science curricula and standards documents conducted as part of an ongoing research project aiming at the development of a competency structure model and measurement instruments in the field of object-oriented programming (OOP). The curricula analysis builds upon a first model draft derived theoretically from a literature analysis in prior work. The model draft is 4-dimensional and consists of the four competency dimensions (1) OOP knowledge and skills, (2) Mastering representation, (3) Cognitive processes and (4) Metacognitive processes. We used these dimensions and the belonging sub-dimensions as a coding scheme and coded competency facets concerning OOP contained in the curricula and standards documents using the method of qualitative content analysis according to Mayring. This way, we could firstly successfully prove the curricular validity of our model draft and secondly, after a step of paraphrasing the identified competency facets, use these descriptions to initiate the process of item development to operationalize our competency model draft.
Maintaining consistency between data throughout a system using scattered, imperative code fragments is challenging. Some mechanisms address this challenge by making data dependencies explicit. Among these mechanisms a...
详细信息
ISBN:
(纸本)9781450340335
Maintaining consistency between data throughout a system using scattered, imperative code fragments is challenging. Some mechanisms address this challenge by making data dependencies explicit. Among these mechanisms are reactive collections, which define data dependencies for collections of objects, and object queries, which allow developers to query their program for a subset of objects. However, on their own, both of these mechanisms are limited. Reactive collections require an initial collection to apply reactive operations to and object queries do not update its result as the system changes. Using these two mechanisms in conjunction allows each to mitigate the disadvantage of the other. To do so, object queries need to respond to state changes of the system. In this paper, we propose a combination of both mechanisms, called reactive object queries. Reactive object queries allow the developer to declaratively select all objects in a program that match a particular predicate, creating a view. Additionally, views can be composed of other views using reactive operations. All views are automatically updated when the program state changes. To better integrate with existing imperative systems, we provide fine-grained events signaling view updates. We implemented the proposed concepts in JavaScript. Our initial experience with example applications shows that the combined concept eases the integration of reactive mechanisms with object-oriented environments by avoiding scattered update code.
Most code-based quality measurement approaches are based, at least partially, on values of multiple source code metrics. A class will often be classified as being of poor quality if the values of its metrics are above...
详细信息
ISBN:
(纸本)9781509048717
Most code-based quality measurement approaches are based, at least partially, on values of multiple source code metrics. A class will often be classified as being of poor quality if the values of its metrics are above given thresholds, which are different from one metric to another. The metrics thresholds are calculated using various techniques. In this paper, we investigated two specific techniques: ROC curves and Alves rankings. These techniques are supposed to give metrics thresholds which are practical for code quality measurements or even for fault-proneness prediction. However, Alves Rankings technique has not been validated as being a good choice for fault-proneness prediction, and ROC curves only partially on few datasets. Fault-proneness prediction is an important field of software engineering, as it can be used by developers and testers as a test effort indication to prioritize tests. This will allow a better allocation of resources, reducing therefore testing time and costs, and an improvement of the effectiveness of testing by testing more intensively the components that are likely more fault-prone. In this paper, we wanted to compare empirically the selected threshold calculation methods used as part of fault-proneness prediction techniques. We also used a machine learning technique (Bayes Network) as a baseline for comparison. Thresholds have been calculated for different object-oriented metrics using four different datasets obtained from the PROMISE Repository and another one based on the Eclipse project.
Reasoning about object-oriented applications requires developers to answer contextual questions about their domain objects. Tailored development tools can support developers in this activity by providing relevant doma...
详细信息
ISBN:
(纸本)9781450344371
Reasoning about object-oriented applications requires developers to answer contextual questions about their domain objects. Tailored development tools can support developers in this activity by providing relevant domain-specific information. Nonetheless, a high effort for extending development tools to handle domain-specific objects, together with diverging mechanisms for creating, sharing and discovering extensions, discourage developers to adapt their tools. To address this, we propose to enable contextual behavior in development tools by allowing domain objects to decide how they are handled in development tools. We show that combining this idea with mechanisms for specifying extensions using internal DSLs can significantly reduce the cost of tailoring development tools to specific domains.
Lazy allocation strategy allows the memory management system to defer the space allocation action of objects until they are being accessed. This paper investigates the potential benefits of a lazy allocator for Java a...
详细信息
ISBN:
(纸本)9781509022397
Lazy allocation strategy allows the memory management system to defer the space allocation action of objects until they are being accessed. This paper investigates the potential benefits of a lazy allocator for Java applications. A heap tracing tool is implemented by instrumenting an existing Java virtual machine HotSpot, which records useful object manipulating events at runtime. By profiling and analyzing a large number of benchmarks, we show the potential dynamic memory management optimization opportunity in Java programs. We also designed a simulation system to demonstrate the actual effects of a lazy allocator.
Answer Set programming (ASP) is a well-established declarative problem solving paradigm which became widely used in AI and recognized as a powerful tool for knowledge representation and reasoning (KRR), especially for...
详细信息
ISBN:
(纸本)9781450341486
Answer Set programming (ASP) is a well-established declarative problem solving paradigm which became widely used in AI and recognized as a powerful tool for knowledge representation and reasoning (KRR), especially for its high expressiveness and the ability to deal also with incomplete knowledge. Recently, thanks to the availability of a number of robust and efficient implementations, ASP has been increasingly employed in a number of different domains, and used for the development of industrial-level and enterprise applications. This made clear the need for proper development tools and interoperability mechanisms for easing interaction and integration with external systems in the widest range of real-world scenarios, including mobile applications and educational contexts. In this work we present a framework for integrating the KRR capabilities of ASP into generic applications. We show the use of the framework by illustrating proper specializations for some relevant ASP systems over different platforms, including the mobile setting;furthermore, the potential of the framework for educational purposes is illustrated by means of the development of several ASP-based applications.
The purpose of this study is to demonstrate a teaching methodology in a general programming course for the first-year non-IT students at the Department of Informatics of Tallinn University of Technology, Estonia. The ...
详细信息
ISBN:
(纸本)9781467386333
The purpose of this study is to demonstrate a teaching methodology in a general programming course for the first-year non-IT students at the Department of Informatics of Tallinn University of Technology, Estonia. The authors suggest some solutions for achieving better results in programming issues, which are usually sophisticated for the beginners in this field.
This paper presents an approach of static and dynamic visualizations synchronized along with source code in a web-based programming environment, JavelinaCode. Using JavelinaCode, student programmers can write Java pro...
详细信息
ISBN:
(纸本)9781509014286
This paper presents an approach of static and dynamic visualizations synchronized along with source code in a web-based programming environment, JavelinaCode. Using JavelinaCode, student programmers can write Java programs directly in a frontend web browser without any software or plug-in installation. They are provided with a view of the static state of a Java program in UML class diagrams and the dynamic run-time state of the program by stepping forwards and backwards through program execution. A case study has revealed that our approach is useful, in particular, to trace and detect an object flow anomaly caused by method overriding and polymorphism. A preliminary comparison test result also has shown that through our web-based platform-independent environment, student programmers are freed from concern with continuous version changes and evolutions of the Java language, plug-ins, and operating systems.
暂无评论