Computational thinking is the capacity of undertaking a problem-solving process in various disciplines (including STEM, i.e. science, technology, engineering and mathematics) using distinctive techniques that are typi...
详细信息
Computational thinking is the capacity of undertaking a problem-solving process in various disciplines (including STEM, i.e. science, technology, engineering and mathematics) using distinctive techniques that are typical of computer science. It is nowadays considered a fundamental skill for students and citizens, that has the potential to affect future generations. At the roots of computational-thinking abilities stands the knowledge of computer programming, i.e. coding. With the goal of fostering computational thinking in young students, we address the challenging and open problem of using methods, tools and techniques to support teaching and learning of computer-programming skills in school curricula of the secondary grade and university courses. This problem is made complex by several factors. In fact, coding requires abstraction capabilities and complex cognitive skills such as procedural and conditional reasoning, planning, and analogical reasoning. In this paper, we introduce a new paradigm called ACME ("Code Animation by Evolved Metaphors") that stands at the foundation of the Diogene-CT code visualization environment and methodology. We develop consistent visual metaphors for both procedural and object-oriented programming. Based on the metaphors, we introduce a playground architecture to support teaching and learning of the principles of coding. To the best of our knowledge, this is the first scalable code visualization tool using consistent metaphors in the field of the Computing Education Research (CER). It might be considered as a new kind of tools named as code visualization environments.
Video data transmission without buffering is ubiquitous for all contemporary appliances. The increased consumption of video content has created the demand for more efficient video compression algorithms for high-resol...
详细信息
Video data transmission without buffering is ubiquitous for all contemporary appliances. The increased consumption of video content has created the demand for more efficient video compression algorithms for high-resolution videos. In this study, a video compression technique is presented that uses a Lagrangian encoder (LE) with H.265 protocol. This architecture provides compression with less bandwidth compared to contemporary encoders, and it is compatible with 5 G network transmission speed and latency. Adding LE in the H.265 protocol architecture reduced the buffering delay and increased the efficiency. Along with these parameters, this study focused on the quality of video streaming, which was measured by metrics such as peak signal to noise ratio (PSNR), structural similarity index (SSIM), and video multi-method assessment fusion (VMAF). A comparison of the values of compression ratio and latency with and without H.264 architecture showed improved performance in the architecture. Thus, deep learning-based optimised data transmission can improve accuracy and reduce computational complexity.
In this article, object-relational mapping (ORM) engines in object-oriented programming are introduced. The tradeoffs that must be considered when using ORM are discussed and four lessons that will help software devel...
详细信息
In this article, object-relational mapping (ORM) engines in object-oriented programming are introduced. The tradeoffs that must be considered when using ORM are discussed and four lessons that will help software developers take advantage of ORM in transaction processing scenarios are provided.
Software developers must provide meaningful but short names to identifiers because they strongly affect the comprehensibility of source code. On the other hand, identifier naming can be a difficult and time-consuming ...
详细信息
ISBN:
(纸本)9781728146485
Software developers must provide meaningful but short names to identifiers because they strongly affect the comprehensibility of source code. On the other hand, identifier naming can be a difficult and time-consuming task, even for experienced developers. To support identifier naming, several techniques to recommend candidate names have been proposed. These techniques have challenges on the goodness of suggested candidates and limitations of applicable situations. This paper proposes a new approach to recommend method names by applying graph embedding techniques to the call graph. An experiment confirms that the proposed technique can suggest more appropriate name candidates in difficult situations than the state-of-the-art approach.
In software development, the quality of identifier names is important because it greatly affects program comprehension for developers. However, naming identifiers that appropriately represent the nature or behavior of...
详细信息
ISBN:
(纸本)9781728146485
In software development, the quality of identifier names is important because it greatly affects program comprehension for developers. However, naming identifiers that appropriately represent the nature or behavior of program elements such as classes and methods is a difficult task requiring rich development experience and software domain knowledge. Although several studies proposed techniques for recommending identifier names, there are few studies targeting class names and they have limited availability. This paper proposes a novel class name recommendation approach widely available in software development. The key idea is to represent quantitatively the nature or behavior of classes by leveraging embedding technology for heterogeneous graphs. This makes it possible to recommend class names even where a previous approach cannot work. Experimental results suggest that the proposed approach can produce more accurate class name recommendation regardless of whether classes are used. In addition, a further experiment reveals a situation where the proposed approach is particularly effective.
Empowering users with tools for developing multitouch interaction is a promising step toward the materialization of ubiquitous computing. This survey frames the state of the art of existing multitouch software develop...
详细信息
Empowering users with tools for developing multitouch interaction is a promising step toward the materialization of ubiquitous computing. This survey frames the state of the art of existing multitouch software development tools from an end-user programming perspective.
A coderetreat is an event where software developers gather to spend a day exploring their craft in an informal yet intellectually challenging environment. It encourages reflective practice by addressing a single progr...
详细信息
A coderetreat is an event where software developers gather to spend a day exploring their craft in an informal yet intellectually challenging environment. It encourages reflective practice by addressing a single programming problem from different perspectives, with multiple coding partners, freed from the daily pressures of deadlines and the need to deliver completed artifacts. This article describes an experiment in which a coderetreat was run with a group of final-year undergraduates studying software architecture. The authors gathered qualitative and quantitative data to explore the ways in which the activity contributed to the participants' reflective practice. The results suggest that coderetreats are an excellent vehicle for reflective practice in software development, providing a context within which multiple aspects of self-reflection and motivation can be developed. The Web extra at http://***/racyZfkbgnQ is an audio recording in which author David Parsons expands on the article 'Coderetreats: Reflective Practice and the Game of Life,' discussing how coderetreats can encourage self-reflection in software engineers. [ABSTRACT FROM PUBLISHER]
The article presents an overview of recommendation systems for software engineering (RSSEs). It mentions that software engineering continues to be a challenging task due to the emergence of new technologies, component...
详细信息
The article presents an overview of recommendation systems for software engineering (RSSEs). It mentions that software engineering continues to be a challenging task due to the emergence of new technologies, components and ideas. It adds that people tend to find information and come up with decisions in areas where they lack experience or cannot take all data at hand into consideration with the help of various recommendation systems. RSSEs examined include the eRose plug-in, Strathcona system and Suade plug-in.
In this paper, we discuss how object-oriented techniques, such as, data encapsulation and inheritance can enhance modifiability and maintainability of a system that is implemented with a visual data flow programming l...
详细信息
ISBN:
(纸本)9781424447794
In this paper, we discuss how object-oriented techniques, such as, data encapsulation and inheritance can enhance modifiability and maintainability of a system that is implemented with a visual data flow programming language (VDFL). The paper is written in the light of our recent research on automated documentation system. A visual data flow program can easily suffer from monolithic program structure. A concept of monolithic program is an opposite to the modularity. Modularity is a well-known approach for improving modifiability and maintainability of systems. Another problem appears when modifying the program code. For example, when adding or removing a program part, several modifications have to be done to other places on the program as well. As a result, the object-oriented techniques can reduce the latter problem but they can not reduce the risk of monolithic program structure.
This paper presents CMOD, a novel tool that provides a sound module system for C. CMOD works by enforcing a set of four rules that are based on principles of modular reasoning and on current programming practice. CMOD...
详细信息
This paper presents CMOD, a novel tool that provides a sound module system for C. CMOD works by enforcing a set of four rules that are based on principles of modular reasoning and on current programming practice. CMOD's rules flesh out the convention that. h header files are module interfaces and. c source files are module implementations. Although this convention is well known, existing explanations of it are incomplete, omitting important subtleties needed for soundness. In contrast, we have formally proven that CMOD's rules enforce both information hiding and type-safe linking. To use CMOD, the programmer develops and builds their software as usual, redirecting the compiler and linker to CMOD's wrappers. We evaluated CMOD by applying it to 30 open source programs, totaling more than one million lines of code. Violations to CMOD's rules revealed more than a thousand information hiding errors, dozens of typing errors, and hundreds of cases that, although not currently bugs, make programming mistakes more likely as the code evolves. At the same time, programs generally adhere to the assumptions underlying CMOD's rules and, so, we could fix rule violations with a modest effort. We conclude that CMOD can effectively support modular programming in C: It soundly enforces type-safe linking and information hiding while being largely compatible with existing practice.
暂无评论