adam j hartz
Department of Electrical Engineering and Computer Science
Massachusetts Institute of Technology
MIT Building 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 typically
runs over IAP.
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 the fall 2019 semester, i am lecturing for 6.003 and co-running a section of 6.A01 with Joe Steinmeyer.
in iap 2020, i will oversee the final offering of 6.145.
in spring 2020, i will be teaching 6.009 with Ana Bell, Duane Boning, and Max Goldman.
my plans for fall 2020 are still somewhat up in the air, though i would not be surprised if i were lecturing for 6.009 and running a recitation for 6.003.
subjects (in order of recency):
- 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.009 Fundamentals of Programming:
- lecturer: 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
- 6.02 Introduction to EECS via Communication Networks:
- course development ("lab czar"): FA12
- 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
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
- 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 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 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!