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 at MIT and elsewhere.
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
subjects (in order of recency):
- 6.009 Fundamentals of Programming:
- lecturer: SP18, FA18, SP20, FA20, SP21, FA21
- recitation instructor: SP17, FA17
- 6.A01 Mens et Manus First-year Advising Seminar:
- section instructor (music visualization): FA19, FA21
- 6.003 Signal Processing:
- lecturer: SP18, FA18, SP19, FA19
- recitation instructor: FA20, SP21
- course assistant (software development): FA11
- course development teaching assistant: SU11
- 6.145 A Brief Introduction to Programming In Python (formerly 6.s080):
- lecturer: FA16, IAP17, SP17, SU17, IAP18, SU18, IAP19, IAP20
- 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 Teaching with Digital Technology Award (MIT Open Learning)
- 2019 Digital Innovation Award (MIT EECS)
- 2018 Big Screw Award (MIT APO)
- 2017 Oustanding Educator Award (MIT EECS)
- 2015 Best Instructor Award (MIT HKN, MIT EECS)
- 2012 Carlton E. Tucker Award for Excellence in Teaching (MIT EECS)
current masters students:
- Hope Dargan
- Marie S. Feng (co-advised with Rob Miller)
- Caleb Noble
- you? (if you are interested in projects related to engineering education or educational technology, please feel free to reach out)
former masters students:
- Kade Phillips (M.Eng 2020, co-advised with Denny Freeman): The THRIFT Parser
- Jeremy Wright (M.Eng 2019): Python Semantic Investigator: An Interactive Debugger with Reversible State
- Samantha Briasco-Stewart (M.Eng 2018): Making Python Easier to Learn with Improved Syntax Error Reporting
- Anne Kelley (M.Eng 2018): A System for Classifying and Clarifying Python Syntax Errors for Educational Purposes
- Katy Kem (M.Eng 2017): Laboratory Assignments for Teaching Introductory Signal Processing Concepts
- Jeremy Kaplan (M.Eng 2017): An Interpreter for a Novice-Oriented Programming Language with Runtime Macros
- Rodrigo Gomes (M.Eng 2016, co-advised with Tomás Lozano-Pérez): The S4 Infrastructure Management System
- Daniel Martelly (M.Eng 2016): A System for Automatically Grading Graphs in an Educational Setting
- Michael Mekonnen (M.Eng 2014, co-advised with Denny Freeman): Automatic Protoboard Layout from Circuit Schematics
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). most are not fully finished, but they should be usable (more-or-less).
- CAT-SOOP: a modern, programmable learning management system
- 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 (near Princeton
). my parents are both retired math teachers, and they formerly owned Anne's Antiques
, an antique shop in Princeton, IL. 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 Boxboro, 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 tabletop role-playing games (Dungeons and Dragons, Savage Worlds, etc), which i play regularly with a group of friends.
i am a supporter of the Free/Libre Software
movement, and i believe that privacy is a universal human right
, 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 personal computing, so here is a brief summary
in case anyone is interested.
the most reliable way to reach me is via e-mail, at email@example.com
. 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!