Information for ENGI 1006 students
I am the Spring '26 instructor ENGI E1006 at Columbia University. If you are a student in the course, please refer to the Courseworks page for any and all information about the class.
Past courses
2025
Instructor
COMS 4995:
Parallel Functional Programming, Columbia University (Fall).
2023
Head Teaching Assistant
ENGI 1006:
Introduction to Computing for Engineers and Applied Scientists, Columbia University (Fall).
2021
Teaching Assistant
COMS 4995:
Parallel Functional Programming, Columbia University (Fall).
Teaching Assistant
COMS 4115:
Programming Languages and Translators, Columbia University (Fall).
2020
Head Teaching Assistant
CS 112:
Introduction to Computer Programming, Yale University (Spring).
2019
Head Teaching Assistant
CS 50:
Introduction to Computer Science, Yale University, Harvard University (Fall).
Teaching Assistant
CS 112:
Introduction to Computer Programming, Yale University (Spring).
2018
Teaching Assistant
CS 50:
Introduction to Computer Science, Yale University, Harvard University (Fall).
Teaching Assistant
CS 112:
Introduction to Computer Programming, Yale University (Spring).
2017
Teaching Assistant
CS 50:
Introduction to Computer Science, Yale University, Harvard University (Fall).
Teaching philosophy
In my teaching, I am always looking for methods of engaging surface or "strategic" learners, as distinguished from "deep" learners by Marton and Säljö. I recognize a former version of myself in the strategic learner - optimizing one's time and studies with the intent to obtain high grades while minimizing effort, at the potential expense of a deeper understanding.
Many CS classrooms are well-suited to strategic learning. Programming assignments and projects are completed asynchronously, and lecture recordings are frequently offered for flexibility. To the extent that there is a trend away from in-person exams, it is for good reason - an exam poorly assesses the patience, resourcefulness, and large-scale design and critical thinking skills that a computer scientist needs to succeed in the real world.
But while deep learners will appreciate being assessed on their real programming skills, strategic learners may find themselves opting-in to a shallower experience, especially now that AI coding assistants have made it easier to produce convincing and correct assignments without spending the necessary time engaging with core concepts. As educators, if we do nothing in the face of these developments, then our in-person teaching effort is no more useful to students than a free asynchronous online course. I believe deeply in the value of in-person, collaborative learning, so I am always pursuing ways to authentically engage strategic learners in active learning.
Selected teaching samples
My first experience teaching monads in Haskell for COMS 4995 - Part 1
Part 2
Student feedback and evaluations
Understanding and acting upon student feedback is one of the most direct and important avenues for growth as a teacher. I look forward to reviewing course evaluations for Parallel Functional Programming, and as a Columbia TA, I have received glowing evaluations for each of the three courses I have staffed. Linked are complete evaluations for:
Aggregated, over 85% of students rated my overall quality, knowledgeability, and approachability as a TA as either "Very Good" or "Excellent".
Selected student comments:
"Max is the most patient and amazing TA ever. At the start of every recitation, he would ask us which particular topic we wanted to focus on...If we don't understand it in a certain way, he'll use another way to elucidate the concept...no matter what questions we ask or how many. Once, when we had to move out of the classroom because another class was using it, he gladly brought us to another corner to help us...He genuinely loves teaching."
"[Max] is one of the best TAs I have had so far. Very patient in address students' academic challenges. Highly knowledgeable of class material."
"Max explained things in a very clear and effective way."
"Very nice and approachable TA."
"Truth be told, I never went to a recitation, but...I'm sure he's excellent."
Certifications and awards
I'm proud to have earned the Advanced Track certification (the highest possible) from Columbia CTL's Teaching Development Program for "sustained teaching development in graduate school."
I was one of 3 TA's in a staff of 32 for Yale's offering of CS50 to receive the inaugural SCAZ award (named in good humor after Professor Brian Scasselati) for "superior committment and zeal" in fulfilling my many TA responsibilities.