Cloud Computing Game Programming

2013.5-2013.6 in Shanghai, China

• (Java) Used the phone as the client device and the computer as the cloud computing server.
• (Java Socket) Succeeded in the cloud computing to exchange data in time.

Multi-Threaded Programming

2015.1-Present in University of Michigan, Ann Arbor

• (C++) Stage 1: Wrote a concurrent program that schedules disk requests with high-level synchronization operations like monitors.
• (C++) Stage 2: Implemented the high-level synchronization operations in the thread library with low-level atomic operations on uniprocessor and multiprocessor systems.
• (C++) Stage 3: Wrote a pager to manage virtual memory for application processes involving system calls and address space handling.
• (Software Testing) Debugged this non-deterministic program by writing several test cases with white-box testing and black-box testing.

Stage 1
Stage 2
Stage 3

SQL Query Processor Implement with C

2014.11-2014.12 in University of Michigan, Ann Arbor

• (Database, Data Structure) Understood how hash table, B+ tree, clustered index work and store, how to do the external sort, and how each method works.
• (C) Implemented the process of INSERT, SELECT with index, SELECT without index, simple nested loop JOIN, indexed nested loop JOIN, sort merge JOIN.

Read More

Querying Fakebook Database

2014.9-2014.10 in University of Michigan, Ann Arbor

• Used ER relation model to design a relational database to store information (User, Friends, Photos, Tags, Events) about the FakeBook social network kind of like Facebook.
• (SQLite3, SQLplus) Used SQL to create tables and did some queries such as to suggest friends based on shared friends.
• (Java, JDBC) Embedded my SQL queries into Java using JDBC to implement a "FakeBook Oracle", a standalone program that answers several queries about the FakeBook database, such as to suggest friends based on shared friends.

Read More

User Based Tag Re-ranking for Social Images

2013.11-2014.6 in Shanghai Jiao Tong University, China

• Improved the traditional tag ranking algorithms, which only take into account the visual clues and the similarity between tags, by considering the influence of user preferences.
• (Python, Matlab) Estimated the preliminary probabilistic tag relevance based on the image features including color, texture and key points features.
• (Matlab) Refined the tag relevance by random walk based on the coupled tag similarity.

Master-Slave Communication Prototype Making

2013.3-2013.6 in Shanghai Jiao Tong University, China

• (Management) Led a 16-people team and divided them into 5 groups based on the design of a medium-scale system.
• (C) Designed wired/wireless communication protocol with a mechanism like TCP.
• (Circuit Design and Welding) Built hardware circuits to implement command communications among each part with nearly 100% success rate.