ESP Biography



J.D. ZAMFIRESCU-PEREIRA, MIT alum; ex-Googler; startup founder.




Major: Computer Science

College/Employer: MIT

Year of Graduation: 2005

Picture of J.D. Zamfirescu-Pereira

Brief Biographical Sketch:

J.D. has been teaching for ESP since 2002, when he taught an introductory Computer Science class for HSSP. J.D. received his Master's degree in computer science at CSAIL in 2006; his research focused specifically on networks and distributed systems. After working at Google for a year J.D. left to help start AppJet, a startup looking to make building web applications easy, which developed into EtherPad, a realtime multiplayer notepad in your browser. EtherPad was acquired by Google in 2009, where J.D. worked until April 2011.

Learn more about J.D. at http://zamfi.net



Past Classes

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

M2615: The Internet & Computer Networks in Splash! Fall 2012 (Nov. 03 - 04, 2012)
Learn about TCP/IP, BitTorrent, HTTP, Ethernet, SMTP, IMAP, and lots of other transfer protocols in this class on computer networking, We'll talk about servers, clients, peers, the global IP address shortage, successful (and failed) network protocols, and the relationship between ping times and the speed of light, and lots of other stuff in between. If you know a little about computer networks but want to get really in-depth, this is the class for you!


M1628: The Internet and Computer Networks in Splash! Fall 2011 (Oct. 29 - 30, 2011)
Got some 1337 skills but at a loss when it comes to networks? Come learn about how the Internet and computer networks work! I'll teach you how to use and abuse the internet's underlying network protocols TCP and IP, and application protocols like HTTP, SMTP, and POP. You'll also learn about some of the fundamental physical limitations that restrict connection speed. Cool demos included!


M1723: Learn to Program Interactive Art in Splash! Fall 2011 (Oct. 29 - 30, 2011)
Learn the basics of programming using JavaScript and interactive art. You'll make little sketches that you can publish online and share. We'll use the sketchpad.cc environment; lots of examples of what you can do on that site! Visit http://goo.gl/Mq7M4


V1574: Design by Numbers: Programming and Interactive Visual Art in Splash! Spring 2011 (Apr. 16 - 17, 2011)
Learn how to create interactive designs by programming! We'll start with a whirlwind introduction to programming and then work with different kinds of sensors to make computer art that reacts to you. This class will go fast, so come prepared to not remember everything!


C937: The Internet and Computer Networks in Splash! Fall 2010 (Nov. 13 - 14, 2010)
Do you consider yourself 1337-in-training and want to know more about how the Internet works? Come learn about TCP/IP and many of the protocols that make up the Internet, including HTTP (for the web), SMTP (sending email), and POP (receiving email). You’ll also learn how the Internet is laid out, why the speed of light matters, how your data packets get to Japan or Australia, and why sending email or IMs is like sending a message on a postcard!


C822: The Internet and Computer Networks in Splash! Spring 2010 (Apr. 17 - 18, 2010)
Do you consider yourself 1337-in-training and want to know more about how the internet works? In this class, you'll learn about TCP/IP, and many of the protocols that make up the Internet, including HTTP, SMTP, and POP. You'll also learn how the Internet is laid out, how your packets get to Japan or Australia, and why sending email or IMs is like sending your message on the back of a postcard!


C824: Learn Programming! in Splash! Spring 2010 (Apr. 17 - 18, 2010)
Learn how to program in two easy hours! Get a taste of programming and use it as a springboard for further exploration. No previous experience required.


C825: Ask a programmer anything in Splash! Spring 2010 (Apr. 17 - 18, 2010)
Ask a professional programmer anything! I will endeavor to answer any question you may have about computer science, programming, and related fields. Of course, I don't know everything, but even if I can't answer your question, I'll try to point you in the right direction. :) (A bit of background: I went to a top college, programmed for a top Silicon Valley company, and have had my own - moderately successful - startup.)


C548: Programming with Java in Splash! Fall 2009 (Oct. 10 - 11, 2009)
This is an introduction to programming class. Learn how to program Java using the graphics-based Processing programming environment. See processing.org for more about Processing.


C660: Reading Code in Splash! Fall 2009 (Oct. 10 - 11, 2009)
Are you a pretty good programmer but looking to move to the next level? You know some PHP and can kind of hack your way around stuff, but get stuck when it comes to debugging, or modifying someone else's code? A key skill for professional programmers is the ability to read code and understand what it does. That's what we'll talk about in this new, experimental class. Bring code that interests you and we'll plow through it!


L664: Failure in Splash! Fall 2009 (Oct. 10 - 11, 2009)
Most human societies stigmatize failure. In the past, failure often led to people being ostracized and ignored. Today, however, we're lucky to be in one of the failure-accepting societies in human history. Join our discussion about failure, being wrong, and why it's ok (and crucial!) to make mistakes!


C218: Computer networks from the inside. in Splash! Spring 2009 (Apr. 04 - 05, 2009)
Have some programming skills but at a loss when it comes to computer networks? This is the class for you! Come get an insider's perspective on how the Internet works. We'll talk a bit about TCP, IP, HTTP, SMTP, POP...and lot of other acronyms that end with P; we'll talk a lot more about tools you can use to um..."explore" networks, and we'll see some of those tools in action. Bring a laptop if you have one!


C426: Interactive Digital Art in Splash! Spring 2009 (Apr. 04 - 05, 2009)
Come learn about interactive digital art. We'll learn some of the theory behind computer animation and digital design, and put that theory into practice. Do you like games like playauditorium.com? Love the falling sand game? Enjoy those demos where they show simulated birds flying around? We'll talk about how to write stuff like that, and more! You MUST know how to program to take this class. Really. You will otherwise find it really boring. You must know what variables and functions are, how a for-loop works, and you must have at least basic familiarity with Java.


C94: Web Programming with AppJet in Splash! Fall 2008 (Oct. 18, 2008)
We will teach you how to build interactive web applications and give you a place to host them for free. Some experience with programming and HTML is recommended. We will be using a new online programming tool called AppJet. AppJet is designed to make it really easy to write a hosted web application. With AppJet, you write your entire program using JavaScript. (For those in the know: AppJet runs your JavaScript on its servers and has a JavaScript object database). We will also provide free hosting at .appjet.net.


C196: Computer Networks, or, would you mail a password on a postcard? in Splash! Fall 2008 (Oct. 18, 2008)
Come learn the basics of how computer networks work! If you've got some programming skills but are at a loss when it comes to networking, this is the class for you! How does email work? IM? The web? What's TCP? What's IP? What does a router do? Answers to all these questions and more!


C197: Advanced Computer Networking in Splash! Fall 2008 (Oct. 18, 2008)
Prerequisites: You must know about TCP and what IP addresses are and how they work. If you don't, take "Comptuer Networking" and then take this class next year. :) You must also know how to program. In this class we'll talk about the nitty-gritty of computer networking, including a look at how to write networked applications (in Python). We'll also talk a little about "fun" things you can do with an advanced knowledge of network systems. :-D


Introduction to Computer Networking in SPLASH (2008)
Have some programming skills but at a loss when it comes to TCP/IP? Come learn about how the nuts and ...


PHP & MySQL Programming with PHPvm in SPLASH (2008)
Learn how to build a web app! In this class we'll go over the basics of how the web works ...