Hello world! I am Tianyu Cheng from Zhejiang, China. I am an undergraduate student in the University of Texas at Austin. I major in computer science and mathematics. I am interested in many areas of computer science, and I am currently working on J2EE/SSH, Python/Django for web applications, mobile development with Android SDK,and OpenGL for computer graphics. Apart from coding, I also take interest in music and art.
If you are looking for a hard-working coding partner, a conscientious intern or even a Karaoke buddy, please contact me by email(email@example.com) or phone(512-517-1107).
> Computer Science
- (CS384G)Introduction to Computer Graphics (Graduate Course, In Progress)
- (CS343H)Introduction to Artifical Intelligence, Honor (In Progress)
- (CS331H)Introduction to Algorith,, Honor (In Progress)
- (CS345H)Programming Languages, Honor
- (CS439H)Operating System, Honor
- (CS429H)Computer Organization and Architecture, Honor
- (CS349)Contemporary Issues with Computer Science
- (CS314)Data Structure
- (CS313K)Logics, Sets and Functions/Discrete Math
- (CS312)Introduction to Programming
> Web-based Linear Algebra SolverFebruary, 2014
The web-based linear algebra solver is a project aiming at teaching student how to solve classical linear algebra problems by elaborating the steps on how to work out problems. This idea is inspired during the linear algebra lecture. It is built using Python with Django. It currently provides functionalities including row reduction, solving for determinant and matrix inverse, etc.
> Desktop Task ReminderJanuary, 2014
The desktop-based task reminder is a desktop sprite implemented with Qt5. It is a birthday present for my mother. It provides the following features:
- record tasks in local database (sqlite3)
- alarm when a task is due
- lock screen on a regular interval (customizable; the default is 2 hours)
Here are some screenshots of this project.
> File Compression with Huffman CodingAugust, 2013
This project is a pair programming assignment from the data structure letcture. In this assignment, students are required to read binary files, count the frequency of the codec table, and build the Huffman coding tree before compressing the files.
Here are some screenshots of this project.
> OpenGl Skeletal AnimationJuly, 2013
This is a computer graphics project implemented with C++ and OpenGL. It is my first attempt to build my own graphics library toolkit. Some of the codes will be chosen to be in my future project on 3d game engine.
Before I started on this project, I designed the UML to make graphical objects to be in a hierachy order (similar to that of Java3D), and tried to apply as many Object-Oriented Programming techniques as I can to this project. However, some of the designs conflicted with the "aged" GLUT library in the process. Therefore I switched to SFML (Simple and Fast Multimedia Library) and achieved my design.
In this project, I implemented the following parts:
- scene rendering (terrain and skybox)
- 3d model parsing, loading and rendering (currently supporting 3ds, stl and pmd models)
- model animation with bone binding
> Guitar Hero and VisualizerApril, 2013
The guitar hero is a school project when I was taking the Introduction to Programming. It is an interesting project and it demonstrates the application of physics by programming. This project owes the credit to its physics basis, Karplus-Strong synthesis.
On top of that, I also built the guitar hero visualizer, which shows the string percussion with offscreen rendering and multithreading. With the presence of this visualizer, this program is easier to operate and thereafter became more interactive.
> Web-based Law Case ManagerOctober, 2012
This is a project inspired by my father, an attorney. He requested me to write an application to automate their law case management. Traditionally, my father and his colleagues need to manually request a code/number and fill in multiple forms for each law case. My work simplifies the procedure and replace the majority of the work by computer. In my application, the code/number is automatically generated and the forms will be filled in with basic information. After filling all information, the application will save the record into a local database, and also print out the forms as a copy.
In this project, I used Python with Karrigell and MySQL for my first attempt for a web application. I made several templates with Microsoft Excel and used the corresponding APIs to modify the template dynamically. After I learnt LaTex, the previous design using Excel was deprecated, and was replaced completely by LaTex.
|Programming Languages||Proficiency in Java|
|Fluency in C/C++, Python|
|Exposure to Ruby, Haskell|
|Exposure to HTML5/CSS3, Java/Struts, Python/Django|
|Developing Tools||vim, eclipse, intelliJ IDEA, Xcode|
|Comfortable with UNIX/Linux environment|
My email is firstname.lastname@example.org
My phone number is (512)517-1107
Thank you for visiting my website!