Having a grasp of the computer system at the bottom layer, now, I am stepping into the software side of the computer system and interested in the Web Development. Currently, I am a software engineer intern at Cvent, Inc.

Contact Me

Location

Peperature (Pebble App)

The Pebble is a smartwatch. It features a black and white e-paper display, a vibrating motor, a magnetometer, ambient light sensors and an accelerometer, enabling its use as an activity tracker. The Pebble is compatible with Android and iOS devices. When connected to a phone, it can receive a vibrating alert to text messages, emails, incoming calls, and notifications from social media accounts.

In the project:

Developed a temperature application on the pebble watch using JavaScript (for the pebble watch) and C (for the server);

Wrote C socket programs to send and get the temperature data between the server (Linux machine) and an Arduino microcontroller, which included a temperature sensor;

Wrote JavaScript code to make Ajax calls between the server and the pebble watch to send temperature data.

Logo Interpreter

Logo is an educational programming language, designed in 1967 by Daniel G. Bobrow, Wally Feurzeig, Seymour Papert and Cynthia Solomon. Today the language is remembered mainly for its use of "turtle graphics", in which commands for movement and drawing produced line graphics either on screen or with a small robot called a "turtle".

In my project, I implemented an interpreter, a recursive descent parser, a tokenizer, and abstract syntax trees for a Logo-like language.
I also tokenized and parsed the BNF (Backus-Naur Form) grammars to form a parse tree, as well as, interpreted each node of the parse tree in a top-down approach, then drew the interpreted command on a GUI

Wa-Tor

Wa-Tor is a population dynamics simulation devised by Alexander Keewatin Dewdney[1] and presented in the December 1984 issue of Scientific American in a 5-page article entitled "Computer Recreations: Sharks and fish wage an ecological war on the toroidal planet Wa-Tor".

In my project, I used the Model-View-Controller to develop the program. I wrote a GUI in Java. In the controller, I wrote the logics for the program to manipulate the data and connected the Model and View classes.I applied the Java Thread Pool and wrote multi-threads for each fish and each shark.

Snake

Snake is a classic video game that originated in arcades during the late 1970s. It became one of the most popular mobile phone games after being loaded on Nokia mobile phones in 1998.

My Snake Game is coded in Java. It provides the options for the scale, difficulty, and the meanings of the arrow keys of the game. I applied Model-View-Contral (MVC) and Observer/Ovservable to the game and animated the snake.

LC-4 Disassembler

A disassembler is a computer program that translates machine language into assembly language—the inverse operation to that of an assembler. A disassembler differs from a decompiler, which targets a high-level language rather than an assembly language.

In my project, I wrote C codes to read in a .OBJ file and loaded the contents of each instruction into a linked list in the heap. I also examined the contents field of each instruction in the memory, translated the machine code back to assembly.

Eliza

Eliza is a computer program and an example of primitive natural language processing. It was originally published by Joseph Weizenbaum and simulated a Rogerian therapist. Most of the responses of Eliza are simply restatements of what the users say.

In my project, I wrote an Eliza-like program that held a plausible conversation with the user in Python codes. I also unit tested every method to ensure the program works.

Arithmetic Logic Unit

In computing, an arithmetic and logic unit (ALU) is a digital circuit that performs integer arithmetic and logical operations. The ALU is a fundamental building block of the central processing unit of a computer, and even the simplest microprocessors contain one for purposes such as maintaining timers.

In our team-based project, we designed and drew schematics and layouts of all the modules in the ALU by Cadence in Linux Environment. The ALU consists of an arithmetic unit which implements most arithmetic functions including: Add, Subtract, Increment, Decrement, Multiplication, and several logical modules, such as AND, NOT, OR, and XOR.The output of our ALU is selected by a 4-bit, 8-1 multiplexer controlled by a group of selection signals in 3 bits.

"Understanding and Control of Power Grids"

This paper ("Understanding and Control of Power Grids") discusses the problems and possible solutions of wind power being integrated to power grids, which apply also to other new energy sources, like solar. Then, power grids as a whole are to be discussed from the perspective of complex networked systems, including: understanding the structure of power grids, understanding dynamics of power grids, predictive modeling and simulation for power grids, and design and control of power grids.

WSN Data Acquisition System for Under-Water Environment

The Data Acquisition System (DAS) is a system designed for collecting and processing data from the real world. It first collects physical parameters measuring real-world conditions such as the temperature and pH values, and then eventually converts them into digital signals such as binary values that can be processed by microcontrollers.

My project focuses on the severe pollution of water and promotes a DAS under water to monitor the water quality. I designed and integrated all the components including sensors, signal conditioning circuitry, mobile terminals, and a MSP430 microcomputer for the front-end of the DAS. I also wrote C codes for the microcomputer to process data.