Lyraquist: Language Learning Via Music App,
2024
University of South Carolina - Columbia
Lyraquist: Language Learning Via Music App, Vivian D'Souza, Siri Avula, Mahi Patel, Tanvi Singh, Ashley Bickham
Senior Theses
Lyraquist is a new language learning mobile app that encourages the practice of a foreign language through music. Language learners can connect their Spotify Premium account to Lyraquist to listen to music in their target languages and utilize tools such as translation and vocabulary lists to facilitate language practice. Through integration with Spotify, users can import and create Spotify playlists and search the service’s entire catalog. By combining daily listening habits with several tasks associated with language learning in one place, Lyraquist hopes to be a useful language learning tool.
Elevating Academic Administration: A Comprehensive Faculty Dashboard For Tracking Student Evaluations And Research,
2024
University of South Carolina
Elevating Academic Administration: A Comprehensive Faculty Dashboard For Tracking Student Evaluations And Research, Musa M. Azeem
Senior Theses
The USC Faculty Dashboard is a web application designed to revolutionize how department heads, professors, and instructors monitor progress and make decisions, providing a centralized hub for efficient data storage and analysis. Currently, there’s a gap in tools tailored for department heads to concisely manage the performance of their department, which our platform aims to fill. The USC Faculty Dashboard offers easy access to upload and view student evaluation and research information, empowering department heads to evaluate the performance of faculty members and seamlessly track their research grants, publications, and expenditures. Furthermore, professors and instructors gain personalized performance analysis tools, …
Exploring The Potential Of Chatgpt In Automated Code Refinement: An Empirical Study,
2024
Singapore Management University
Exploring The Potential Of Chatgpt In Automated Code Refinement: An Empirical Study, Qi Guo, Shangqing Liu, Junming Cao, Xiaohong Li, Xin Peng, Xiaofei Xie, Bihuan Chen
Research Collection School Of Computing and Information Systems
Code review is an essential activity for ensuring the quality and maintainability of software projects. However, it is a time-consuming and often error-prone task that can significantly impact the development process. Recently, ChatGPT, a cutting-edge language model, has demonstrated impressive performance in various natural language processing tasks, suggesting its potential to automate code review processes. However, it is still unclear how well ChatGPT performs in code review tasks. To fill this gap, in this paper, we conduct the first empirical study to understand the capabilities of ChatGPT in code review tasks, specifically focusing on automated code refinement based on given …
W4-Groups: Modeling The Who, What, When And Where Of Group Behavior Via Mobility Sensing,
2024
Singapore Management University
W4-Groups: Modeling The Who, What, When And Where Of Group Behavior Via Mobility Sensing, Akansha Atrey, Camellia Zakaria, Rajesh Krishna Balan, Prashant Shenoy
Research Collection School Of Computing and Information Systems
Human social interactions occur in group settings of varying sizes and locations, depending on the type of social activity. The ability to distinguish group formations based on their purposes transforms how group detection mechanisms function. Not only should such tools support the effective detection of serendipitous encounters, but they can derive categories of relation types among users. Determining who is involved, what activity is performed, and when and where the activity occurs are critical to understanding group processes in greater depth, including supporting goal-oriented applications (e.g., performance, productivity, and mental health) that require sensing social factors. In this work, we …
Improving Automated Code Reviews: Learning From Experience,
2024
University of Melbourne
Improving Automated Code Reviews: Learning From Experience, Hong Yi Lin, Patanamon Thongtanunam, Christoph Treude, Wachiraphan Charoenwet
Research Collection School Of Computing and Information Systems
Modern code review is a critical quality assurance process that is widely adopted in both industry and open source software environments. This process can help newcomers learn from the feedback of experienced reviewers; however, it often brings a large workload and stress to reviewers. To alleviate this burden, the field of automated code reviews aims to automate the process, teaching large language models to provide reviews on submitted code, just as a human would. A recent approach pre-trained and fine-tuned the code intelligent language model on a large-scale code review corpus. However, such techniques did not fully utilise quality reviews …
Beyond A Joke: Dead Code Elimination Can Delete Live Code,
2024
Singapore Management University
Beyond A Joke: Dead Code Elimination Can Delete Live Code, Haoxin Tu, Lingxiao Jiang, Debin Gao, He Jiang
Research Collection School Of Computing and Information Systems
Dead Code Elimination (DCE) is a fundamental compiler optimization technique that removes dead code (e.g., unreachable or reachable but whose results are unused) in the program to produce smaller or faster executables. However, since compiler optimizations are typically aggressively performed and there are complex relationships/interplay among a vast number of compiler optimizations (including DCE), it is not known whether DCE is indeed correctly performed and will only delete dead code in practice. In this study, we open a new research problem to investigate: can DCE happen to erroneously delete live code? To tackle this problem, we design a new approach …
Unveiling Memorization In Code Models,
2024
Singapore Management University
Unveiling Memorization In Code Models, Zhou Yang, Zhipeng Zhao, Chenyu Wang, Jieke Shi, Dongsun Kim, Donggyun Han, David Lo
Research Collection School Of Computing and Information Systems
The availability of large-scale datasets, advanced architectures, and powerful computational resources have led to effective code models that automate diverse software engineering activities. The datasets usually consist of billions of lines of code from both open-source and private repositories. A code model memorizes and produces source code verbatim, which potentially contains vulnerabilities, sensitive information, or code with strict licenses, leading to potential security and privacy issues.This paper investigates an important problem: to what extent do code models memorize their training data? We conduct an empirical study to explore memorization in large pre-trained code models. Our study highlights that simply extracting …
Out Of Sight, Out Of Mind: Better Automatic Vulnerability Repair By Broadening Input Ranges And Sources,
2024
Singapore Management University
Out Of Sight, Out Of Mind: Better Automatic Vulnerability Repair By Broadening Input Ranges And Sources, Xin Zhou, Kisub Kim, Bowen Xu, Donggyun Han, David Lo
Research Collection School Of Computing and Information Systems
The advances of deep learning (DL) have paved the way for automatic software vulnerability repair approaches, which effectively learn the mapping from the vulnerable code to the fixed code. Nevertheless, existing DL-based vulnerability repair methods face notable limitations: 1) they struggle to handle lengthy vulnerable code, 2) they treat code as natural language texts, neglecting its inherent structure, and 3) they do not tap into the valuable expert knowledge present in the expert system. To address this, we propose VulMaster, a Transformer-based neural network model that excels at generating vulnerability repairs by comprehensively understanding the entire vulnerable code, irrespective of …
Exploiting Library Vulnerability Via Migration-Based Automated Test Generation,
2024
Singapore Management University
Exploiting Library Vulnerability Via Migration-Based Automated Test Generation, Zirui Chen, Xing Hu, Xin Xia, Yi Gao, Tongtong Xu, David Lo, Xiaohu Yang
Research Collection School Of Computing and Information Systems
In software development, developers extensively utilize third-party libraries to avoid implementing existing functionalities. When a new third-party library vulnerability is disclosed, project maintainers need to determine whether their projects are affected by the vulnerability, which requires developers to invest substantial effort in assessment. However, existing tools face a series of issues: static analysis tools produce false alarms, dynamic analysis tools require existing tests and test generation tools have low success rates when facing complex vulnerabilities.Vulnerability exploits, as code snippets provided for reproducing vulnerabilities after disclosure, contain a wealth of vulnerability-related information. This study proposes a new method based on vulnerability …
Towards Speedy Permission-Based Debloating For Android Apps,
2024
Singapore Management University
Towards Speedy Permission-Based Debloating For Android Apps, Thung Ferdian, Jiakun Liu, Pattarakrit Rattanukul, Shahar Maoz, Eran Toch, Debin Gao, David Lo
Research Collection School Of Computing and Information Systems
Android apps typically include many functionalities that not all users require. These result in software bloat that increases possible attack surface and app size. Common functionalities that users may not require are related to permissions that they intend to disallow in the first place. As these permissions are disallowed, their related code would never be executed and therefore can be safely removed. Existing work has proposed a solution to debloat Android apps according to the disallowed permissions. However, for large and complex applications, the debloating process could take hours, typically due the long time that may be needed to construct …
Marco: A Stochastic Asynchronous Concolic Explorer,
2024
Singapore Management University
Marco: A Stochastic Asynchronous Concolic Explorer, Jie Hu, Yue Duan, Heng Yin
Research Collection School Of Computing and Information Systems
Concolic execution is a powerful program analysis technique for code path exploration. Despite recent advances that greatly improved the efficiency of concolic execution engines, path constraint solving remains a major bottleneck of concolic testing. An intelligent scheduler for inputs/branches becomes even more crucial. Our studies show that the previously under-studied branch-flipping policy adopted by state-of-the-art concolic execution engines has several limitations. We propose to assess each branch by its potential for new code coverage from a global view, concerning the path divergence probability at each branch. To validate this idea, we implemented a prototype Marco and evaluated it against the …
Redriver: Runtime Enforcement For Autonomous Vehicles,
2024
Singapore Management University
Redriver: Runtime Enforcement For Autonomous Vehicles, Yang Sun, Christopher M. Poskitt, Xiaodong Zhang, Jun Sun
Research Collection School Of Computing and Information Systems
Autonomous driving systems (ADSs) integrate sensing, perception, drive control, and several other critical tasks in autonomous vehicles, motivating research into techniques for assessing their safety. While there are several approaches for testing and analysing them in high-fidelity simulators, ADSs may still encounter additional critical scenarios beyond those covered once they are deployed on real roads. An additional level of confidence can be established by monitoring and enforcing critical properties when the ADS is running. Existing work, however, is only able to monitor simple safety properties (e.g., avoidance of collisions) and is limited to blunt enforcement mechanisms such as hitting the …
Acav: A Framework For Automatic Causality Analysis In Autonomous Vehicle Accident Recordings,
2024
Singapore Management University
Acav: A Framework For Automatic Causality Analysis In Autonomous Vehicle Accident Recordings, Huijia Sun, Christopher M. Poskitt, Yang Sun, Jun Sun, Yuqi Chen
Research Collection School Of Computing and Information Systems
The rapid progress of autonomous vehicles (AVs) has brought the prospect of a driverless future closer than ever. Recent fatalities, however, have emphasized the importance of safety validation through large-scale testing. Multiple approaches achieve this fully automatically using high-fidelity simulators, i.e., by generating diverse driving scenarios and evaluating autonomous driving systems (ADSs) against different test oracles. While effective at finding violations, these approaches do not identify the decisions and actions that caused them -- information that is critical for improving the safety of ADSs. To address this challenge, we propose ACAV, an automated framework designed to conduct causality analysis for …
Teaching Software Development For Real-World Problems Using A Microservice-Based Collaborative Problem-Solving Approach,
2024
Singapore Management University
Teaching Software Development For Real-World Problems Using A Microservice-Based Collaborative Problem-Solving Approach, Yi Meng Lau, Christian Michael Koh, Lingxiao Jiang
Research Collection School Of Computing and Information Systems
Experienced and skillful software developers are needed in organizations to develop software products effective for their business with shortened time-to-market. Such developers will not only need to code but also be able to work in teams and collaboratively solve real-world problems that organizations arefacing. It is challenging for educators to nurture students to become such developers with strong technical, social, and cognitive skills. Towards addressing the challenge, this study presents a Collaborative Software Development Project Framework for a course that focuses on learning microservices architectures anddeveloping a software application for a real-world business. Students get to work in teams to …
Experience Report: Identifying Common Misconceptions And Errors Of Novice Programmers With Chatgpt,
2024
Singapore Management University
Experience Report: Identifying Common Misconceptions And Errors Of Novice Programmers With Chatgpt, Hua Leong Fwa
Research Collection School Of Computing and Information Systems
Identifying the misconceptions of novice programmers is pertinent for informing instructors of the challenges faced by their students in learning computer programming. In the current literature, custom tools, test scripts were developed and, in most cases, manual effort to go through the individual codes were required to identify and categorize the errors latent within the students' code submissions. This entails investment of substantial effort and time from the instructors. In this study, we thus propose the use of ChatGPT in identifying and categorizing the errors. Using prompts that were seeded only with the student's code and the model code solution …
Encoding Version History Context For Better Code Representation,
2024
Singapore Management University
Encoding Version History Context For Better Code Representation, Huy Nguyen, Christoph Treude, Patanamon Thongtanunam
Research Collection School Of Computing and Information Systems
With the exponential growth of AI tools that generate source code, understanding software has become crucial. When developers comprehend a program, they may refer to additional contexts to look for information, e.g. program documentation or historical code versions. Therefore, we argue that encoding this additional contextual information could also benefit code representation for deep learning. Recent papers incorporate contextual data (e.g. call hierarchy) into vector representation to address program comprehension problems. This motivates further studies to explore additional contexts, such as version history, to enhance models' understanding of programs. That is, insights from version history enable recognition of patterns in …
Unleashing The Power Of Clippy In Real-World Rust Projects,
2024
Singapore Management University
Unleashing The Power Of Clippy In Real-World Rust Projects, Chunmiao Li, Yijun Yu, Haitao Wu, Luca Carlig, Shijie Nie, Lingxiao Jiang
Research Collection School Of Computing and Information Systems
The error messages generated by the Rust compiler (rustc) are useful for developers to identify and diagnose suspicious code segments. Complementing the compiler, linters can also play an important role in promoting the adherence to certain coding style conventions and best practices. Prominent linters utilized in the Rust ecosystem include Clippy [1] and Rustfmt [2]. Among them, the Rust community particularly emphasizes on the importance of heeding the warnings provided by Clippy to mitigate common errors and promote the adoption of idiomatic conventions. Clippy provides a set of more than 600 lints in addition to the built-in rustc lints. These …
Bidirectional Paper-Repository Tracing In Software Engineering,
2024
Singapore Management University
Bidirectional Paper-Repository Tracing In Software Engineering, Daniel Garijo, Miguel Arroyo, Esteban González Guardia, Christoph Treude, Nicola Tarocco
Research Collection School Of Computing and Information Systems
While computer science papers frequently include their associated code repositories, establishing a clear link between papers and their corresponding implementations may be challenging due to the number of code repositories used in research publications. In this paper we describe a lightweight method for effectively identifying bidirectional links between papers and repositories from both LaTeX and PDF sources. We have used our approach to analyze more than 14000 PDF and Latex files in the Software Engineering category of Arxiv, generating a dataset of more than 1400 paper-code implementations and assessing current citation practices on it.
Dronlomaly: Runtime Log-Based Anomaly Detector For Dji Drones,
2024
Singapore Management University
Dronlomaly: Runtime Log-Based Anomaly Detector For Dji Drones, Wei Minn, Naing Tun Yan, Lwin Khin Shar, Lingxiao Jiang
Research Collection School Of Computing and Information Systems
We present an automated tool for realtime detection of anomalous behaviors while a DJI drone is executing a flight mission. The tool takes sensor data logged by drone at fixed time intervals and performs anomaly detection using a Bi-LSTM model. The model is trained on baseline flight logs from a successful mission physically or via a simulator. The tool has two modules --- the first module is responsible for sending the log data to the remote controller station, and the second module is run as a service in the remote controller station powered by a Bi-LSTM model, which receives the …
Extracting Relevant Test Inputs From Bug Reports For Automatic Test Case Generation,
2024
Singapore Management University
Extracting Relevant Test Inputs From Bug Reports For Automatic Test Case Generation, Wendkuuni C. Ouédraogo, Laura Plein, Kader Kaboré, Andrew Habib, Jacques Klein, David Lo, Tegawende F. Bissyandé
Research Collection School Of Computing and Information Systems
The pursuit of automating software test case generation, particularly for unit tests, has become increasingly important due to the labor-intensive nature of manual test generation [6]. However, a significant challenge in this domain is the inability of automated approaches to generate relevant inputs, which compromises the efficacy of the tests [6].
