# ESP Biography

## ERIC ZHANG, Harvard CS/Math, competitive programmer

Major: Computer Science and Math

College/Employer: Harvard University

## Brief Biographical Sketch:

Eric is a freshman at Harvard concentrating in computer science and math. He is also interested in physics and music. His past teaching experience includes coauthoring a physics book, as well as teaching math and computer science to top high school students through AlphaStar Academy.

Eric is also a competitive programmer (IOI gold medalist, international grandmaster on Codeforces) and a violist with the Harvard-Radcliffe Orchestra.

## Past Classes

(Clicking a class title will bring you to the course's section of the corresponding course catalog)

X13447: 3.7 Seconds for Every Pokémon in Splash 2019 (Nov. 23 - 24, 2019)
Come learn a few things about every Pokémon up to Generation 7! You may learn about some that you never knew before, or about some funny descriptions of the more well-known ones.

C13490: Putting Big Things in Tiny Boxes: An Introduction to Compression in Splash 2019 (Nov. 23 - 24, 2019)
You take a photo on your iPhone X's 12MP camera; that's 12 million pixels! This is roughly 36 MB of data -- but it only takes about 1 MB of space on your computer. How were you able to store the entire image in 1/36 of its actual size? The magic: compression algorithms! We will be discussing various techniques for the compression of data, starting from the basics (RLE) and ranging to lossless methods such as entropy encoding, LZW compression, and the Burrows-Wheeler Transform. The last part of the class will be an exploration of compression methods for images, taking a look at some ad hoc approaches that we might try (8-bit graphics!). We'll then conclude with an in-depth examination of how modern lossy algorithms, like JPEG, are able to achieve ~20x compression ratios with no perceptible change in quality.

C13491: Lambda Calculus and Puzzles in Splash 2019 (Nov. 23 - 24, 2019)
Lambda calculus: it's like "calculus" - except with more programming, and no calculus! You can think of it as a super low-level functional programming language; all data is composed of functions (written with the letter λ), and by combining functions in various clever ways, we can actually perform any computation. Learn about Alonzo Church's famous invention that rocked the foundations of computer science, and try your hand at solving programming puzzles in the language itself!

M13492: Estimation Markets in Splash 2019 (Nov. 23 - 24, 2019)
Learn about financial markets while practicing your Fermi estimation skills in this classic game! Open to anyone with interest in math, science, or finance. Quick thinking and awareness of other players are of utmost importance.

M13587: Demystifying Cryptography in Splash 2019 (Nov. 23 - 24, 2019)
"Oh, crypto? I know a lot about bitcoin!" You've heard about crypto everywhere in the news, but behind all the bait, there's actually some very beautiful, clever mathematics that goes into engineering the systems that keep our world running securely. We'll start with a brief discussion of classical cryptography (2000 BC-1950 AD), where we talk about various ciphers and puzzle about how to crack them. In the second half, we'll talk about the modern model of cryptographic systems in the computer era, including secure hash functions and pseudorandom number generators, and we'll culminate in a discussion of the RSA cryptosystem.