[Day 626] I gave a lecture to 400 students

Today, I was invited to give a guest lecture for the class CS224N: Natural Language Processing with Deep Learning. I was excited. First, I’d never given a lecture to such a big audience before – there are 400+ students in the class. Second, it’s Richard Socher‘s class. He’s hands down one of the most chill professors I know. For some reason, he always looks like he’s just got out of bed and we occasionally catch him biking down the stairs to the classroom. Third, I’d always heard that speaking at NVIDIA Auditorium is lit and I want to try it out before graduating. Continue reading “[Day 626] I gave a lecture to 400 students”

[Day 626] I gave a lecture to 400 students

[Day 276] Detailed instruction on how to do Style Transfer

If you don’t already know, style transfer is the cool, hip thing that has been taking the recreational AI community by storm. It’s so cool that even Kristen Stewart co-authored a paper about it. To quote one researcher who has done extensive work in style transfer that I’ve got a chance to talk to, “it is an utterly unremarkable paper that wouldn’t have been published otherwise [if Kristen Stewart’s name is not on it]. That’s a publicity stunt.”

kristen stewart style transfer.jpgSome background on why I’m doing this: I’m teaching the course CS 20SI: “TensorFlow for Deep Learning Research” and for the assignment about convolution neural networks, I thought it’d be fun for students to do style transfer as their exercise at home. They, after all, showed a lot of enthusiasm when we did Deep Dream in class.

Continue reading “[Day 276] Detailed instruction on how to do Style Transfer”

[Day 276] Detailed instruction on how to do Style Transfer

[Day 136] Meet Richard Stebbing–my unbelievable boss

Last summer, I worked under Richard Stebbing and he is kinda a genius. I googled him the other day and found out that he finished his undergrad engineering degree in  3 years with straight A-plus. He then became a Rhodes scholar at Oxford, finishing his PhD also in 3 years. Every time I see him code, I’m like: “Wow, you can do that?” When he wasn’t blowing me away with his coding skills, he made a sport out of making fun of me.

Continue reading “[Day 136] Meet Richard Stebbing–my unbelievable boss”

[Day 136] Meet Richard Stebbing–my unbelievable boss

[Day 24] We built an automated essay grading system

For our CS224D’s final project, Lucio and I took on Kaggle’s Automated Essay Scoring competition. We tried to build a model that can automatically grade your essay. You input an essay and voila, it outputs the score for it. The dataset we have is for essays grade 7 to 10, but the model is easily scalable. It can be used to grade SAT/ACT practice essays or any kind of essays, as long as we have enough training data.

Continue reading “[Day 24] We built an automated essay grading system”

[Day 24] We built an automated essay grading system

Since when programmers prefer Macs over Windows

When I got my first Mac 5 years ago, my programmer friends almost disowned me for being such a disgrace to the local nerd community. At that time, there was a prevailing sentiment that real coders used Windows or Linux. Macs were for the fuzzy, the uninitiated, the sparkling nincompoop in the realm of marketing.

Continue reading “Since when programmers prefer Macs over Windows”

Since when programmers prefer Macs over Windows

Why computer coordinates start from the upper left corner

When I first studied graphics programming, I was traumatized that the coordinate system on a computer’s screen is upside down. The positive x-axis starts on the far left and points to the right as normal coordinates should do, but the y-axis has its 0 at the top of the screen and nosedives straight down to hell from there. Imagine that you have all your graphics worked out beautifully on paper, and then when you try to program it in a computer, you have to flip all the figures and re-calculate all the coordinates. Why can’t computer scientists be normal for once and respect the centuries-old Math? Cartesian coordinates were invented in the 17th century, while the first electronic general-purpose computer (ENIAC) didn’t come out until 1946.

Continue reading “Why computer coordinates start from the upper left corner”

Why computer coordinates start from the upper left corner

Evil Hangman

I learned about Evil Hangman a while ago when I was reading my professor’s blog (Don’t judge me. I’m sure you googled your professors too. The Onion wrote about it.). I never got around to write this game until today when I woke up and decided that I should do something with my life.

Evil Hangman is like normal Hangman — players try to guess a secret word by entering different letters. But in Evil Hangman, players are (almost) guaranteed to lose. I said “almost” because Evil Hangman is a program with a deterministic algorithm. If a player knows how it works, they can guess the letters in a way to maximize their chance of winning.

Continue reading “Evil Hangman”

Evil Hangman

Translating MATLAB to C code

As a low level research assistant in a lab, I have recently been assigned the task of translating a chunk of MATLAB code to C. When I contacted my brother for guidance, he looked at me blankly: “Why? Who does that?” I never thought code translation was a thing. Why don’t people just write their programs in their desired language from the beginning? Why must they come up with new ways to torture these poor research assistants? Warning: this post contains some nerdy information that you shouldn’t be concerning yourself with unless you unfortunately have to.

Continue reading “Translating MATLAB to C code”

Translating MATLAB to C code