Guided 4 teams (Acoustic Phantom , osu!Gosu , OuiCan , Watchdog ) of graduating seniors to complete capstone projects.
2016
Designed exams and ARM based kernel labs on Raspberry Pi to cover interrupts handling, supervisor/user mode switching, system calls, context switching, task scheduling and real-time synchronization.
2015
Implementation of multi-threaded x86 kernel from scratch with virtual memory address spaces via paging, privilege levels, preemptive multitasking, system calls and device drivers for keyboard, console and timer. Optimization of reducing fork overhead with copy-on-write virtual memory management.
Implementation of thread management library with thread-crash exception handler, mutexes, condition variables, semaphores and readers/writers locks in C and x86 instruction set.
Implementation of two-stage bootstrapping in x86 16-bit real mode, including switching into protected mode and loading a multiboot compliant kernel.
Implementation of Unix command shell that supports job control and I/O redirection.
Implementation of state-of-the-art GPU raytracer with optimized parallel bounding volume hierarchies.
Implementation of recursive raytracer for eye rays, shadow rays, reflected rays and transmission rays with OpenMP parallelism.
Implementation of photon mapper with KD-tree storage and nearest-neighbor search to achieve caustics and global illumination.
Implementation of optimized subdivision to recursively refine the surfaces of given 3D polygonal meshes.
Implementation of animated 3D physical bodies with gravity, collisions, spring forces and friction.
Implementation of parallelized iterative matrix factorization algorithm with Spark that maximizes computation time and minimizes network I/O latency for each executor core.
Implementation of interest point detection for video object tracking by scale-invariant feature transform algorithm with runtime analysis of MATLAB implementation on CPU versus parallelized CUDA implementation on GPU.
Implementation of partitioning digital image into regions of pixels with parallel minimum spanning tree algorithm in Standard ML.
Implementation of identifying MD5 collisions to produce executables of arbitrary length that hash to the same MD5 value while produce markedly different outputs such that it allows corrupting files even with MD5 hash verification. Two Linux 32-bit executable examples are available for download.
Implementation of exploiting vulnerable buffers to overflow function’s return address on call stack with address of subroutine in executable memory. This specific "return-to-libc" attack redirects program counter to standard C library and spawns command shell to execute arbitrary commands.
Implementation of exploiting loopholes in PKCS#5 padding scheme to hack DES block cipher algorithm in CBC mode.
Implementation of anonymizing network communication by redirecting encrypted traffic through random Tor relays.
Study on spreading patterns of bluetooth viruses, multimedia messaging services viruses and hybrid viruses.
Implementation of REST API Bitcoin mixing service of breaking Bitcoin traceability between sender address and receiver address that manages Bitcoin and Monero addresses via Coinbase and Monero Wallet, exchanges Bitcoin with Monero and mixes Monero via ShapeShift and XMR.TO.
Implementation of laundering through obfuscation of sources of funds that exchanges Bitcoin via Coinbase, encrypts traffic and disguises IP via Tor, manages wallets and addresses via Blockchain and mixes Bitcoin via PrivCoin.
Implementation of Bitcoin SPV protocol that requests Merkle branch from full node proxy to verify Merkle root for validating a transaction belongs to a block and then computes block depth for transaction security.
Implementation of REST API Bitcoin Blockchain Query service that parses raw blockchain files, computes block and transaction hashes to verify Merkle root hash and previous block hash, and searches the longest path from genesis block to find main chain.
Implementation of hybrid file system that integrates offline solid-state devices and online cloud storages in C. The file system selectively stores small files in SSD and uses block level duplication to identify the duplicate content in large files so that only unique segments are stored in cloud to reduce cloud storage cost. Also, implementation of taking and restoring snapshots allows file system to undo mistakes and jump to a previous state.
Implementation of FTL firmware that translates file systems logical block address to SSD physical block address with hybrid log-block mapping, garbage collection and wear leveling.
Bhardwaj K., Miu H., Marculescu R. (2017) Discovering Hidden Knowledge in Carbon Emissions Data: A Multilayer Network Approach. In: Yamamoto A., Kida T., Uno T., Kuboyama T. (eds) Discovery Science. DS 2017. Lecture Notes in Computer Science, vol 10558. Springer, Cham
Analysis of Facebook friendship network in popularity, community structure, clustering and homophily with Gephi network visualization.
Implementation of video CDN with adaptive video bitrate selection, DNS load balancing (RFC 1035) and OSPF link state routing protocol (RFC 5340) in C.
Implementation of BitTorrent protocol to search for peers and download/upload file chunks using UDP connection (RFC 768) with TCP congestion control protocol (RFC 5681).
Implementation of HTTP 1.1 web server (RFC 2616) with HTTPS via TLS protocol (RFC 2818) and common gateway interface (RFC 3875) using Berkeley sockets in C.
Implementation of basic web proxy with POSIX sockets that caches web objects using least-recently-used eviction policy.
Analysis of allocating tasks dynamically to asynchronous processes for task coordinations under adversarial settings.
Implementation of scheduling policy server paired with Apache Hadoop YARN to handle heterogenous Hadoop job flows using First-In-First-Out, Shortest-Job-First, Earliest-Deadline-First, Preferred-Resource-First and Preferred-Resource-Only policies with customized greedy allocation to minimize starvation for low utility jobs.
Implementation of infrastructure-as-a-service cloud with OpenStack to provide virtual servers, storages and networking resources to customers. Implementation of auto-scaling group service with running hypervisor as nested virtualization on AWS EC2, building loadbalancer OpenStack image, importing instance images using Glance, managing instances using Nova and monitoring instances using Ceilometer.
Implementation of ARM kernel with context switching, fixed priority rate-monotonic scheduling, admission control and real-time synchronization using highest locker variant of priority ceiling protocol.
Implementation of guitar tuner with IRQ handler to set up ARM timer and SWI handlers to support system calls.
Implementation of UART and SPI peripherals to write driver for MCP3002 Analog-to-Digital converter and implementation of impulse detector with the driver.
Implementation of parallel breadth-first search to compute single-source shortest path in unweighted directed graph with shared-address space model using OpenMP.
Implementation of parallel bucket sorting algorithm with message passing model using MPI.
Implementation of a common household smart speaker that listens and responds to voice commands. The speaker communicates with other speakers through WiFi as it shares recorded user messages and collected sensor data. It also runs facial and speech recognitions to authenticate different users and set up personal profiles managed in central server.
Implementation of offline speech recognition using existing models with CMU Sphinx on Raspberry Pi.
Implementation of Pokémon-like treasure hunt game with Tkinter GUI module in Python.
Implementation of multi-player word game with Swing GUI framework in Java.
First ever Tri-port design for MacBook Pro to utilize Dual USB-C ports: Gbps Ethernet, 8K Display (Mini-DP + HDMI), USB-3 SSD speed, etc.