Dong Han

Hello, I'm a software developer, loving computer programming. I earned master's degrees in Software Engineering. I am a graduate student in Computer Science at present. I have a broad range of interests in computer. From large to small, I am capable of developing Apps on Cloud platforms, Desktop systems, Mobile devices, and Microcontrollers. From front-end to back-end, I have experiences in designing interactive user interfaces, web services, server-side business logics, and database. From theory to system, I am knowledgeable in cutting-edge research, either tough studies or intelligent topics, including bioinformatics, linear/convex optimization, data mining, and machine learning. Besides, I am a hardcore PC&Console gamer and a mobile game developer. If you are seeking a multifunctional developer to build complicated systems or design tricky algorithms for research problems, please let me enroll.


Sep 2014 - Jan 2016

Context-aware distributed storage in mobile cloud computing

Worked as a research assistant in this research topic. By considering the inefficient cloud storage for mobile devices, the idea of distributed storage was proposed to improve the efficiency in accessing the data stored at the cloud. In traditional cloud storage, we put all users' data at big data centers, which may not always efficient for mobile users, who are moving over time. The distributed storage method stores data at nodes that give the best performance to the users by considering users' context information, including locations, mobility patterns, and network conditions.
Research Project Data Mining Linear Programming Gurobi Solver Eclipse IDE Java Matlab Latex

Jan 2015 - Apr 2015

Pattern recognition and machine learning course projects

Individually completed 2 projects in the graduate-level course.
Project 1: skin detection. The objective of the project is to build a classification to detect faces and other skin areas of human bodies in pictures. Two classifiers, naive Bayes and Bayesian decision, are chosen. The result shows that the accuracy of Bayesian decision based on RGB or YIQ color model can get 86.5%. The result outperforms the other strategies.
Project 2: digit recognition. The objective of the system is to identify a digit. The digit is composed by a dot matrix, each dot is an LED light. Some LED lights on the matrix are defects. The problem takes challenges to the digit recognition. In my implemented classifier, it can recognize digits composed by a few defected dots and the ability to recognize rotated digits.
Course Project Machine Learning Pattern recognition Matlab

May 2013 - Jan 2015

Thermal-aware energy-efficient task scheduling for DVFS-enabled data centers

Worked as a research assistant in this research topic. We optimized the total power consumption in a data center by tasks scheduling, to efficiently assign computational tasks to different machines. The power consumption of CPU was modeled as nonlinear cube function that was more practical than the traditional linear model. A mixed-integer convex model was built for the optimization. The simulation results showed that the proposed method was more accurate than other studies.
Research Project Convex Optimization CVX Matlab Latex

Sep 2014 - Dec 2014

Information retrieval and knowledge discovery course projects

Gained 4.0/4.0 full credits from the graduate-level course. Individually completed 2 projects.
Project 1: forest coverage prediction. Trained a classifier to recognize different forest cover types, i.e. the tree that covers the area is determined. Proposed to use multiple ANN classifiers, which could get a better result than one ANN classifier.
Project 2: text mining. Find subtopics of hashtags on twitter. A hashtag is a topic label to refer the content of the tweet that is created by a publisher. By searching a hashtag, you would get massive tweets. The proposed clustering method could discover different subtopics in the search result. This can help users to discover interesting subtopics.
Course Project Data Mining Machine Learning Java Matlab

Dec 2014 - Jan 2015

Multi-functional PET imaging genetics in Alzheimer's disease

This was a research project that I worked as a research assistant. Did research for multi-functional PET imaging genetics in Alzheimer’s disease. In the study, we examined single nucleotide polymorphisms (SNPs) based on the whole genome sequencing (WGS) data. I individually identified 3 different SNP genotypes that have significant correlations with quantitative traits (QTs) of PET imaging at particular regions of human brains. The founded SNPs may have potential impacts on Alzheimer’s disease. The study has been published in the Journal of Nuclear Medicine.
Research Project Bioinformatics Data Mining Python Matlab

Jan 2015 - Oct 2015

OncoWuXi, an oncology App on mobile devices

Worked as a front-end engineer, participated in the development of a mobile oncology project. Responsible for the cross-platform application development. Completed the requirement of keeping the flexibility in implementation, to make it scalable of building and releasing on multiple platforms, such as Android, iOS, without re-writing for each particular system. The cross-platform framework Ionic based on PhoneGap and AngularJS was chosen as a key technology to satisfy the requirement. The performance of Javascript on Android was carefully taken into account. The implementation was thoroughly optimized to improve user experiences, regarding the smooth interaction, and lagging elimination on lower-end mobile devices.
Industry Project Bioinformatics Android JavaScript HTML CSS JSON AJAX Ionic AngularJS PhoneGap Cordova WebStorm Fiddler

Jan 2015 - Oct 2015

Internet of Things: Raspberry Pi as a wireless remote outlets controller

In this personal project, I used Raspberry Pi, a credit card size computer, to simulate a wireless outlet controller. There are many applications of using a programmable computer to control the ON/OFF of outlets. For example, we can schedule the light to be opened in the early morning to wake us up. We can easily open/close the light when we are laying on the bed using a mobile phone. Moreover, we can remotely control electronics using any devices connected to the Internet when we are away from them. The programmable controller based on Raspberry Pi gives more flexibility than a traditional remote controller. This prototype demonstrated that a Raspberry Pi can be extended to support the solution of smart home applications.
Hobby Project IoT Wireless Security USRP Raspberry Pi Linux C Language PHP Apache HTTP Server HTML JavaScript JQuery Vim Editor

Aug 2009 - Jun 2010

Hummingbird: a high efficiency 2D game engine on Android

Worked as a game engine developer. Designed an efficient game engine for 2D real-time animation rendering on Android platform. Investigated efficiency and bottleneck of OpenGL ES on popular Android phones. The 2D engine was specifically optimized for computational resources restricted Android phones. Based on the engine, 2 mobile games were released on Android APP markets. By comparing the performance of a scenario of rendering the large number of sprites, the released game engine, named "HummingBird", outperformed the 2 popular rendering methods: native Android Canvas , and Cocos2d-x.
Hobby Project Android Eclipse IDE Java C# OpenGL ES

Jun 2010 - Dec 2010

Projects at Microsoft internship

Worked as Software Development Engineer Intern. Completed 2 projects related to the developments of workflow for travel requests and approvals. Designed many features to make the systems looking intuitive and easy to use. Most fields in a travel request form were automatically filled for users. A lightweight SMTP proxy service was implemented. All steps of workflows were notified by emails. Users could process applications in emails without open the system. Implemented backup and restore functions to resist failures and errors.
Industry Project C# SharePoint Server/Designer InfoPath Windows Server Visual Studio SQL Database Server HTML SMTP

Jun 2009 - May 2010

Data mining methods in signatures automatic discovery

Proposed a method based on frequent sequential patterns mining. The method can automatically identify signatures of new network applications. These extracted signatures will be further used in network traffic classification systems. Different from traditional methods, where signatures are manually extracted by specialists with domain knowledge. New network applications are increasing by days. The artificial method is inefficient to the proprietary applications with private protocols. That causes it cannot satisfy a classifier to recognize up-to-day new applications. The new method is developed to solve the above problem by generating signatures from an application traffic automatically. The analyzed signatures are presented as regular expressions, that can be easily integrated into many well established classification systems.
Research Project Data Mining C++ Language Wireshark

Dec 2007 - Jun 2008

Object-Oriented MiniJava compiler

MiniJava is a language from a subset of Java. It keeps the most of Object-Oriented features in Java language, and simplifies some other grammars. In this research, we studied how to use Object-Oriented method to establish a MiniJava compiler. We did research in related theories, technologies, tools, and state of the art frameworks. We developed detailed algorithms for practical implementation to support Object-Oriented features in MiniJava. Then we use Java to implement the compiler. The compiler can interpret MiniJava source code into x86 assembly source code. A few real programs were accomplished by MiniJava, including a greedy snake game. They were compiled into executable files that could be ran on PC.
Research Project Java JTB JavaCC Windows SDK Compiler C Language Assembly Language Eclipse IDE

Filter Projects by Skills/Categories


Programming Languages

Technical Skills



As a teaching assistant to support these courses at Computer Science department, Oakland University.
Semester Course
Jan. 2016 - Apr. 2016 Information Security Practice (CIT 448)
Introduction to Computer Networks (CIT 247)
Sep. 2015 - Dec. 2015 Information Security Practice (CIT 448)
Wireless & Industrial Networks (CSE 549)
Jan. 2014 - Apr. 2014 Interactive Web Systems (CSE/CIT 252)
Sep. 2013 - Dec. 2013 Interactive Web Systems (CSE/CIT 252)
Sep. 2012 - Dec. 2012 Introduction to C Programming & Unix (CSE 142)