Profile Photo

Ronghan Che

M.S. in Computer Science
Worcester Polytechnic Institute

B.S. in Computer Science
Minor in Mathematics
Virginia Tech

Projects

RevDecode CUDA

My Master’s thesis, advised by Professor Robert J. Walls, involves implementing a CUDA-accelerated version of the RevDecode algorithm (previously referred to as Libdecode), based on the Viterbi algorithm, for detecting malware in binary function libraries. By leveraging sequence decoding and GPU parallelization, it achieves significant speed improvements, processing tasks in around 10 seconds compared to 10 minutes on a CPU. The work explores three kernel approaches—Naive, Fine-Grained, and Segment-Based-Estimation—balancing performance, scalability, and accuracy in high-performance computing environments.

MiniJava Compiler

A toolchain that compiles a subset of MiniJava into MIPS assembly code. It features a modular architecture, including a lexer, parser, semantic analyzer, and code generator. The lexer tokenizes MiniJava code, the parser builds an abstract syntax tree (AST), the semantic analyzer enforces language rules, and the code generator translates the AST into optimized MIPS assembly.

Adaptive Threadpool

A Fork-Join thread pool with work-stealing for parallel task execution. Tasks are recursively divided and joined, while idle threads dynamically "steal" tasks to improve load balancing and performance. The thread pool supports features like task submission, result retrieval, and graceful shutdown, and includes tests for parallel algorithms like Fibonacci, merge sort, and quicksort.

Dynamic Storage Allocator

A custom dynamic memory allocator, designed as an alternative to standard dynamic memory management functions in C. It employs a segregated free list to reduce memory fragmentations, with thread safety enabling concurrent operations.

Unix Customizable Shell

A lightweight shell supporting external commands via `posix_spawn` for process handling, along with built-in commands for job and process management.

TextWorld Reinforcement Learning Agents

Implemented two neural network models—an LSTM agent to capture sequential dependencies and an LSTM with attention agent for enhanced input focus—for Microsoft's open-source TextWorld, a platform for text-based games.

Experiences

Teaching Assistant

Virginia Tech

Supported CS 3304 - Comparative Languages, a course on programming language constructs, focusing on runtime behavior, fundamental elements in commercial systems, and variations in language implementations.

Software Engineer Intern

China Eastern Airlines

Assisted in processing and managing flight and passenger information by scraping data from the company’s public API and converting raw data into JSON reports using Pentaho Data Integration (PDI). Worked on the front-end development of a company's mobile application for employees to report personal health conditions, using React.js for the interface and integrating it with RESTful APIs for data communication.