Posts by Collection

publications

talks

Code Template Inference Using Language Models

Published:

This work project explores the use of natural language processing (NLP) techniques to automatically identify project-specific code templates—frequently used code blocks that can assist developers within an integrated development environment (IDE). During software development, programmers often, sometimes unknowingly, rewrite similar code fragments that implement common functionality. Recognizing these recurring patterns can inform the creation of reusable code templates.

CSeR (Code Segment Reuse)

Published:

Tool support for managing code clones plays a crucial role in improving software quality and maintainability. While extensive research has focused on detecting clones in existing source code, there has been comparatively less attention on proactively tracking and supporting copy–paste–modify operations, even though such actions are a major source of clone creation and evolution.

Raising the Level of Abstraction for GPU Programming

Published:

Programming GPUs presents several challenges, particularly the significant effort required to integrate kernel functionality with the parallel programming constructs provided by APIs such as CUDA and OpenCL. This project introduces an approach that raises the level of abstraction in GPU programming by implementing an abstract API compatible with both CUDA and OpenCL frameworks.

Extending Abstract GPU APIs to Shared Memory

Published:

Parallel programming is widely used for general-purpose computations, but the performance of different parallel APIs often varies depending on the problem type and hardware architecture. This variation creates a need for an abstract representation to express parallel problems independently of specific platforms.

CUDACL: A Tool for CUDA and OpenCL Programmers

Published:

Graphical Processing Unit (GPU) programming languages are increasingly used for general-purpose computing, but their low-level abstractions make them accessible primarily to expert parallel programmers. This project introduces a novel approach that enables C and Java developers to harness GPU computing power without delving into the technical complexities of CUDA or OpenCL.

A Platform-Independent Tool for Modeling Parallel Programs

Published:

Programming languages that utilize underlying parallel architectures—including shared memory, distributed memory, and Graphics Processing Units (GPUs)—are widely used for solving scientific problems. However, our study of multiple parallel programs across various domains revealed that these programs often contain a substantial amount of sequential code intermixed with parallel code.

Domain-specific languages for composing signature discovery workflows

Published:

Domain-agnostic signature discovery involves research that spans multiple scientific disciplines. The cross-disciplinary scope and complexity of this work require that existing executable applications be integrated with new capabilities into unified workflows representing diverse user tasks.

sCooL: A System for Academic Institution Name Normalization

Published:

Named Entity Normalization (NEN) refers to the process of linking recognized entities to concrete, unambiguous real-world references. In the context of the online job posting domain, accurate normalization of academic institution names offers significant value for performing advanced labor market analysis.

WebScalding: A Framework for Big Data Web Services

Published:

CareerBuilder (CB) manages over 50 million active résumés and 2 million active job postings, driving a continuous need to match the most relevant jobs for seekers and the most qualified candidates for employers. Achieving this at scale naturally presents significant Big Data challenges.

Machine Learning Techniques in Java

Published:

In the field of Artificial Intelligence (AI), several reliable open-source tools and libraries are implemented in Java. At The Home Depot, many projects leverage these Java-based frameworks to implement state-of-the-art machine learning techniques that drive innovation across retail and home improvement domains.

Deep Learning with Python: from Theory to Application

Published:

This tutorial gave a comprehensive overview of the deep learning. The goal was to make deep learning accessible to engineers who seek to apply deep learning to problems they are trying to solve both in industry and academia.

Full-time software engineer and Part-time Instructor

Published:

Most students who enroll in computer science courses aspire to pursue careers in software development. As a software engineer myself, I strive to help them understand core concepts through an application-oriented perspective.

ChatGPT and Search

Published:

Most students who enroll in computer science courses aspire to pursue careers in software development. As a software engineer myself, I strive to help them understand core concepts through an application-oriented perspective.

teaching

thesis

Ph.D. Dissertation

My Ph.D. dissertation explored the application of software modeling techniques to computation-intensive problems, enabling efficient heterogeneous computing and enhanced source code maintenance.

Masters Thesis

My Master’s thesis focused on developing tool support for detecting and managing software code clones.