Skip to content

Instantly share code, notes, and snippets.

@ekzhang
Last active October 5, 2019 19:06
Show Gist options
  • Save ekzhang/bc9b815a79681e7f2f42e2dd4866e2e5 to your computer and use it in GitHub Desktop.
Save ekzhang/bc9b815a79681e7f2f42e2dd4866e2e5 to your computer and use it in GitHub Desktop.
Class pitches for MIT ESP Splash 2019

Putting Big Things in Tiny Boxes: An Introduction to Compression (1h50m, ★★★)

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.

Prerequisites: Some familiarity with computer science or mathematics is encouraged, but not required.

Lambda Calculus and Puzzles (50m, ★★)

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!

Demystifying Cryptography (50m, ★★)

"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.

Estimation Markets (50m, ★)

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment