Software development, database management and parallel computing are deeply integrated and related technologies. Both types of technology are rapidly evolving and becoming more sophisticated, with resulting subtleties...
详细信息
Software development, database management and parallel computing are deeply integrated and related technologies. Both types of technology are rapidly evolving and becoming more sophisticated, with resulting subtleties of their interaction learned directly in the workplace. Academic research focusing on developing programs or approaches to professional training in these areas in universities is relatively scarce. This study provides a theoretical background and practical approach to building parallel database programming skills by introducing software developers' best practices. The piloting of the proposed approach was attended by 64 third-year IT students in the experimental group, who were involved in 3-month training, with their learning pathway depending on the challenges they faced. Tasks were assigned and checked by instructors. The findings suggested that this approach can help to improve technology proficiency among students in accordance with the recognized professional competence level rather quickly. No one achieved such a result in the control group. The Student's t-test showed that the differences in scores between the control and experimental groups were statistically significant. Essentially, the research findings can be used to teach parallel databases and to strengthen ties with graduates' potential employers in the corresponding academic programs.
Stream processing applications have seen an increasing demand with the raised availability of sensors, IoT devices, and user data. Modern systems can generate millions of data items per day that require to be processe...
详细信息
Stream processing applications have seen an increasing demand with the raised availability of sensors, IoT devices, and user data. Modern systems can generate millions of data items per day that require to be processed timely. To deal with this demand, application programmers must consider parallelism to exploit the maximum performance of the underlying hardware resources. In this work, we introduce improvements to stream processing applications by exploiting fine-grained data parallelism (via Map and MapReduce) inside coarse-grained stream parallelism stages. The improvements are including techniques for identifying data parallelism in sequential codes, a new language, semantic analysis, and a set of definition and transformation rules to perform source-to-source parallel code generation. Moreover, we investigate the feasibility of employing higher-level programming abstractions to support the proposed optimizations. For that, we elect SPar programming model as a use case, and extend it by adding two new attributes to its language and implementing our optimizations as a new algorithm in the SPar compiler. We conduct a set of experiments in representative stream processing and data-parallel applications. The results showed that our new compiler algorithm is efficient and that performance improved by up to 108.4x in data-parallel applications. Furthermore, experiments evaluating stream processing applications towards the composition of stream and data parallelism revealed new insights. The results showed that such composition may improve latencies by up to an order of magnitude. Also, it enables programmers to exploit different degrees of stream and data parallelism to accomplish a balance between throughput and latency according to their necessity.
An expert system on a personal computer has been developed for diagnosis of malfunction of the fast experimental reactor “JOYO”. Prolog-KABA is used as the language. The system diagnoses the event which causes scram...
详细信息
The Online Judge (OJ) system solves many teaching problems of programming course design in traditional teaching modes and enhances teaching quality and learning effectiveness. Most of the OJ systems rate students by c...
详细信息
The Online Judge (OJ) system solves many teaching problems of programming course design in traditional teaching modes and enhances teaching quality and learning effectiveness. Most of the OJ systems rate students by compiling and executing their code and then comparing the output with the standard output. However, program code content and students' ability to program structure cannot be accessed with such design. To improve this shortcoming, we have developed an "automatic structure assessment module" and added it to the existing system. The module functions to check the student program structure, enabling the OJ system to measure code quality. Such extended functionalities enable the OJ system to produce more accurate assessments of programming learning performance. Furthermore, how the program structure can be described in the program structure specification is another challenge. Thus, we have also developed a visual program structure description editor. The teacher can handily specify the program structure specification required by the program structure according to the teaching topic so that the OJ system can execute program structure checking. The functionalities of automatic program structure assessment combined with the visual program structure description editor can be used to rapidly generate many examinations and practice questions that require program structure evaluation, and thus truly achieve the efficiency of automatic program structure assessment as well as enhancing students' quality of program structure. Finally, in the six-week teaching experiment, there are a total of 61 valid samples. Using our structure comparison system can effectively improve the learning effectiveness of low-score group students in programming.
JavaScript Web applications are a common product in industry. As with most applica-tions, Web applications can acquire software flaws (known as bugs), whose symptoms are seen during the development stage and, even wor...
详细信息
JavaScript Web applications are a common product in industry. As with most applica-tions, Web applications can acquire software flaws (known as bugs), whose symptoms are seen during the development stage and, even worse, in production. The use of debuggers is beneficial for detecting bugs. Unfortunately, most JavaScript debuggers (1) only support the "step into/through"feature in an execution program to detect a bug, and (2) do not allow developers to go back-in-time at the application execution to take actions to detect the bug accurately. For example, the second limitation does not allow developers to modify the value of a variable to fix a bug while the application is running or test if the same bug is triggered with other values of that variable. Using concepts such as continuations and static analysis, this article presents a usable debugger for JavaScript, named DeloreanJS, which enables developers to go back-in-time in different execution points and resume the execution of a Web application to improve the understanding of a bug, or even experiment with hypothetical scenarios around the bug. Using an online and available version, we illustrate the benefits of DeloreanJS through five examples of bugs in JavaScript. Although DeloreanJS is developed for JavaScript, a dynamic prototype-based object model with side effects (mutable variables), we discuss our proposal with the state-of-art/practice of debuggers in terms of features. For example, modern browsers like Mozilla Firefox include a debugger in their distribution that only support for the breakpoint feature. However DeloreanJS uses a graphical user interface that considers back-in-time features. The aim of this study is to evaluate and compare the usability of DeloreanJS and Mozilla Firefox's debugger using the system usability scale approach. We requested 30 undergraduate students from two computer science programs to solve five tasks. Among the findings, we highlight two results. First, we found that 100%
programming languages for real-time control are tools provided to the control engineers to apply sophisticated control systems to control problems in understandable terms. The need for integration of several real-time...
详细信息
programming languages for real-time control are tools provided to the control engineers to apply sophisticated control systems to control problems in understandable terms. The need for integration of several real-time control programs is illustrated by reviewing the different levels of the control system development procedure and the personnel involved at each level. Standard languages developed by task force 3 of the International Electrotechnical Commission (IEC) subcommittee 65A on Standards for Programmable Controllers for real-time control applications are shown to have the features required to meet the requirements of the real-time control problem. Real-time control strategy may be conveyed easily to all levels of personnel participating in the control system development by integrating the different languages into the control program. Implementation of integrating different languages to real-time control applications has been slow. However, with the emphasis on productivity at all levels in the production process, more attention will be given to this programming technique in the future.
Raku is a 'Practical Extraction And Reporting language', which combines the features of C, sed, awk, shell scripting and many other programming languages, which can simplify simple tasks without losing the abi...
详细信息
Raku is a 'Practical Extraction And Reporting language', which combines the features of C, sed, awk, shell scripting and many other programming languages, which can simplify simple tasks without losing the ability to deal with difficult problems, but at the same time it is a niche programming language without much People know and use it. This paper aims to evaluate the syntax of Raku in two particular aspects, including manipulating numbers and working with files. The understandability of Raku's syntax by programmers, who have mastered python before, was verified by doing a think‐aloud test and semistructured interview. Comparisons between Raku, Perl5 and Python were added to deepen the study to check that whether Raku is more suitable for programmers who are supporters of previous versions of Perl. Results of the research showed that Raku's syntax in manipulating numbers and working with files is hard and easy respectively for students, who have learned Python, to understand. Also, Perl5 users indeed have some advantages in understanding the syntax of Raku, while the diversity of Raku also made this language is friendly to Python users.
programming courses in computer science play a crucial role as they often serve as students' initial exposure to computer programming. Many university students fi nd introductory courses overwhelming due to the va...
详细信息
programming courses in computer science play a crucial role as they often serve as students' initial exposure to computer programming. Many university students fi nd introductory courses overwhelming due to the vast amount of information they need to grasp. The traditional teacher-lecturer model used in university lecture halls frequently leads to low motivation and student participation. Personalized gamification, a pedagogical approach that blends gamification and personalized learning, offers a solution to this challenge. This approach integrates gaming elements and personalized learning strategies to motivate and engage students while addressing their individual learning needs and differences. A comprehensive literature review analyzes 101 studies based on research design, intervention, outcome measures, and quality assessment. The fi ndings suggest that personalized gamification can enhance student cognition in programming courses by boosting motivation, engagement, and learning outcomes. However, the effectiveness of personalized gamification depends on various factors, including the types of gaming elements used, the level of personalization, and learner characteristics. This article offers insights into designing and implementing effective personalized gamification interventions in programming courses. The fi ndings may inform educators and researchers in programming education about the potential benefits of personalized gamification and its implications for educational practice.
Presents a notation for describing the semantics of data structures. Implementation facility which could be a part of a programming language; Expression of the semantics of an algorithm; Efficiency of the structures.
Presents a notation for describing the semantics of data structures. Implementation facility which could be a part of a programming language; Expression of the semantics of an algorithm; Efficiency of the structures.
This paper describes a robot control system for sensor guided control of Industrial robots. It is based on the BOSCH rho 2 robot control system, a powerful multi-processor system, succesfully used for the control of d...
详细信息
This paper describes a robot control system for sensor guided control of Industrial robots. It is based on the BOSCH rho 2 robot control system, a powerful multi-processor system, succesfully used for the control of different robots in many applications e.g. car painting or flexible assembly. The standard rho 2 system is enhanced by a sensor coupling processor board (SCP) and several new functions. The sensor systems supported by, the control could be vision systems, tactile sensor systems, force/moment sensors, gasping force and distance sensors. This paper describes the new functions for sensor applications and gives an overview of the hardware components. The structure of the control system and the new sensor instructions are presented. The system was tested with special sensor systems developed in the ESPRIT 278 project, which are explained in the report too
暂无评论