# ESP Biography

## JACOB STEINHARDT, MIT junior studying Computer Science and Math

Major: Computer Science

College/Employer: MIT

## Brief Biographical Sketch:

I was born in Ithaca, NY but spend most of my pre-college life in Virginia, near D.C. I went to Thomas Jefferson High School for Science and Technology for high school, where I was an officer for the math, physics, and computer science teams. I also attended various math and computer science summer programs -- the Math Olympiad Summer Program, the USA Invitational Computing Olympiad, and Canada/USA MathCamp. I currently work at the Robot Locomotion Group at MIT CSAIL. I'm interested in Artificial Intelligence, Cognitive Science, and Robotics.

## Past Classes

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

C5458: Introduction to Algorithms: Searching and Sorting in Splash! 2011 (Nov. 19 - 20, 2011)
Algorithms drive most of the technology we see today: Google search and Google maps, Facebook, and Amazon.com all have algorithms tightly woven into their software. This class will be a quick introduction to algorithms. An algorithm is a procedure for accomplishing some task, usually with efficiency as a goal, and oftentimes implemented on a computer. We will lay the foundations for constructing and analyzing algorithms, using the examples of sorting a list of numbers and finding a number in a list.

C5464: Graph Algorithms in Splash! 2011 (Nov. 19 - 20, 2011)
Have you ever wondered how Google maps works? In this class we will go over the theory behind it, developing a fast way of finding the shortest path from A to B.

C5467: Data Structures in Splash! 2011 (Nov. 19 - 20, 2011)
There are a million words in the English dictionary, but when you start typing one on your iPhone, you quickly get a list of autocompletes. How is that possible? In this class, we'll see how to store enormous datasets on a computer in ways that make lookups easy.

C5468: Randomized Algorithms in Splash! 2011 (Nov. 19 - 20, 2011)
Is it okay if an algorithm works ‘almost all’ the time? In this class, we’ll see how computers can use randomness to run faster. We’ll give randomized algorithms for finding medians, for testing if a number is prime, and for finding structures in graphs. Along the way, we’ll prove that the probability that our algorithms fail is less than the probability that the computer spontaneously bursts into flames.

C5499: Google Navigator and Bayes' Theorem in Splash! 2011 (Nov. 19 - 20, 2011)
Most smartphones have a "my location" button that tells you where you are currently located. The locator is accurate enough to be used for navigation through urban environments, where the streets are close together and there are many intersections. Have you ever wondered how this is done? You might think the answer is GPS, but it turns out that GPS alone is not accurate enough for street-level navigation. We'll go over a way to combine GPS with other information to get more accurate estimates. If time permits, we'll go over how to use the same techniques to segment an image (that is, to divide it up into individual objects).

M5514: Probabilistic Modeling in Splash! 2011 (Nov. 19 - 20, 2011)
In the early days of artificial intelligence, researchers tried to model decision-making by chains of logical deductions. We have now come to realize that logic is much too strict for making everyday decisions. A much better approach is to use probabilities to represent uncertainties about the state of the world, and then update those probabilities based on new information. In this class I will lay down the fundamentals of probabilistic modeling, then go into examples of its applications. These examples will cover hypothesis testing in experiments, improving the accuracy of measurements, de-blurring images, data mining, and modeling human thought. NOTE: The first hour of the class will be self-contained, so it is possible to leave after one hour and still get something out of the class.

S3957: Being Optimal in Splash! 2010 (Nov. 20 - 21, 2010)
A vast pile of evidence suggests that humans (even very intelligent humans) have suboptimal habits. Come to this class to find out which of these things you do --- then find out how to stop.

S3958: Probabilistic Modeling in Splash! 2010 (Nov. 20 - 21, 2010)
In the early days of artificial intelligence, researchers tried to model decision-making by chains of logical deductions. We have now come to realize that logic is much too strict for making everyday decisions. A much better approach is to use probabilities to represent uncertainties about the state of the world, and then update those probabilities based on new information. In this class I will lay down the fundamentals of probabilistic modeling, then go into examples of applications. These examples will cover hypothesis testing in experiments, improving the accuracy of measurements, de-blurring images, data mining, and modeling human thought.

C4275: Introduction to Algorithms: Searching and Sorting in Splash! 2010 (Nov. 20 - 21, 2010)
Algorithms drive most of the technology we see today: Google search and Google maps, Facebook, and Amazon.com all have algorithms tightly woven into their software. This class will be a quick introduction to algorithms. An algorithm is a procedure for accomplishing some task, usually with efficiency as a goal, and oftentimes implemented on a computer. We will lay the foundations for constructing and analyzing algorithms, using the examples of sorting a list of numbers and finding a number in a list.

C4277: Graph Algorithms in Splash! 2010 (Nov. 20 - 21, 2010)
Have you ever wondered how Google maps works? In this class we will go over the theory behind it, developing a fast way of finding the shortest path from A to B.

C4279: Data Structures in Splash! 2010 (Nov. 20 - 21, 2010)
How can computers efficiently manage large amounts of data? In this class, we will answer this question. Learn how to quickly look up a name in a database and how to determine how much of your data lies in a given range. As a bonus, we will develop an efficient algorithm for string matching (a string is a sequence of characters or numbers).

C3278: Algorithms for Awesome in Spark! 2010 (Mar. 13, 2010)
Algorithms rock But sometimes they don’t make sense Segmentation fault Topics: Big-O (runtime analysis), sorting, searching, data structures (heaps, trees), graph theory (flood-fill, disjoint set, Dijkstra’s algorithm).