Visualizations are widely used in programming courses but the integration of these software tools into classrooms is not straightforward since there is a lack of information about the real benefits for learning and ho...
详细信息
Visualizations are widely used in programming courses but the integration of these software tools into classrooms is not straightforward since there is a lack of information about the real benefits for learning and how to combine them with traditional lectures. We describe in this paper an experiment of using dual instructional support materials (textual and visual programs) in the lab classes in a Java-based CS1 course. The approach consists of two phases: students work the class concept in a traditional programming environment and the object concept in a visual environment as Greenfoot. The experiment shows positive results in terms of concepts understanding in students with no prior programming experience. Therefore we also suggest this as a possible way for integrating visualizations to the course.
This article introduces object-oriented Intensional programming (OO-IP), a new hybrid language between object-oriented and Intensional programming Languages in the sense of the latest evolutions of Lucid. This new hyb...
详细信息
ISBN:
(纸本)9781424473366;9780769540757
This article introduces object-oriented Intensional programming (OO-IP), a new hybrid language between object-oriented and Intensional programming Languages in the sense of the latest evolutions of Lucid. This new hybrid language-called JOOIP for Java objectoriented Intensional programming-combines the essential characteristics of Lucid and Java, and introduces the notion of object streams which makes it is possible that each element in a Lucid stream to be an object with embedded intensional properties. Interestingly, this hybrid language also brings to Java objects the power to explicitly express and manipulate the notion of context, creating the novel concept of intensional object, i.e. objects whose evaluation is context-dependent, which are demonstrated to be translatable into standard objects.
High-performance parallel programs that efficiently utilize heterogeneous CPU+GPU accelerator systems require tuned coordination among multiple program units. However, using current programming frameworks such as CUDA...
详细信息
High-performance parallel programs that efficiently utilize heterogeneous CPU+GPU accelerator systems require tuned coordination among multiple program units. However, using current programming frameworks such as CUDA leads to tangled source code that combines code for the core computation with that for device and computational kernel management, data transfers between memory spaces, and various optimizations. In this paper, we propose a programming system based on the principles of Aspect-orientedprogramming, to un-clutter the code and to improve programmability of these heterogeneous parallel systems. Specifically, we use standard C++ to describe the core computations and aspects to encapsulate all other support parts. An aspect-weaving compiler is then used to combine these two pieces of code to generate a final program. The system modularizes concerns that are hard to manage using conventional programming frameworks such as CUDA, has a small impact on existing program structure as well as performance, and as a result, simplifies the programming of accelerator-based heterogeneous parallel systems. We also present an options pricing and an n-body simulation example program to demonstrate that programs written using this system can be successfully translated to CUDA programs for NVIDIA GPU hardware and to OpenCL programs for multicore CPUs with comparable performance. For both examples, the performance of the translated code achieved ~80% of the hand-coded CUDA programs.
A teaching path for Java programming is discussed in this paper. This path is specially designed for students who have already learned C language and begin to learn Java object oriented programming. Along this path, t...
详细信息
ISBN:
(纸本)9780769536002
A teaching path for Java programming is discussed in this paper. This path is specially designed for students who have already learned C language and begin to learn Java object oriented programming. Along this path, the concepts and principles of object oriented programming will be taught to students step by step. The students can learn the specifications of the Java language as well as the underlying ideas of object oriented programming. The students will gradually break through the obstacles between the procedure orientedprogramming and the object oriented programming.
This paper presents an object-oriented two-dimensional (2-D) overland flow model and its application in simulating flood flows over Ulus basin, located in the north of Turkey adjacent to the Black Sea. A new coding im...
详细信息
This paper presents an object-oriented two-dimensional (2-D) overland flow model and its application in simulating flood flows over Ulus basin, located in the north of Turkey adjacent to the Black Sea. A new coding implementation according to the class environment created in objectoriented C++ programming language is carried out in structuring and building the solver. The model is based on the Godunov type finite volume scheme on unstructured triangular meshes. A mass balance preserving wet/dry boundary solution algorithm is integrated in the numerical scheme to satisfy the positive-depth condition and minimize the numerical instability when treating the propagation of wave front in regions of dry bed. The balance between bed slope and flux terms is also preserved for still water conditions on irregular topography. The 2-D solver is verified by simulating selected dam break cases, where good agreement with measured data is achieved. For the simulation of flood flows in the Ulus basin, in general, the simulated outflow hydrograph is found to compare well with the recorded data. A selected inundation map that is extracted from the model results is also presented to show the water surface level in the Floodplain.
Many students in first year of computing majors find programming subject difficult to grasp. This paper describes an e-learning supportive system that is designed as learner-centered system to help novice computer pro...
详细信息
Many students in first year of computing majors find programming subject difficult to grasp. This paper describes an e-learning supportive system that is designed as learner-centered system to help novice computer programming students with object-oriented concepts. The system aims to improve students' satisfaction and motivation by using multiple instructional strategies. The paper presents the features of this system and discusses the empirical results of the effectiveness of using this system on students' satisfaction.
A novel optimisation algorithm is proposed to simultaneously perform an online dynamic optimisation and control of batch processes while optimising the batch operation time as well. This new method is employed to redu...
详细信息
We apply the principles of the intersection type discipline to the study of class-based objectoriented programs and;our work follows from a similar approach (in the context of Abadi and Cardelli's σ-object calcu...
详细信息
ISBN:
(纸本)9781605585406
We apply the principles of the intersection type discipline to the study of class-based objectoriented programs and;our work follows from a similar approach (in the context of Abadi and Cardelli's σ-object calculus) taken by van Bakel and de'Liguoro. We define an extension of Featherweight Java, pFJ, and present a predicate system which we show to be sound and expressive. We also show that our system provides a semantic underpinning for the objectoriented paradigm by generalising the concept of approximant from the Lambda Calculus and demonstrating an approximation result: all expressions to which we can assign a predicate have an approximant that satisfies the same predicate. Crucial to this result is the notion of predicate language, which associates a family of predicates with a class.
This article presents a complete guide from the linear static finite element theory to the software development of the educational finite element software for truss structure (EFESTS). First, linear static formulation...
详细信息
Emerging computer architectures intend to overcome limitations imposed by the power consumption, thermal issues and physics. Multicore processors and computing platforms where GPUs and CPUs are combined, are turning i...
详细信息
ISBN:
(纸本)9781605585475
Emerging computer architectures intend to overcome limitations imposed by the power consumption, thermal issues and physics. Multicore processors and computing platforms where GPUs and CPUs are combined, are turning into attractive computing platforms for developers. These architectures are characterized for breaking the trend in computing. They are single computing entities built on an aggregate of smaller and pseudo independent processing silicon dies. New trends in parallel computing are shifting towards the multicore arena. A new factor arises in such scenario, the concurrence. But concurrence is not parallelism. Parallel applications (and sequential ones, of course) that wish to take advantage of this new environment need to take this into consideration, or being completely rewritten in such a way that parallelism can be expressed by means of concurrence. In this changing scenario, ions may help to keep performance. This paper shows how the ions employed to model a problem, may play an important role from the performance and scalability perspectives. Copyright 2009 ACM.
暂无评论