Bug headshot

Bug (Chungeun) Lee

bug19@vt.edu | +31 6 29 771282

I am passionate about learning abstraction and the science behind the computing technologies we take for granted in our daily life. My favorite topics are the compiler, algorithms, and social psychology. Always been fascinated that how we precisely communicate what we want to a computer through science, not magic!

Virginia Tech, Blacksburg, VA

Bachelor of Science in Computer Science, December 2022

Coursework

Data Structures and Algorithms, Data and Algorithm Analysis, Theory of Algorithms, Computer Systems, Systems & Networking Capstone, Scripting language design & implementation, Network Architecture & Programming, Video Game Design & Engineering, Artificial Intelligence & Engineering application, Principles of Computer Architecture, Applied Software Design, Advanced Parallel Computation
Programing language

TSP optimization (Spring 2024)

High level optimization was applied reduce the growth rate from factorial to exponential. Approximation algorithm based on prim's algorithm and software caching reduced runtime complexity. Multi-threading using OpenMP was explored for constant factors of speed up. Low level optimization was applied for noticiable speed up. Converted Array of Structure (AoS) to Structure of Array (SoA) for better hardware cache performance.

Programing language

Custom Programming Language (Fall 2022)

Built a C-like (C subset) programming language from scratch. Implemented Virtual Machine, Assembler, and Compiler. VM mimics generic CPU, which reads bytecode and then executes one instruction every cycle. Assembler acts as a back end, which translates assembly code to bytecode. The compiler consists of a lexer, parser, semantic analyzer, and code emitter to translate the source into assembly code.

Shortest path from A to B

Hierarchical Path-Finding (Fall 2022)

Implemented and explored shortcomings of Dijkstra and A* algorithm in modern applications with big graphs. Reduced complexity of the problem by dividing the graph into regions and then finding the regional shortest path.

Reliable transport

Simple TCP (Fall 2022)

The project was divided into two parts. In the first part, a basic transport protocol that provides reliable datagram service was implemented. Then, for the second part, a TCP Reno-like congestion control algorithm was implemented so that the network can provide fair service to each client.

Pintos

Modeling Unix in PintOS (Spring 2022)

Added user processes, system calls, virtual memory, buffer cache, file extension, and subdirectory to support fundamental OS functionalities. Added pipe and shell to model Unix inside PintOS.

Sift detector result

Thread pool (Fall 2021)

Thread pool is a powerful abstraction that provides a safe and efficient environment for parallel programming. By using a thread pool, excessive resource usage can be avoided which can lead to unexpected crashes during the execution of a program.

Haunted park game logo

The Haunted Park (Fall 2021)

The objective of the game is to escape the park by finding the escape route and keys. Keys are randomly placed somewhere in the game world and used for unlocking the escape route. However, there are ghosts scattered around the map and the player must avoid them. When a ghost sees the player, the ghost will chase him/her. The player can distract a ghost by throwing a rock. The player wins when he/she successfully escapes and the score will be based on the time it took to escape. The game utilizes a ray-casting algorithm to give the player illusion of a 3-D world.

Sift detector result

Implementation and Analysis of Correspondence Functions used in Computer Vision (Fall 2021)

As a student in the Computer Vision course, our goal was to gain a concrete idea of some of the well-known topics in computer vision by creating our own SIFT library from scratch. Topics include SIFT detector, SIFT descriptor, and nearest-neighbor matching which lay the foundation for many correspondence problems in computer vision. The focus of the project was not to create a library that can compete with a known library such as OpenCV, but to gain deeper understanding of existing libraries and the ability to implement ideas for an existing/future computer languages that may not have support for computer vision application.

Fight scene

The lost water bottle (Pre-2019)

I worked with various sports teams where one of my main jobs was to distribute and collect water bottles for practices/games. Unfortunately, many water bottles get lost by the end of the season since players simply forget to return them. From that, I got the idea of making a fun skit. We used video games as a medium to connect with the audience and hopefully, some players remembered to return the water bottles by remembering the skit.