adam j hartz
Department of Electrical Engineering and Computer Science
Massachusetts Institute of Technology
MIT Room 38-591
77 Massachusetts Avenue
Cambridge, MA 02139
(PGP Public Key
i am a senior lecturer in the department of electrical engineering and computer science at
MIT. my main interests lie in teaching engineering and computer
programming, with an emphasis on problem solving and engineering design; in improving the
way we teach these subjects; and in developing new means of leveraging modern
technologies to improve face-time with students.
most of my work within the department has been with the
development and instruction of 6.01 (an introduction to engineering from the
perspective of EE and CS, with applications in robotics).
in recent years, i
have been involved with development and instruction of 6.009 (fundamentals of programming) and with a
redesign of 6.003 (signal processing).
i also developed 6.145, an introductory
programming course that used to run over IAP but is now just available as
an online resource.
outside of classes i teach, my most visible work is with CAT-SOOP, a programmable learning
management system used in several subjects within course 6.
i am also an academic advisor for course 6 students, and i occasionally
supervise m.eng or urop projects, typically related to education and/or
- in fall 2020, i will be co-lecturing 6.009 (Fundamentals of Programming) with Adam Chlipala and Armando Solar-Lezama and i will be running a recitation for 6.003 (Signal Processing) with Jing Kong and Kevin O'Brien.
- i am not sure if i will be teaching anything over IAP 2021.
- in spring 2021, i think it is likely that i will be teaching 6.009 and 6.003.
subjects (in order of recency):
- 6.009 Fundamentals of Programming:
- lecturer: SP20, SP18, FA18
- recitation instructor: SP17, FA17
- 6.145 A Brief Introduction to Programming In Python (formerly 6.s080):
- lecturer: FA16, IAP17, SP17, SU17, IAP18, SU18, IAP19, IAP20
- 6.003 Signal Processing:
- lecturer: SP18, FA18, SP19, FA19
- course assistant (software development): FA11
- course development teaching assistant: SU11
- 6.A01 Mens et Manus First-year Advising Seminar:
- 6.01 Intro to EECS via Robotics:
- lecturer: FA13, SP14, FA14, FA15, SP16, FA16, SP17, FA17, SP18, SP19
- lab instructor: FA12, SP13, SP15
- instructor (g): SP12
- teaching assistant: SP11, FA11
- lab assistant: SP09, FA09, SP10
- 6.02 Introduction to EECS via Communication Networks:
- course development ("lab czar"): FA12
- 2020 MIT ODL Teaching with Digital Technology Award
- 2019 MIT EECS Digital Innovation Award
- 2018 MIT APO Big Screw Award
- 2017 MIT EECS Oustanding Educator Award
- 2015 MIT HKN/EECS Best Instructor Award
- 2012 Carlton E. Tucker Award for Excellence in Teaching
current m.eng students:
- Kade Phillips (B.Sc 2018): Improvements to Digital Typesetting Systems (co-supervised with Dennis M. Freeman)
former m.eng students:
- Jeremy Wright (B.Sc 2019, M.Eng 2019): Python Semantic Investigator: An Interactive Debugger with Reversible State
- Samantha Briasco-Stewart (B.Sc 2017, M.Eng 2018): Making Python Easier to Learn with Improved Syntax Error Reporting
- Anne Kelley (B.Sc 2017, M.Eng 2018): A System for Classifying and Clarifying Python Syntax Errors for Educational Purposes
- Katy Kem (B.Sc 2016, M.Eng 2017): Laboratory Assignments for Teaching Introductory Signal Processing Concepts
- Jeremy Kaplan (B.Sc 2017, M.Eng 2017): An Interpreter for a Novice-Oriented Programming Language with Runtime Macros
- Rodrigo Gomes (B.Sc 2015, M.Eng 2016): The S4 Infrastructure Management System (co-supervised with Tomás Lozano-Pérez)
- Daniel Martelly (B.Sc 2014, M.Eng 2016): A System for Automatically Grading Graphs in an Educational Setting
- Michael Mekonnen (B.Sc 2013, M.Eng 2014): Automatic Protoboard Layout from Circuit Schematics (co-supervised with Dennis M. Freeman)
if you are a current student looking for a UROP or an M.Eng in the areas of education and/or educational technologies, feel free to reach out!
the following are a couple of software-related projects i have worked on (at least the ones that someone else might find useful). they're not fully finished, but they are mostly usable.
- CAT-SOOP: a modern, programmable learning management system used in several subjects at MIT
- creek: a tool for live-streaming large, somewhat-interactive lectures
- PLGRM: a tool for managing access control to remote Git repositories
- hive: a distributed issue tracker
- the tako shell: a command language and shell based on Python (a fork of xonsh, which I also worked on)
- hzeep: a nice terminal font
- minder: a simple text-based calendaring system
i grew up in rural Illinois (in the country near Princeton
). my parents are both retired math teachers, and they currently own Anne's Antiques
. my elder brother also teaches math, at Hononegah High School
in Rockton, IL.
i graduated from MIT with a b.sc in computer science and engineering (6-3) in 2011, and with an m.eng in electrical engineering and computer science in 2012.
i now live in Lexington, MA with my trusty feline companion Stronger
, whom i adopted from the Merrimack River Feline Rescue Society
in 2009. i keep myself occupied in my free time by playing and writing music, programming, reading, and playing video games. i also enjoy playing tabletop role-playing games (Dungeons and Dragons, Savage Worlds, etc).
i support Bernie Sanders
i am a supporter of the Free/Libre Software
movement, and i believe that more people should care about their right to have a private life, online as well as offline. for this reason, i try to use only Free/Libre Software, and to reject the use of tools created by entities that profit from surveilling and profiling their users (e.g., Google, Facebook, etc ...).
students occasionally ask about how i do my computing, so here is a brief summary
in case anyone is interested.
the most reliable way to reach me is via e-mail, at firstname.lastname@example.org
. i do not have a facebook, linkedin, google+, twitter, gmail, etc. please note, though, that i view e-mail as a form of asynchronous
conversation. please do not expect me to receive your e-mail (or respond to it) immediately. i try my best to respond to e-mail within one business day, but sometimes i may be faster or slower than that.
i appreciate it when e-mails are PGP encrypted
with this public key
(you can also download the key by running gpg --recv-keys 0xE179AD62
on a GNU/Linux system). if you do send me encrypted mail, please also include your public key so i can encrypt the response!