I grew up in The Bronx, NY (“You got a problem with dat?” – that’s how they talked in my old neighborhood, no joke) until I was 9. The Bronx is one of the 5 Boroughs of New York City, if you didn’t know. I moved to Westchester (suburb of New York) for a year and then upstate to a small town near Cooperstown, NY (where the Baseball Hall of Fame is located). I graduated from Cooperstown Central High, went on to MIT where I got a double major in CS and EE and graduated in 5 years. Then I came to Cal as a grad student, did a MS in Game Theory in 1995 and a PhD in Graphics in 2000, got bitten by the teaching bug and joined the faculty (in the teaching track) in 2000.
I started with Basic in high school in 1985. At MIT I learned Scheme (in the class CS61A was modeled after, taught by the authors of SICP) and C. When I got to Berkeley, I learned Tcl/Tk, Java, Python, Unix, Matlab, Mathematica, html & perl. My current favorite language is Python, definitely.
With two little ones, I no longer have time for hobbies. Their hobbies are my hobbies, i.e., going to parks, playgrounds, museums, and biking around. I’ve gotten more into photography and videography, because that’s something I can do with them.
However, before I had kids my hobbies were: puzzles, games, golf, basketball, ultimate, animation, juggling, programming, classic comedy sketches, movies, genealogy, and sharing jokes.
I can juggle 5 balls, ride a unicycle (poorly), spin things on my finger, play the harmonica and congas badly (partly because I can’t read music), recite entire Monty Python sketches, hit a golf ball 275 yds (though I have yet to break 90!), do an L hang, and wiggle my ears.
In high school, I tied the school record in the 200m dash (23.2 s) and I was the fastest rapid calculator in central NY (~100 high schools). My high school basketball team went to the state final four game, and our team was recently inducted to our high school athletic hall of fame! In 2012 I was chosen as an ACM Distinguished Educator. In 2007 I lived in Melbourne (Australia) for 5 months, and I also climbed half-dome a decade ago. I’ve seen a bit of the world (Australia, New Zealand, China, Mexico, Canada, Venezuela, Brazil, Qatar, Greece, Spain) but have lots of travel ahead of me.
In addition to this class, I’m also teaching CNM190/CS194-8 (Advanced Digital Animation) a year-long course that teaches students how to make Pixar-quality short films. I’m the program co-chair for SIGCSE 2017, the top computer science education conference in the world. As well, I’m running the world’s greatest edX course (BJCx) with an awesome team of undergrads. I serve on the Advanced Placement Computer Science Principles development committee. I supervise three awesome DeCals: GamesCrafters, UCBUGG and MS-DOS X. I’m on the undergraduate study and chairing the awards committee, and I do EECS and L&S faculty advising. I’m on the ACM Education Council, more advisory boards than I can count, and I’m the local faculty champion of our CSTA chapter. I have two awesome grad students. I’ve got a 2-hour commute each way (1 hr on BART and time to drop-off or pick-up my little ones from school). Finally, and most importantly, I’ve got a wonderful wife, and a son and daughter with whom I try to spend as much time as possible. Phew!