This post contains a list of selected undergraduate projects of me, some of which are hosted at GitHub. The followings are projects that I am or was a member of, in reverse chronological order.

Growing Tree-Structured Self-Organizing Featrue Map (GTS-SOFM) Based Phonetics Research System

This project was the request of Dr. Ji Lu of Beijing Language and Culture University, as part of his doctoral thesis experiments.

Tiandi 360 Survey System

This project was a request of Tiandi Energy, Ltd.. Due to confidentiality policies, the content of this project shall not be disclosed.

Quanr Microblog

Quanr Microblog (which unfortunately is no longer hosted by the competition website) was the course project of course Software Engineering as well as a work competing in the 4th Software Design Contest, which won a Third Prize. In this project, I was the *team leader*, who coordinated the 5-people team and cooperated with my teammates to finish the system, which has many functions including an OAuth SDK and a mobile client.

Portable Automatic Exam Scoring System

This project was the course project of the Embedded System Design and Applications course. In this project, I individually developed a scoring system based on computer vision in Windows CE. Compared to traditional complex automatic scoring systems, this system can give user the freedom to design her own machine-read exam paper, and score with only a camera and a computer.

TexTriBute: A Text Retrieval System under Distributed Framework

This project was the course project of course Advanced Data Structure. In this project, I and my teammate constructed a distributed storage/computation structure, which provided both data redundancy and more efficient query, for indices of a given text corpus. The text are indexed with Latent Semantic Index, in order to provide a content-based search result.

Semantic-Based Query Optimization on Hyper-SQL Database

This project was the course project of course Principles of Database Systems, in which I was the *team leader* of the team. This projects intergrated three semantic-based query optimization into Hyper SQL Database (H-SQL DB), an open source database management system, namely join elimination, empty query detection and query condition simplification.

Semantic-Directed LR Grammar Analyzer

This project was the course project of the course Principles of Compilers, in which I collaborated with 3 other teammates to build an LR Grammar Analyzer. Similar to famous LR analyzers like ANTLR, this project is able to generate the source Java code of a RL parser. What differs this project from traditional LR analyzer is that it provide a interface for semantic-directed computation of properties of symbols, based on which a calculator can be constructed from a property-tagged RL grammar. Now hosted at GitHub.

Regular Language Analyzer

This project was the course project of the Normal Language and Automata course. The analyzer can analyze the input regular expression (regex) and generate a corresponding Non-deterministic Finite Automata (NFA). Afterwards, the NFA is converted to a Deterministic Finite Automata (DFA), which is more efficient in program implementation. Finally, the DFA is optimized to minimize the number of states and transitions. This project can generate an regex engine for real use in, for example, lexer in compilers. Now hosted at GitHub.

Geoxiom : A quasi-natural language and compiler of professional geometric-chart construction.

Geoxiom is a quasi-natural language and the corresponding compiler of professional geometric-chart construction. It generates vector-based charts of geometric elements used in industrial publication field, such as paper writing and book documentation. The scripting language is quasi-natural, meaning that it is similar to natural descriptive languages of geometric objects in mathematics.
Visit Geoxiom at Google Code

Office Website for Tsinghua Network Support Center

This was a request of Tsinghua Network Support Center, and also serves as the course project of Practice of Programming. I coordinated as the *team leader* and designed the Facade level as well as most of the user interface of the website.

Economical Road Construction Planning Based on Geographical Information

This was the course project of the course Discrete Mathematics II, which mainly focused on the graph theory and related algorithms. This project is a single-person project. I finished this project by modeling geographical information with mesh, and then applying shortest path algorithms to the modeled mesh. Besides, I made use of the course project for Computer Graphics and offered realistic visualization in this project.

CPU-based Rendering with Phong’s Algorithm

This was the course project of the Computer Graphics course, which is a one-person project. In this project, I was required to implement Phong’s Rendering Algorithm in pure VC++, which strained my skill in C++ and as well as object-oriented architecture skill.

Simple Instant Messaging (Simple IM)

Simple IM is the course project of the Computer Network course, in which I was the *team leader*. I and two other teammates designed their own IM protocol based on TCP/IP connection. This IM software also supports file transfer, image share, and offline message.

Car Detection from Parking Lot Picture

This project was part of the problem of Sponsor Group of the 2nd Software Design Contest of Tsinghua University, which I finished on my own. In this problem, a picture of a parking lot is given, where the number of cars in the picture as well as their positions are required to be detected with the program. I and my teammates *ranked 2nd* out of about 10 teams in the Final, and won the Award of Merit in this contest.

Information Exchange System

Information Exchange System was a project supported by the Software Students’ Research Training (SSRT) Project, in which I was the *team leader*. This project aims to solve the problem of information boom and the often low efficiency and effectiveness of information exchange. With each post tagged with a type tag, posted to a special group of person, and marked with priority, this system is more efficient than ever.