ESP Biography



J.D. ZAMFIRESCU, Computer Dude




Major: Computer Science

College/Employer: MIT

Year of Graduation: 2005

Picture of J.D. Zamfirescu

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

  (Look at the class archive for more.)


The Internet & Computer Networks in Splash! 2011 (Nov. 19 - 20, 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!


Science And Society Roundtable in Spark! 2011 (Mar. 12, 2011)
A discussion of the role of science in society. Should scientists more publicly spread and back up their beliefs about the world? Or should they get back to their labs and focus on what they do best? Is greater scientific literacy important? We will discuss these questions and more. Please come prepared with your questions, your burning desires for answers.


Let the Robots Win? A Conversation about Technology and Our Time in Splash! 2010 (Nov. 20 - 21, 2010)
As we enter the second decade of the century, we are in a perpetual state of technological flux, for the first time in history. Changes that in the past took years or even generations are now measured in months, and there is no evidence that the acceleration of innovation will slow anytime soon. Some embrace the pace of technological growth, while others fear it. Most of us have feelings somewhere in between. As we all struggle to keep up with what's new out there, this class will pause to think a bit about the ramifications of our digital age, and address some questions that get lost in the speedy shuffle. What attitudes do people have toward new technologies? Do societal forces reward or suppress certain attitudes, over time? How does technology change our personal routines? Do we (college graduates in our mid-to-late 20s) have different opinions even from you (high schoolers in your late teens)? Does technology shrink generations? Does the societal impact of technologies change as they move from cutting edge to mainstream? When does technology enhance meaning? When does technology kill meaning? Does technology democratize society, or homogenize it, or both? What are the side effects of free flowing information and communication? Are online friends really friends? Is there room for non-digital or semi-digital technologies in a digital age? Do you love technology, or does it terrify you? Should we let the robots win? This class will be an open conversation, and we would like everyone to come ready to participate. We will bring three different opinions* and a lot of examples and ideas to the table.... but we also want to hear your opinions and examples and ideas too. We can't wait to see where the conversation goes. * JD is a software engineer, Luke is a graduate student in architecture, and Race is Scottish.


The Internet and Computer Networks in Splash! 2010 (Nov. 20 - 21, 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!


Introduction to Programming in Splash! 2009 (Nov. 21 - 22, 2009)
Join us for an introduction to the basics of computer programming. You'll learn about the fundamental concepts of programming and also learn how to think like a programmer. We'll use a graphics-focused programming language called Processing (it's nearly identical to Java). If you have a laptop, bring it and install the software from http://processing.org/


Learn Programming with Interactive Art in Spark! Spring 2009 (Mar. 07, 2009)
This class is really about two things: programming and interactive visual art. First you'll learn the basics of programming in Java, one of the world's most popular languages. Second, you'll learn about interactive computer art, including some basic principles of visual design. Should be lots of fun! No programming experience required (and in fact, you may find the first bit of the class boring if you already know programming, but feel free to come anyway!) Bring a laptop if you'd like to follow along.


An Insider's View of the Internet and Computer Networks in Splash! 2008 (Nov. 22 - 23, 2008)
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!


Computer Graphics Programming with Processing in Splash! 2008 (Nov. 22 - 23, 2008)
Come learn about graphics programming with the Processing language (www.processing.org). We'll talk a bit about how to run animations and how to make interactive graphics.


Unschooling, or "What they won't tell you about compulsory schooling." in Splash! 2008 (Nov. 22 - 23, 2008)
Come join a critical discussion on the origins of the modern American compulsory schooling system. Some of the questions we'll talk about: why do more school hours *not* mean more learning? Whose idea was compulsory education? What impact does it have on society? What can you do for yourself to improve the quality of your education? And of course, bring your own questions too!


Facebook App Programming with AppJet in SPLASHONWHEELS (2008)
We will teach you how to build Facebook Apps! We will also give you a free place to host them, ...


Web App Programming with AppJet in SPLASHONWHEELS (2008)
In this class, we will teach you how to build interactive web applications and give you a place to host ...


Facebook App Programming with AppJet in SPLASH (2007)
We will teach you how to build Facebook Apps! We will also give you a free place to host them, ...


Laboratory in Web App Programming in SPLASH (2007)
These lab sessions complement the "Web App Programming with AppJet" and "Facebook App Programming with AppJet" classes. In this lab, ...


Learn Programming with Processing in SPLASH (2007)
This class is all about teaching people who haven't programmed before how to use a cool graphical programming language called ...


Web App Programming with AppJet in SPLASH (2007)
We will teach you how to build interactive web applications and give you a place to host them for free. ...


Web App Programming with AppJet in SPLASH (2007)
We will teach you how to build interactive web applications and give you a place to host them for free. ...


Web App Programming with AppJet in SPLASH (2007)
We will teach you how to build interactive web applications and give you a place to host them for free. ...


What's the Internet all about anyway? in SPLASH (2007)
Have some programming skills but at a loss when it comes to TCP/IP? Come learn about how the nuts and ...


Processing and Wiring in HSSP (2006)
This course is an introduction to both programming (with Processing) and hardware design (with Wiring). See the Processing (www.processing.org) and ...


Learn Programming! in SPLASH (2006)
Learn how to program using a graphical language! This course will cover the basics of programming, including how to create ...


Intro to Programming with Processing in SPLASH (2005)
Sick of "Hello World!" and other lame look-the-computer-can-spit-your-name-at-you introductions to programming? Then learn how to program using the highly-visually-oriented Processing ...


Intro to Programming with Wiring in SPLASH (2005)
In this class we will continue the Introduction to Programming (C254-S4P) by controlling and monitoring hardware. We will learn about ...


Network Programming with Python in SPLASH (2005)
What's a socket? Learn about how networks work from an operating systems perspective. We'll learn about UNIX file descriptors, network ...


Welcome to Corporate Media: Population 6 in SPLASH (2005)
Where do you get your news? Chances are it's from one of the 6 media congolmerates that own more than ...