programming comprises a multitude of involved skills and abilities. To assess these, an even larger multitude of tasks exists, ranging from very complex to basal levels. Recent demands call for the assessment of basal...
详细信息
ISBN:
(纸本)9781450363013
programming comprises a multitude of involved skills and abilities. To assess these, an even larger multitude of tasks exists, ranging from very complex to basal levels. Recent demands call for the assessment of basal skills, with the aim to figure out possible problems of learners more precisely. In order to read and interpret source code sufficiently, students must be able to recognize given concepts in a source code, e.g. to identify the objects and methods in an object-oriented program. Whether this skill relies solely on conceptual knowledge and the abilities in handling syntax is still unclear. This study gives evidence that isolated skills in these areas are outperformed by the interaction of both areas. We developed a test consisting of conceptual questions, fill-in-the-Java-keyword items and highlighting items. We investigated whether the knowledge about object orientation and the skills in handling Java syntax sufficiently predict the ability to recognize concepts in Java source code via a multiple linear regression. We found that the model with interaction term explains the data better compared to the null model, the isolated predictors or combined predictors without interaction term. This leads to the conclusion that even though programming consists of skills in certainly different areas, it is more important to interconnect these areas with each other than to teach them in an isolated manner.
Computer scientists are well-versed in dealing with data structures. The same cannot be said about their dual: codata. Even though codata is pervasive in category theory, universal algebra, and logic, the use of codat...
详细信息
ISBN:
(纸本)9783030171841;9783030171834
Computer scientists are well-versed in dealing with data structures. The same cannot be said about their dual: codata. Even though codata is pervasive in category theory, universal algebra, and logic, the use of codata for programming has been mainly relegated to representing infinite objects and processes. Our goal is to demonstrate the benefits of codata as a general-purpose programming abstraction independent of any specific language: eager or lazy, statically or dynamically typed, and functional or object-oriented. While codata is not featured in many programming languages today, we show how codata can be easily adopted and implemented by offering simple inter-compilation techniques between data and codata. We believe codata is a common ground between the functional and object-oriented paradigms;ultimately, we hope to utilize the Curry-Howard isomorphism to further bridge the gap.
We have developed and experimented with an approach to teach low-level Java concurrency abstractions in our first required course for CS majors, which assumes knowledge of procedural programming. The driving problems ...
详细信息
ISBN:
(纸本)9781728148946
We have developed and experimented with an approach to teach low-level Java concurrency abstractions in our first required course for CS majors, which assumes knowledge of procedural programming. The driving problems are visualized simulations of multiple physical objects in motion that may (a) be confined to a shared space and (b) coordinate with each other. Such simulations do not require any domain-specific knowledge such as sorting and image processing for driving problems and exercises, and their implementation demonstrates the benefits of object-based programming. They allow focus on both the performance and programmability benefits of concurrency, provide analogies for an abstraction-independent explanation of concurrency concepts, and can be used to incrementally motivate all low-level concurrency abstractions and visualize the effect of using and not using these abstractions. Layered simulation-based worked examples illustrating the abstractions were presented and easily understood in multiple offerings of a course that implemented this approach. Students implemented non-trivial assignments based on these abstractions, even when they were optional, did not face major obstacles because of visual error feedback, and were excited by concurrency as they felt it empowered them to implement arbitrary applications early.
Machine learning techniques have become increasingly common due to the extension of their application domains and because they can improve their performance when exposed to new data. Several methods have been proposed...
详细信息
ISBN:
(纸本)9781450372374
Machine learning techniques have become increasingly common due to the extension of their application domains and because they can improve their performance when exposed to new data. Several methods have been proposed to address problems of the area, bringing the challenge of comparing different methods to find the one that best solves a problem. Frameworks and libraries focused on learning algorithms can reduce this effort. This paper describes the UFJF-MLTK, an object-oriented framework that helps to choose between different methods, in the development of new algorithms through the instantiation of a C++ class architecture that covers various types of learning algorithms and also helps in teaching the subject. We discuss the problems faced in the project architecture, the components of the framework, the algorithms that currently compose it, how it was documented and examples of its instantiation.
Programmable accelerators aim to provide the flexibility of traditional CPUs, with greatly improved performance and energy-efficiency. Arguably, the greatest impediment to the widespread adoption of programmable accel...
详细信息
ISBN:
(纸本)9781728136134
Programmable accelerators aim to provide the flexibility of traditional CPUs, with greatly improved performance and energy-efficiency. Arguably, the greatest impediment to the widespread adoption of programmable accelerators, like GPUs, is the software engineering overhead involved in getting the code to execute correctly. To help combat this issue, GPGPU computing has matured from its origins as a collection of graphics API hacks to include advanced programming features, including object-oriented programming. This level of support, in combination with a shared virtual memory space between the CPU and GPU, make it possible for rich object-oriented frameworks to execute on GPUs with little porting effort. However, executing this type of flexible code on a massively parallel accelerator introduces overhead that has not been well studied. In this poster, we analyze the direct overhead of virtual function calls on contemporary GPUs. Using the latest GPU architectures and compilers, this poster performs the analysis of how virtual function calls are implemented on GPUs. We quantify the direct overhead incurred from contemporary implementations and show that the massively multithreaded nature of GPUs creates deficiencies and opportunities not found in CPU implementations of virtual function calls.
This research paper presents Imikode, a virtual reality (VR)-based learning game to support the teaching and learning of object-oriented programming (OOP) concepts in computing education. The system was implemented us...
详细信息
ISBN:
(纸本)9781450377157
This research paper presents Imikode, a virtual reality (VR)-based learning game to support the teaching and learning of object-oriented programming (OOP) concepts in computing education. The system was implemented using Google Cardboard SDK and works with any Cardboard compatible headset. The teacher can use Imikode to introduce OOP class in an immersive and engaging way. This early prototype provides basic features to help introduce OOP concepts. We aim at extending it using Artificial Intelligence (AI), by adding a conversational agent able to parse erroneous statements and provide adequate instructions on how to fix them.
The method of image transformation based on fractal geometry is developed. The method is based on building an image based on the Hilbert curve. The image is based on the principle of conformity of the contrast of the ...
详细信息
The method of image transformation based on fractal geometry is developed. The method is based on building an image based on the Hilbert curve. The image is based on the principle of conformity of the contrast of the image of the filling density of the plane with lines. The mathematical substantiation of the method is given. The corresponding software is built with the use of postscript language. The work of the method is illustrated by figures. The method is used for images protection.
We address the problem of dynamically checking if an instance of class S is also an instance of class T. Researchers have designed various strategies to perform constant-time subtype tests. Yet, well-known production ...
详细信息
ISBN:
(纸本)9781450369879
We address the problem of dynamically checking if an instance of class S is also an instance of class T. Researchers have designed various strategies to perform constant-time subtype tests. Yet, well-known production implementations degrade to linear search in the worst case, in order to achieve other goals such as constant space and/or efficient dynamic class loading. The fast path is usually optimized for subtype tests that succeed. However, in workloads where dynamic type tests are common, such as Scala's pattern matching and LLVM compiler passes, we observe that 74%-93% of dynamic subtype tests return a negative result. We thus propose a scheme for fail-fast dynamic subtype checking. In the compiled version of each class, we store a fixed-width bloom filter, which combines randomly generated type identifiers for all its transitive supertypes. At run-time, the bloom filters enable fast refutation of dynamic subtype tests with high probability. If such a refutation cannot be made, the scheme falls back to conventional techniques. This scheme works with multiple inheritance, separate compilation, and dynamic class loading. A prototype implementation of fail-fasts in the JVM provides 1.44x-2.74x speedup over HotSpot's native instance of, on micro-benchmarks where worst-case behavior is likely.
Mapping the logical software architecture of a vehicle to a technical solution is not a straightforward task. A particular challenge is communication: software components developed by different teams and deployed acro...
详细信息
ISBN:
(纸本)9781728105604
Mapping the logical software architecture of a vehicle to a technical solution is not a straightforward task. A particular challenge is communication: software components developed by different teams and deployed across the E/E architecture need to be able to exchange data. Middleware solutions have been developed to enable low coupling of distributed logical software components. Building a distributed architecture on a middleware solution is mostly accomplished by encapsulating logical components into middleware wrappers. This is not only time-consuming, but also requires platform specific understanding, and results in a multitude of architectural variants tailored for particular set-ups. For instance, lengthy validation processes ensuring functional correctness and safety require simulations of intelligent vehicle systems in different simulators, environments, and on different abstraction levels. This leads to the necessity of individual integration schemes for both simulation and deployment. We propose a component-based modeling approach separating platform agnostic logical models from middleware aspects. Therefore, the model compiler is instrumented with middleware tags related to the elements of the logical model. Generating the required middleware code automatically, we aim at better component re-usability minimizing the need for hand-crafted glue-code for interprocess and simulator integration.
This work addresses the development of an objectoriented time-domain simulation framework for Remotely Operated Vehicles (ROVs). Kinematics, dynamics, and control for ROVs are first presented using Newtonian mechanic...
详细信息
ISBN:
(纸本)9781538669624
This work addresses the development of an objectoriented time-domain simulation framework for Remotely Operated Vehicles (ROVs). Kinematics, dynamics, and control for ROVs are first presented using Newtonian mechanics' equations which account for rigid-body motion, hydrodynamics, actuator, control, and cable effects;thrust allocation and control algorithms are presented as important components of the feedback control schemes. Then, time domain-simulation is conceptualized under the idea of object-oriented programming and the proposed framework is presented as a useful tool to organize and configure different simulation scenarios in which the future behavior of the vehicle's state is predicted from known initial conditions. We later describe the simulation model of visOR3, an experimental, observation-class ROV developed in Colombia during the late 2000's. Results are shown for an open-loop with thrust allocation scenario, and show that the tailor-made simulation framework is useful for gaining insight into the ROV's maneuvering attributes. This constitutes a contribution for design and operation phases of underwater technologies such as ROV systems.
暂无评论