The difficulties present in the teaching object-oriented programming and Intelligent Tutoring Systems are exposed in this article. The usefulness of Intelligent Tutoring Systems taking into account technical data mini...
详细信息
The difficulties present in the teaching object-oriented programming and Intelligent Tutoring Systems are exposed in this article. The usefulness of Intelligent Tutoring Systems taking into account technical data mining, among which include artificial neural networks, is explained. The author proposes a model, using data mining techniques, to extract and to analyze information from student interactions inside the platform in the teaching-learning process. The model takes into account the predominant types of intelligence in each student, in order to achieve more individualized solutions. An experiment was employed in order to measure system effectiveness, considering decrease in wrong attempts doing an exercise as a success criterion. The results show a positive impact in solving problems, improving the learning process.
Parallel and Distributed Computing (PDC) was traditionally viewed as an advanced subject reserved for elective graduate courses. The last decade has seen two areas with rapid growth, whose synergy is demanding new ski...
详细信息
Parallel and Distributed Computing (PDC) was traditionally viewed as an advanced subject reserved for elective graduate courses. The last decade has seen two areas with rapid growth, whose synergy is demanding new skills for software engineers in a modem multi-core world. The first has been society's increasing demand for software engineering solutions, evident in the integral role that software plays in daily life. Unlike traditional PDC applications in the scientific and engineering domains, modem software applications are interacting directly with millions of users on mainstream laptops, smartphones and tablets. The second trend is that of multi-core processors powering such devices, which is further fueling the potential of software applications. This paper proposes a Modern Parallel programming Framework that recognizes that successful software engineering in this domain involves a combination of hard skills and soft skills. A course dedicated to this goal is presented and evaluated, incorporating a research-infused, problem-based and active learning approach. (C) 2018 Elsevier Inc. All rights reserved.
A number of high-level languages and libraries have been proposed that offer novel and simple to use abstractions for concurrent, asynchronous, and distributed programming. The execution models that realise them, howe...
详细信息
A number of high-level languages and libraries have been proposed that offer novel and simple to use abstractions for concurrent, asynchronous, and distributed programming. The execution models that realise them, however, often change over time-whether to improve performance, or to extend them to new language features-potentially affecting behavioural and safety properties of existing programs. This is exemplified by Scoop, a message-passing approach to concurrent object-oriented programming that has seen multiple changes proposed and implemented, with demonstrable consequences for an idiomatic usage of its core abstraction. We propose a semantics comparison workbench for Scoop with fully and semi-automatic tools for analysing and comparing the state spaces of programs with respect to different execution models or semantics. We demonstrate its use in checking the consistency of properties across semantics by applying it to a set of representative programs, and highlighting a deadlock-related discrepancy between the principal execution models of Scoop. Furthermore, we demonstrate the extensibility of the workbench by generalising the formalisation of an execution model to support recently proposed extensions for distributed programming. Our workbench is based on a modular and parameterisable graph transformation semantics implemented in the Groove tool. We discuss how graph transformations are leveraged to atomically model intricate language abstractions, how the visual yet algebraic nature of the model can be used to ascertain soundness, and highlight how the approach could be applied to similar languages.
Context: Nowadays, fault-proneness prediction is an important field of software engineering. It can be used by developers and testers to prioritize tests. This would allow a better allocation of resources, reducing te...
详细信息
Context: Nowadays, fault-proneness prediction is an important field of software engineering. It can be used by developers and testers to prioritize tests. This would allow a better allocation of resources, reducing testing time and costs, and improving the effectiveness of software testing. Non-supervised fault-proneness prediction models, especially thresholds-based models, can easily be automated and give valuable insights to developers and testers on the classification performed. objective: In this paper, we investigated three thresholds calculation techniques that can be used for fault proneness prediction: ROC Curves, VARL (Value of an Acceptable Risk Level) and Alves rankings. We compared the performance of these techniques with the performance of four machine learning and two clustering based models. Method: Threshold values were calculated on a total of twelve different public datasets: eleven from the PROMISE Repository and another based on the Eclipse project. Thresholds-based models were then constructed using each thresholds calculation technique investigated. For comparison, results were also computed for supervised machine learning and clustering based models. Inter-dataset experimentation between different systems and versions of a same system was performed. Results: Results show that ROC Curves is the best performing method among the three thresholds calculation methods investigated, closely followed by Alves Rankings. VARL method didn't give valuable results for most of the datasets investigated and was easily outperformed by the two other methods. Results also show that thresholds-based models using ROC Curves outperformed machine learning and clustering based models. Conclusion: The best of the three thresholds calculation techniques for fault-proneness prediction is ROC Curves, but Alves Rankings is a good choice too. In fact, the advantage of Alves Rankings over ROC Curves technique is that it is completely unsupervised and can therefore give pe
The results of a systematic literature review conducted for variability modelling in software component models are analysed and presented here. A well-planned protocol guided the screening of 3230 papers that resulted...
详细信息
The results of a systematic literature review conducted for variability modelling in software component models are analysed and presented here. A well-planned protocol guided the screening of 3230 papers that resulted in the identification of 55 papers. Reviewing these papers, 23 of them were considered as primary studies related to our research questions. A comparison framework is introduced to further understand, assess, and compare those selected papers. Observations about the important aspects of component models that support the variability capability are summarised. Prominent trends and approaches are discussed along with a comparative analysis of the component models. Only a few component models were found to be explicitly accommodating variability concerns. The identified variability modelling problems require further research for attaining better reuse capabilities.
Static typechecking is an important feature of many standard programming languages. However, static typing focuses on data rather than communication, and therefore does not help programmers correctly implement communi...
详细信息
Static typechecking is an important feature of many standard programming languages. However, static typing focuses on data rather than communication, and therefore does not help programmers correctly implement communication protocols in distributed systems. The theory of session types provides a basis for tackling this problem;we use it to develop two tools that support static typechecking of communication protocols in Java. The first tool, Mungo, extends Java with typestate definitions, which allow classes to be associated with state machines defining permitted sequences of method calls: for example, communication methods. The second tool, StMungo, takes a session type describing a communication protocol, and generates a typestate specification of the permitted sequences of messages in the protocol. Protocol implementations can be validated by Mungo against their typestate definitions and then compiled with a standard Java compiler. The result is a toolchain for static typechecking of communication protocols in Java. We formalise and prove soundness of the typestate inference system used by Mungo, and show that our toolchain can be used to typecheck a client for the standard Simple Mail Transfer Protocol (SMTP). (C) 2017 The Author(s). Published by Elsevier B.V.
Despite the large number of applications with micropolar models, the aspects of their implementation have been rarely addressed in the literature. In the present paper, a strategy for the computational modeling of mic...
详细信息
Despite the large number of applications with micropolar models, the aspects of their implementation have been rarely addressed in the literature. In the present paper, a strategy for the computational modeling of micropolar media with elasto-plasticity and elastic degradation is investigated. The proposed strategy is based on the object-oriented Paradigm (OOP) and on the use of tensor objects. The presence of tensor objects inside the code allows to obtain a constitutive models framework that, with respect to existent implementations, is independent on both the adopted analysis model and numerical method. The OOP, with its properties of abstraction, inheritance, and polymorphism, leads to a framework highly modular and easy to expand. The theoretical basis is a compact tensorial representation for the micropolar equations that makes them formally identical to the ones of the classic continuum theory. This compatibility has been here extended to their computational expressions, making possible to use the same code structure for both the continuum models, taking advantage of existing implementations of classic constitutive models.
The commercially available automation systems are quite expensive. Additionally, there are license fees for the simulation and automation software. In this article a challenging automation task, namely balancing a bal...
详细信息
The commercially available automation systems are quite expensive. Additionally, there are license fees for the simulation and automation software. In this article a challenging automation task, namely balancing a ball on a spinning wheel, is solved solely by open source software and inexpensive hardware. The single-board-computer Raspberry PI, the open hardware automation system BIOE and open source software are employed.
The efforts around the world - CS4All in the U.S. or Computing At School in Great Britain - show that computing literacy is seen as important. One important part of computer science education deals with learning progr...
详细信息
The efforts around the world - CS4All in the U.S. or Computing At School in Great Britain - show that computing literacy is seen as important. One important part of computer science education deals with learning programming. So, object orientation should be in focus. But what is object orientation? Several different definitions are presented, and a definition of object orientation by its fundamental concepts is introduced. Furthermore, several educational "paradigms" are discussed. Additionally, a choice of object-oriented programming languages is presented. After all that theoretical background, some exemplary implementations of object orientation in national (German) and international curricula are shown. All in all, the article provides a broad overview of the topic of object-oriented programming in computer science education.
New non-volatile memory (NVM) technologies enable direct, durable storage of data in an application's heap. Durable, randomly accessible memory facilitates the construction of applications that do not lose data at...
详细信息
New non-volatile memory (NVM) technologies enable direct, durable storage of data in an application's heap. Durable, randomly accessible memory facilitates the construction of applications that do not lose data at system shutdown or power failure. Existing NVM programming frameworks provide mechanisms to consistently capture a running application's state. They do not, however, fully support object-oriented languages or ensure that the persistent heap is consistent with the environment when the application is restarted. In this paper, we propose a new NVM language extension and runtime system that supports object-oriented NVM programming and avoids the pitfalls of prior approaches. At the heart of our technique is object reconstruction, which transparently restores and reconstructs a persistent object's state during program restart. It is implemented in NVMReconstruct ion, a Clang/LLVM extension and runtime library that provides: (i) transient fields in persistent objects, (ii) support for virtual functions and function pointers, (iii) direct representation of persistent pointers as virtual addresses, and (iv) type-specific reconstruction of a persistent object during program restart. In addition, NVMReconstruction supports updating an application's code, even if this causes objects to expand, by providing object migration. NVMReconstruction also can compact the persistent heap to reduce fragmentation. In experiments, we demonstrate the versatility and usability of object reconstruction and its low runtime performance cost.
暂无评论