in this article, an ongoing research project conducted in the Computer Science department of the University of Vigo is described. Its main objective is to serve as a vehicle for learning object-oriented programming. A...
详细信息
in this article, an ongoing research project conducted in the Computer Science department of the University of Vigo is described. Its main objective is to serve as a vehicle for learning object-oriented programming. Although it is still in development, it has been successfully employed in a number of different courses. Its main characteristics are (a) support of prototype-based object orientation, which is a model of object orientation that actually wraps the class-based model;(b) future support for object persistence, which simplifies to the minimum all input/output issues;and (c) support of multiple platforms, through a portable bytecode. We think that the combination of all of these possibilities, the obtained results in its first use, and the further development of this project will lead to an interesting, useful tool which would be recommended for object-oriented teaching. The simplicity of the prototype-based model of object orientation, the dramatic decrease in complexity for programs due to the direct support of persistence, and all facilities naturally provided by the feature of multiplatform support makes it the ideal tool for learning, allowing the educator to stress on the actually important issues of object-oriented programming. (c) 2006 Wiley Periodicals, Inc.
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.
Computing with words (CWW) techniques have been shown to be useful in the management of imperfect information. From the programmer's standpoint, new tools are necessary toease the use of these techniques within cu...
详细信息
Computing with words (CWW) techniques have been shown to be useful in the management of imperfect information. From the programmer's standpoint, new tools are necessary toease the use of these techniques within current programming platforms. This paper presents a step in this direction by describing a general framework that supports the implementation of applications dealing with fuzzy objects. We pay special attention to the study of the object comparision problem by offering both a theoretical analysis and a simple and transparent way to use our theoretical results in practice.
We propose an object-oriented programming library system for Science in a similar structure of NET framework. We call the system Science Code .Net. Presenting rules of thumb, we show how to enhance readability of Scie...
详细信息
We propose an object-oriented programming library system for Science in a similar structure of NET framework. We call the system Science Code .Net. Presenting rules of thumb, we show how to enhance readability of Science Code .Net. As an initial progress, several namespaces have been constructed. We explain the structure of classes in each namespace. As a challenge to the programming community, a perspective view of Science Code .Net is discussed. (C) 2008 Elsevier B.V. All rights reserved.
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.
This paper examines long-term optimal operation using dynamic programming for a large hydropower system of 10 reservoirs in Northeast China. Besides considering flow and hydraulic head, the optimization explicitly inc...
详细信息
This paper examines long-term optimal operation using dynamic programming for a large hydropower system of 10 reservoirs in Northeast China. Besides considering flow and hydraulic head, the optimization explicitly includes time-varying electricity market prices to maximize benefit. Two techniques are used to reduce the 'curse of dimensionality' of dynamic programming with many reservoirs. Discrete differential dynamic programming (DDDP) reduces the search space and computer memory needed. object-oriented programming (OOP) and the ability to dynamically allocate and release memory with the C++ language greatly reduces the cumulative effect of computer memory for solving multi-dimensional dynamic programming models. The case study shows that the model can reduce the 'curse of dimensionality' and achieve satisfactory results.
This work addresses the time history analysis of structures subjected to dynamic loads using high performance computing environments. Structural mechanics, parallel computing, and object-oriented programming methodolo...
详细信息
This work addresses the time history analysis of structures subjected to dynamic loads using high performance computing environments. Structural mechanics, parallel computing, and object-oriented programming methodologies are integrated to design and implement frameworks for parallel and sequential transient finite element analysis (TFE++ and PTFE++). The object-oriented approach is employed to facilitate extensibility, reusability, maintainability and simplicity of the resulting software. Parallel processing concepts and algorithms are used in the design of PTFE++. An application has been developed to demonstrate the developed frameworks. It has been found that PTFE++ provides an efficient way to analyze large structural systems. (C) 2002 Elsevier Science Ltd. All rights reserved.
Many object-based and object-oriented programming languages have no way of directly preventing structural defects due to the sharing of objects. Languages such as C++, Smalltalk and Eiffel fall into the category of un...
详细信息
Many object-based and object-oriented programming languages have no way of directly preventing structural defects due to the sharing of objects. Languages such as C++, Smalltalk and Eiffel fall into the category of unsafe object languages where these defects can and do occur. This error can be prevented by use of object languages supporting safe, strong typing structures. Examples falling into this category are Ada83 and Ada95 with their limited private, strong typing and unsharable constructs. The paper shows how unsafe object sharing is prevented using these constructs. Applications where safety and security are important should be implemented using languages in this latter category.
This paper presents a framework which implements the common software functionalities. By using this framework, software designers focus on their activity on developing efficient data structures and algorithms. The log...
详细信息
This paper presents a framework which implements the common software functionalities. By using this framework, software designers focus on their activity on developing efficient data structures and algorithms. The logic programming introduced in this framework is an efficient technology for object Constraint Language expressions. Errors made by the user when modeling a device are detected and prevented by the modeling guide.
This note explains why general multiple inheritance is contra-intuitive in object-oriented programming. Firstly, we show some problems which occur when using general multiple inheritance. Secondly, we analyze the purp...
详细信息
This note explains why general multiple inheritance is contra-intuitive in object-oriented programming. Firstly, we show some problems which occur when using general multiple inheritance. Secondly, we analyze the purposes for which multiple inheritance is used in large and complex software systems according to our experience. This provides arguments for our rejection of general multiple inheritance. Instead of it, a more specific multiple inheritance scheme called mixin should be provided. On the one hand, this would secure that the programmer's intuition and the behaviour of the inheritance algorithm always agree and, on the other hand, we obtain the same performance the single inheritance languages do.
暂无评论