Bug Characteristics In Blockchain Systems: A Large-Scale Empirical Study,
2017
Singapore Management University
Bug Characteristics In Blockchain Systems: A Large-Scale Empirical Study, Zhiyuan Wan, David Lo, Xin Xia, Liang Cai
Research Collection School Of Computing and Information Systems
Bugs severely hurt blockchain system dependability. A thorough understanding of blockchain bug characteristics is required to design effective tools for preventing, detecting and mitigating bugs. We perform an empirical study on bug characteristics in eight representative open source blockchain systems. First, we manually examine 1,108 bug reports to understand the nature of the reported bugs. Second, we leverage card sorting to label the bug reports, and obtain ten bug categories in blockchain systems. We further investigate the frequency distribution of bug categories across projects and programming languages. Finally, we study the relationship between bug categories and bug fixing time. The …
Cataloging Github Repositories,
2017
Singapore Management University
Cataloging Github Repositories, Abhishek Sharma, Ferdian Thung, Pavneet Singh Kochhar, Agus Sulistya, David Lo
Research Collection School Of Computing and Information Systems
GitHub is one of the largest and most popular repository hosting service today, having about 14 million users and more than 54 million repositories as of March 2017. This makes it an excellent platform to find projects that developers are interested in exploring. GitHub showcases its most popular projects by cataloging them manually into categories such as DevOps tools, web application frameworks, and game engines. We propose that such cataloging should not be limited only to popular projects. We explore the possibility of developing such cataloging system by automatically extracting functionality descriptive text segments from readme files of GitHub repositories. …
The Introduction Of Informal Cooperative Learning Into Our Programming Laboratories,
2017
Purdue University
The Introduction Of Informal Cooperative Learning Into Our Programming Laboratories, Guity Ravai, Ludmila Nunes, Ronald Erdei
IMPACT Presentations
Presented at the Women in Engineering ProActive Network (WEPAN) Change Leader Forum: Creating a Mindset for Action in Westminster, CO, USA
Automated Refactoring Of Legacy Java Software To Default Methods,
2017
CUNY Hunter College
Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Publications and Research
Java 8 default methods, which allow interfaces to contain (instance) method implementations, are useful for the skeletal implementation software design pattern. However, it is not easy to transform existing software to exploit default methods as it requires analyzing complex type hierarchies, resolving multiple implementation inheritance issues, reconciling differences between class and interface methods, and analyzing tie-breakers (dispatch precedence) with overriding class methods to preserve type-correctness and confirm semantics preservation. In this paper, we present an efficient, fully-automated, type constraint-based refactoring approach that assists developers in taking advantage of enhanced interfaces for their legacy Java software. The approach features an extensive …
Library For Writing Contracts For Java Programs Using Prolog,
2017
San Jose State University
Library For Writing Contracts For Java Programs Using Prolog, Yogesh Dixit
Master's Projects
Today many large and complex software systems are being developed in Java. Although, software always has bugs, it is very important that these developed systems are more reliable despite these bugs.
One way that we can help achieve this is the Design by Contract (DbC) paradigm, which was first introduced by Bertrand Meyer, the creator of Eiffel. The concept of DbC was introduced for software developers so that they can produce more reliable software systems with a little extra cost. Using programming contracts allows developer to specify details such as input conditions and expected output conditions. Doing this makes it …
Dynamic Information Flow Analysis In Ruby,
2017
San Jose State University
Dynamic Information Flow Analysis In Ruby, Vigneshwari Chandrasekaran
Master's Projects
With the rapid increase in usage of the internet and online applications, there is a huge demand for applications to handle data privacy and integrity. Applications are already complex with business logic; adding the data safety logic would make them more complicated. The more complex the code becomes, the more possibilities it opens for security-critical bugs. To solve this conundrum, we can push this data safety handling feature to the language level rather than the application level. With a secure language, developers can write their application without having to worry about data security.
This project introduces dynamic information flow analysis …
Policy-Agnostic Programming On The Client-Side,
2017
San Jose State University
Policy-Agnostic Programming On The Client-Side, Kushal Palesha
Master's Projects
Browser security has become a major concern especially due to web pages becoming more complex. These web applications handle a lot of information, including sensitive data that may be vulnerable to attacks like data exfiltration, cross-site scripting (XSS), etc. Most modern browsers have security mechanisms in place to prevent such attacks but they still fall short in preventing more advanced attacks like evolved variants of data exfiltration. Moreover, there is no standard that is followed to implement security into the browser.
A lot of research has been done in the field of information flow security that could prove to be …
Implementing Dynamic Coarse & Fine Grained Taint Analysis For Rhino Javascript,
2017
San Jose State University
Implementing Dynamic Coarse & Fine Grained Taint Analysis For Rhino Javascript, Tejas Saoji
Master's Projects
Web application systems today are at great risk from attackers. They use methods like cross-site scripting, SQL injection, and format string attacks to exploit vulnerabilities in an application. Standard techniques like static analysis, code audits seem to be inadequate in successfully combating attacks like these. Both the techniques point out the vulnerabilities before an application is run. However, static analysis may result in a higher rate of false positives, and code audits are time-consuming and costly. Hence, there is a need for reliable detection mechanisms.
Dynamic taint analysis offers an alternate solution — it marks the incoming data from the …
Automated Refactoring Of Legacy Java Software To Default Methods,
2017
CUNY Hunter College
Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Publications and Research
Java 8 introduces enhanced interfaces, allowing for default (instance) methods that implementers will inherit if none are provided [3]. Default methods can be used [2] as a replacement of the skeletal implementation pattern [1], which creates abstract skeletal implementation classes that implementers extend. Migrating legacy code using the skeletal implementation pattern to instead use default methods can require significant manual effort due to subtle language and semantic restrictions. It requires preserving typecorrectness by analyzing complex type hierarchies, resolving issues arising from multiple inheritance, reconciling differences between class and interface methods, and ensuring tie-breakers with overriding class methods do not alter …
Comparing Tensorflow Deep Learning Performance Using Cpus, Gpus, Local Pcs And Cloud,
2017
Pace University
Comparing Tensorflow Deep Learning Performance Using Cpus, Gpus, Local Pcs And Cloud, John Lawrence, Jonas Malmsten, Andrey Rybka, Daniel A. Sabol, Ken Triplin
Publications and Research
Deep learning is a very computational intensive task. Traditionally GPUs have been used to speed-up computations by several orders of magnitude. TensorFlow is a deep learning framework designed to improve performance further by running on multiple nodes in a distributed system. While TensorFlow has only been available for a little over a year, it has quickly become the most popular open source machine learning project on GitHub. The open source version of TensorFlow was originally only capable of running on a single node while Google’s proprietary version only was capable of leveraging distributed systems. This has now changed. In this …
Proactive And Reactive Strategies To Handle Surges In Urban Crowds,
2017
Singapore Management University
Proactive And Reactive Strategies To Handle Surges In Urban Crowds, Jiali Du
Dissertations and Theses Collection
Most urban infrastructures are built to cater a planned capacity, yet surges in usage do happen in times (can be either expected or unexpected), and this has long been a major challenge for urban planner. In this thesis, I propose to study approaches handle surges in urban crowd movement. In particular, the surges in demand studied are limited to situations where a large crowd of commuters/visitors gather in a small vicinity, and I am concerned with their movements both within the vicinity and out of the vicinity (the egress from the vicinity). Significant crowd build-ups and congestions can be observed …
Tango: A Spanish-Based Programming Language,
2017
Butler University
Tango: A Spanish-Based Programming Language, Ashley M. Zegiestowsky
Butler Journal of Undergraduate Research
The first part of this article deals with the creation of my own Spanish-based programming language, Tango, using Spanish key words (instead of English key words). The second part relates to the design and implementation of a compiler that follows the grammar rules outlined in the Tango language in order to successfully lexically analyze, parse, semantically analyze, and generate code for Tango. This article begins with a description of the specific goals achieved in the Tango language, an explanation and brief examples of the Tango Grammar, a high-level overview of the compiler design and data structures used, and concludes with …
Experiences With Scala Across The College-Level Curriculum,
2017
Loyola University Chicago
Experiences With Scala Across The College-Level Curriculum, Konstantin Läufer, George K. Thiruvathukal, Mark C. Lewis
Emerging Technologies Laboratory
Various hybrid-functional languages, designed to balance compile-time error detection, conciseness, and performance, have emerged. Scala, e.g., is interoperable with Java and has become an early leader in adoption, especially in the start-up and open-source spaces.
As educators, we have recognized Scala’s value as a teaching language across the CS curriculum. In CS1, the read-eval-print loop and simple, uniform syntax aid programming in the small. In CS2, higher-order methods allow concise, efficient manipulation of collections. In a programming languages course, advanced constructs facilitate the separation of concerns, program representation and interpretation, and concurrent programming. In advanced applied courses, language mechanisms and …
Cst1101–Problem Solving With Computer Programming, Syllabus,
2017
CUNY New York City College of Technology
Cst1101–Problem Solving With Computer Programming, Syllabus, Elena Filatova
Open Educational Resources
No abstract provided.
Empirical Study Of Usage And Performance Of Java Collections,
2017
Singapore Management University
Empirical Study Of Usage And Performance Of Java Collections, Diego Costa, Artur Andrzejak, Janos Seboek, David Lo
Research Collection School Of Computing and Information Systems
Collection data structures have a major impact on the performance of applications, especially in languages such as Java, C#, or C++. This requires a developer to select an appropriate collection from a large set of possibilities, including different abstractions (e.g. list, map, set, queue), and multiple implementations. In Java, the default implementation of collections is provided by the standard Java Collection Framework (JCF). However, there exist a large variety of less known third-party collection libraries which can provide substantial performance benefits with minimal code changes.
Clustering Classes In Packages For Program Comprehension,
2017
Yangzhou University
Clustering Classes In Packages For Program Comprehension, Xiaobing Sun, Xiangyue Liu, Bin Li, Bixin Li, David Lo, Lingzhi Liao
Research Collection School Of Computing and Information Systems
During software maintenance and evolution, one of the important tasks faced by developers is to understand a system quickly and accurately. With the increasing size and complexity of an evolving system, program comprehension becomes an increasingly difficult activity. Given a target system for comprehension, developers may first focus on the package comprehension. The packages in the system are of different sizes. For small-sized packages in the system, developers can easily comprehend them. However, for large-sized packages, they are difficult to understand. In this article, we focus on understanding these large-sized packages and propose a novel program comprehension approach for large-sized …
A Dynamic Programming Approach For Quickly Estimating Large Network-Based Mev Models,
2017
Singapore Management University
A Dynamic Programming Approach For Quickly Estimating Large Network-Based Mev Models, Tien Mai, Emma Frejinger, Mogens Fosgereau, Fabian Bastin
Research Collection School Of Computing and Information Systems
We propose a way to estimate a family of static Multivariate Extreme Value (MEV) models with large choice sets in short computational time. The resulting model is also straightforward and fast to use for prediction. Following Daly and Bierlaire (2006), the correlation structure is defined by a rooted, directed graph where each node without successor is an alternative. We formulate a family of MEV models as dynamic discrete choice models on graphs of correlation structures and show that the dynamic models are consistent with MEV theory and generalize the network MEV model (Daly and Bierlaire, 2006). Moreover, we show that …
Optimizing Campus Mobility With A Focus On Sustainability: A Graph Theory Approach To Intra-Campus Transportation Networks,
2017
Quinn Nelson
Optimizing Campus Mobility With A Focus On Sustainability: A Graph Theory Approach To Intra-Campus Transportation Networks, Quinn M. Nelson
UNO Student Research and Creative Activity Fair
The idea of public transportation is supported by most in theory but often heavily criticized by users when put into application. There are common tensions that are related to public transportation, as described by frequent users: unreliable, too crowded, and slow. The University of Nebraska-Omaha (UNO) is a growing metropolitan institution that uses a shuttle system to transport students among their three campuses daily. As of 2015, the current total student enrollment is approximately 16,000; UNO plans to enroll 20,000 students by 2020. The expected student growth is also reflected by the current construction of new buildings and expansion of …
Gpumap: A Transparently Gpu-Accelerated Map Function,
2017
California Polytechnic State University, San Luis Obispo
Gpumap: A Transparently Gpu-Accelerated Map Function, Ivan Pachev
Master's Theses
As GPGPU computing becomes more popular, it will be used to tackle a wider range of problems. However, due to the current state of GPGPU programming, programmers are typically required to be familiar with the architecture of the GPU in order to effectively program it. Fortunately, there are software packages that attempt to simplify GPGPU programming in higher-level languages such as Java and Python. However, these software packages do not attempt to abstract the GPU-acceleration process completely. Instead, they require programmers to be somewhat familiar with the traditional GPGPU programming model which involves some understanding of GPU threads and kernels. …
Pop-Up Java: An Augmented Reality Mobile Game To Teach Java,
2017
Columbus State University
Pop-Up Java: An Augmented Reality Mobile Game To Teach Java, Richard Myers
Georgia Undergraduate Research Conference
As computers become more and more ubiquitous, it becomes increasingly important and prevalent to teach coding. Coding builds important life skills such as organization, higher order thinking, self-esteem, socialization and teamwork, among many others. However, learning the skills necessary to design and create an efficient program from scratch takes a lot of practice that can often be confusing and frustrating to newcomers.
There are a large number of programming languages in the world, each with their own merits. The TIOBE Programming Community Index calculates the popularity of programming languages by tallying search queries on major search engines, and shows that …
