ESP Biography



MICHAEL COHEN, MIT freshman studying Math and Computer Science




Major: 18

College/Employer: MIT

Year of Graduation: 2014

Picture of Michael Cohen

Brief Biographical Sketch:

For as long as I can remember, I've loved computers and programming them. When I got to high school, I discovered the USA Computer Olympiad, a great contest involving programming, algorithms, and data structures. USACO introduced me to a truly astounding and beautiful part of computer science: how to not just solve problems not by brute force, but by exploiting their deep structures to get often exponentially more efficient algorithms. I recommend USACO for anyone who even considers taking my class. In my senior year, due to a top-four finish in USACO, I was invited to the International Olympiad in Informatics, a similar but international competition, where I finished 5th.

I have also long enjoyed math, both parts that overlap with computer science and other parts. However, unlike with USACO, I have never performed particularly well on math competitions.



Past Classes

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

C3988: Amazing Algorithms - Network Flow Part 1 in Splash! 2010 (Nov. 20 - 21, 2010)
There are tons of different optimization problems out there in computer science. One feature that many of them have in common is that they can't be efficiently solved. But there is an important type of problem, called a network flow problem, that can in fact be solved quite efficiently. Network flow asks how to most efficiently move "stuff" through a network, where "stuff" could be anything from packets on the Internet to materials on a road grid to an abstract notion of association. The class will begin by defining network flow and discussing its applications. Then, we will talk about how to solve it! Algorithms covered for the basic maximum-flow problem may include the Ford-Fulkerson algorithm, the Edmonds-Karp algorithm, Dinic's algorithm, push-relabel methods, and further improvements to these approaches. The class may also cover related topics such as the max-flow min-cut theorem and minimum cost flows. This is an awful lot to digest at once, so the class has been split into two parts, with a break between them. I will structure the class so that you can attend only Part 1 and still understand what network flow is and some ways (though not the most efficient) to solve it. Also, note the use of "may" in the above. The exact topics covered are likely to change depending on your interests.


C4152: Amazing Algorithms - Network Flow Part 2 in Splash! 2010 (Nov. 20 - 21, 2010)
There are tons of different optimization problems out there in computer science. One feature that many of them have in common is that they can't be efficiently solved. But there is an important type of problem, called a network flow problem, that can in fact be solved quite efficiently. Network flow asks how to most efficiently move "stuff" through a network, where "stuff" could be anything from packets on the Internet to materials on a road grid to an abstract notion of association. The class will begin by defining network flow and discussing its applications. Then, we will talk about how to solve it! Algorithms covered for the basic maximum-flow problem may include the Ford-Fulkerson algorithm, the Edmonds-Karp algorithm, Dinic's algorithm, push-relabel methods, and further improvements to these approaches. The class may also cover related topics such as the max-flow min-cut theorem and minimum cost flows. This is an awful lot to digest at once, so the class has been split into two parts, with a break between them. I will structure the class so that you can attend only Part 1 and still understand what network flow is and some ways (though not the most efficient) to solve it. Also, note the use of "may" in the above. The exact topics covered are likely to change depending on your interests.