Project

HousingBubble
Property renting platform website
SQL/PHP/HTML/CSS/JavaScript

  • Design the E/R Diagram of database system built mainly with PHP, MySQL, and Python.
  • Enable users to perform advanced search for properties, construct sophisticated recommendation system based on both collaborative and content-based filtering with cosine similarity and k-nearest neighbor clustering algorithm. Implement Bloom filter to reduce the time complexity for finding duplicate usernames.
  • Earn Hall of Fame award in Database Systems competition in Computer Science Department of UIUC.

The Hitchhiker’s Guide to the Computer Science
Course search platform
Python

  • Design and build a platform for students to search and get information about interesting courses efficiently by letting them only make a vague query as input.
  • Implement robust Apriori, closed-pattern, max-pattern, GSP, and prefix-span algorithms to analyze frequent patterns and sequential patterns in course abstract and compare efficiency to facilitate searching feature.
  • Implement and analyze how different distance calculation algorithms affect correctness and speed on text retrieval. Rank texts based on Term Frequency – Inverse Document Frequency model.

TacOS
Kernel of UNIX operating system
C/x86

  • Designed various parts of an operating system including paging about virtual memory, integrated system calls for various files like the keyboard, real-time clock and the file system. Managed hardware interrupts, execution of processes, multiple terminals, file system, memory allocation, and scheduling with round robin.

 

Golden Carmen
Optimization of computation in convolutional neural network
CUDA

  • Properly distributed loops of batch images, feature maps and pixels among different dimensions of grid blocks on GPU. Cleverly set local variables to reduce memory reads. Applied tiling with shared memory to read and store all necessary sectional data at first to reduce global reads. Rewrote indexing to change the reading order to make the most use of memory burst and threads. Calculated the best block size number minimizing the control divergence under Streaming Multiprocessor’s constraints of shared memory.
  • Improved the efficiency by 105263%. For a specific dataset, it took 1.2 seconds to run on GPU but now took only 11.4 milliseconds. Won the first place in the optimization competition, which consists of 83 competitors.