The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
Programming studies are used to achieve a variety of instructional objectives in computer science courses. Instead of using a programming case study as the lecture material, we adapt it to facilitate active learning activities in the classroom. While it preserves most programming tasks in context, our approach provides an opportunity for students to work out desirable solutions as they learn programming...
Degree programs in practice-based disciplines such as architecture, industrial engineering, graphic design, and the fine arts often include design studio experiences for their students. These studio courses are intended to provide students with an opportunity to practice skills and apply knowledge gained from curriculum courses following a more traditional format. They are also intended to provide...
Software developers use Application Programming Interfaces (APIs) of libraries and frameworks extensively while writing programs. In this context, the recommendations provided in code completion pop-ups help developers choose the desired methods. The candidate lists recommended by these tools, however, tend to be large, ordered alphabetically and sometimes even incomplete. A fair amount of work has...
Prior research showed that to migrate Java code to C# by directly applying phrase-based statistical machine translation (SMT) on the lexemes of source code produces much semantically incorrect code. In this work, we conduct empirical studies on several open-source projects to investigate the use of well-defined semantics in programming languages to guide the translation process in SMT. We have investigated...
Many software comprehension tasks depend on how stakeholders textually describe their problems. These textual descriptions are leveraged by Text Retrieval (TR)-based solutions to more than 20 software engineering tasks, such as duplicate issue detection. The common assumption of such methods is that text describing the same issue in multiple places will have a common vocabulary. This paper presents...
Restructuring legacy code to improve its structure and understandability is difficult and adequate tool support is required. While the advantages of the Null Object pattern are widely recognized, the first tool support has only recently emerged. We complement it with NullTerminator, a prototype tool to assist developers in the instantiation of the Null Object design pattern in Java programs. We describe...
Prior research has shown that source code and its changes are repetitive. Several approaches have leveraged that phenomenon to detect and recommend change and fix patterns. In this paper, we propose TasC, a model that leverages the context of change tasks in development history to suggest fine-grained code change and fix at the program statement level. We use Latent Dirichlet Allocation (LDA) to capture...
This paper is a study on compilers building, through tools Jflex and Cup of Java in addition to design a prototype programming language with syntax in spanish, as well as build a compiler for it language. Phases of a compiler are described, with special emphasis on the structure of the compiler and the objective code generate by the compiler.
Object Constraint Language (OCL) can be used to express domain model constraints. Those related to a single object are easy to implement. However, when a constraint depends on the state of more than one object (domain and class constraints) the problem turns much more complicated. Developers must deal with several difficulties: how to write the invariant check, when to execute the constraint verification,...
The use of computers and the Internet have changed classic methods of teaching and Learning, introducing the concept of distance Learning as a great opportunity for studying unfettered by constraints of time and space [1]. In addition, acquisition of new skills and knowledge is not only affected by an individual's mental schemes or beliefs, but also by their interaction, cooperation and collaboration...
Side-channel attacks recover confidential information from non-functional characteristics of computations, such as time or memory consumption. We describe a program analysis that uses symbolic execution to quantify the information that is leaked to an attacker who makes multiple side-channel measurements. The analysis also synthesizes the concrete public inputs (the "attack") that lead to...
Stream-based data processing systems, such as Complex Event Processing or data stream mining systems, may be composed of several components which may be implemented in various programming languages. In distributed scenarios, computer networks typically represent important bottlenecks. However, the performance of data exchange in local contexts may be as important as the performance of data exchange...
In this paper, we present a novel notion of compositional non-interference for component-based systems. Our specification mechanism for non-interference properties is based on equivalence relations, catering for a precise formalization of declassified information. It takes assumptions on the environment into consideration. We also present a new notion of non-interference for services provided by a...
Interconnected computing systems in various forms will soon permeate our lives, realizing the Internet of Things (IoT) and letting us enjoy novel, enhanced services that promise to improve our everyday life. Nevertheless, this new reality introduces significant challenges in terms of performance, scaling, usability, and interoperability. Leveraging the benefits of service-oriented architectures (SOAs)...
Aspect Mining is a research domain that tries to identify occurrences of crosscutting concerns in software systems that were developed without using the aspect oriented paradigm. A top-down approach to aspect mining first manually analyzes the pattern(s) used for implementing crosscutting concerns and then tries to automatically identify them in legacy software systems. In this paper we analyze three...
Software developers need to cope with the complexity of Application Programming Interfaces (APIs) of external libraries or frameworks. Typical APIs provide thousands of methods to their client programs, and these methods are not used independently of each other. Much existing work has provided different techniques to mine API usage patterns based on client programs in order to help developers understanding...
Integrated Development Environments (IDEs) lack effective support to browse complex relationships between source code elements. As a result, developers are often forced to exploit multiple user interface components at the same time, bringing the IDE into a complex, “chaotic” state. Keeping track of these relationships demands increased source code navigation and cognitive load, leading to productivity...
In this paper we present a newly developed online learning platform which introduces gamification elements into software engineering education. Starting from assumptions based on cognitive load theory we present the design of an online gamification-based training system to be used in software engineering contexts. Students can voluntarily solve challenges for which they may earn credits. These small...
Data Structures is a core component of the under-graduate Computer Science curriculum. Traditional offerings of this course expose students to several data structures, where the rationale for each structure is justified in the context of a problem that is simplified due to semester time-constraints. As a result, students rarely develop the skills necessary to analyze data structure usage in the context...
Generally utterances in natural language are highly ambiguous, and a unique interpretation can usually be determined only by taking into account the context in the utterance occurred. Automatically determining the correct sense of a polysemous word is a complicated problem especially in multilingual corpuses. This paper presents an application programming interface for several Semantic Relatedness/Similarity...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.