# Michael Liu (刘天宇)

Resume## A little about myself

a picture of meI'm a third-year student at UW - Madison. I come from Guangzhou, China.

email: __my__english__first__name__see__title__lty2520@gmail.com

## Current Projects

- Review Math (complex analysis, abstract algebra, topology, cryptography)
- Develop an android app (little idea what to do yet)
- A OS X app that plays slideshow with customized speed
- Rewrite the tracking system for internet installation using django (see Work Experience for details)
- gomoku AI
- Implement some ANN, preferably something that plays a game or using LSTM

## Some of my past projects

- My Blog (aka this site)
- Started with a great online tutorial
- Developed using Django and Python 3
- Added many other functions like search-bar, site navigations (by time and by tag), tags (by taggit), markdown, (by markdownx) comments, etc.
- Matrix Completion
- A machine learning method to predict movie ratings, and other interesting stuff
- Link to my implementation
- Writeup with teammates
- Usnig two better algorithms than the one we learned in class, Iterative Singular Value Thresholding (sample paper describing it), we are able to lower errors by more than ten-fold (result 1, result 2)
- A final project of course ECE 532 at UW - Madison
- Competitive Programming
- link to my kattis and leetcode account
- solved thousands of interesting programming puzzles
- Participated in ICPC (north central region) in 2017 and some other online contests like Google Code Jam

## Work experience

- 2018.10 - 2019.1 helped my family business set up a tracking system for their internet installation services
- 2017.2 - 2017.4 PEOPLE Program tutor
- 2015.9 - 2016.5 Nand2Tetris TA at my high school (happily volunteered, no pay)

## A list of classes I've taken (grades, comments)

Currently all classes are taken at UW - Madison, which means their numbers come from our school's course catalog. Entry-level classes omitted, though I did do pretty bad in one architecture class, because I was pretty much the only freshman in class (thanks to Nand2Tetris) and was trying to learn Clang in one month...oh well.

Note that classes vary from year to year and my feelings about 'em are (by definition) not objective.

- Computer Science
- CS 435 (BC) - covers the basics of cryptography, somewhat mathy (not proof-based but mathy). if you're into security consider taking 639 (one variation of it). probably shouldn't it with three other math classes...
- CS 520 : Theory of Computer (A) - if you're interested in theory, this is a great class to take. it's also kinda easy.
- CS 532 : Matrix Methods in Machine Learning(B) - this is a pretty good class. you learn a lot about machine learning, especially toward the foundations, which is very important and very easy to overlook. i imagine that i could do better in it some other time, since i took it right after my gap year.
- CS 537 : Operating Systems (A) - this is a must-take for any CS majors in my arrogant opinion. pretty solid. but if you're not good at algorithms or system programming (CS 564, etc.) don't take this class with them. I took it with complex analysis (Math 522) and had to drop complex analysis.
- CS 540 : Intro to Artificial Intelligence (AB) - while i've heard others who had to do serious work for this class, i did not do much coding in this class.
- CS 559 : Computer Graphics (AB) - pretty interesting class if you're into game design or just drawing pretty things using algorithms in general.
- CS 564 : Database (AB) - my prof. teaching this semester is a guru in his field who loves relational databases and his glorious days that shaped the field. upside: lots of cool database tricks, pretty intellectual; downside: too much cool database tricks that undergrads are not going to need for the rest of their lives. also, lots of the assignments are either too easy or too hard.
- CS 577 : Algorithms (AB) - i love algorithms.
- CS 640 : Computer Networks (A) - okay class, prof. was entuhusiastic about the subject. but why did we use Java to do network programming assignments? thank God they redid it with Python now.
- Math
- Math 375 : Honors Calculus and Linear Algebra (I) (A) - Linear algebra, intro-level diff. eq. (ODEs), and a little analysis. This is proof-based and it's really solid.
- Math 376 : Honors Calculus and Linear Algebra (II) (A) - Calculus. Again, proof-based and the scope is really wide (prof. introduced differential forms at the end.).
- Math 521 : Analysis (I) (A) - Basic analysis, proofs are really elegant but this class is not really solid, as far as i know.
- Math 522 : Analysis (II) (B) - Complex analysis, proofs are really long and hard. Don't take this class when you have other heavy workloads.
- Math 541 : Abstract Algebra (I) (A) - Really interesting branch of math. Would recommend to any CS major who wants to learn more math.
- Math 551 : Topology (I) (A) - Another really interesting branch of math but not so close to CS. If you did well in this class, there's actually still so much to learn in topology.
- Other
- Soc 125 : American Society - How it really works? (AB) - Really interesting sociology class that discusses a wide range of important topics. Light workload. Would totally recommend.
- Hist 201 : History of Humanitarianism (AB) - (Comm B class, not so heavy workload though) interesting class with a wide range of materials and good lecture.
- Lang 101 : Intro to Linguistics (Dropped) - Dropped before first midterm (about a month into the class). If you want to do NLP (natural language processing), you don't have to take this class as it is a lot of phonetics (not that it's not important). Perhaps read some up-to-date intro NLP books or syntactic structures.

## Timeline

2019.9 - Now Studying at UW - Madison

2018.9 - 2019.8 Gap Year

2016.9 - 2018.8 Studied at UW - Madison

2012.9 - 2016.6 Studied at Allendale Columia School