I teach 700–1,000 students per year at Cornell to write correct, efficient, and beautiful programs in OCaml, Java, and Coq.
OCaml Programming: Correct + Efficient + Beautiful. This is the textbook for CS 3110 at Cornell. It originated as course notes over two decades of teaching by myself and other faculty. I began expanding and transforming it into a textbook in Fall 2018. As of Summer 2021, I am the author of about 40% of the words in the book, and all of the 200 embedded YouTube videos.
Software Foundations. This textbook is used widely for upper-level classes in programming languages, including in CS 4160 at Cornell. I am a contributing author to Volume 1 (Logical Foundations) and Volume 3 (Verified Functional Algorithms).
2021: Professor of the Year Award, Cornell University, Tau Beta Pi National Engineering Honor Society. The award citation read,
“This award is given each year to recognize exemplary teaching and commitment to our students. Tau Beta Pi oversees the selection process and Engineering students nominate their favorite professor.”
An accompanying letter from the Tau Beta Pi President read,
“Professor Clarkson has consistently displayed both passion and empathy to bring out the best in his students.”
2020 and 2015: Excellence in Teaching Award, Cornell University, College of Engineering. Both times the award citation read,
“This is highest award for teaching in the college.”
What Students Say
Here are a few recent quotes from students:
From an alum: “CS 3110 remains a transformative life experience for me. Every week at work I use my 3110 knowledge of higher order functions, partial application, and monads. 3110 made picking up Scala at work a breeze. And 3110 gave me the ability to have the thought ‘hmm… this is unfamiliar syntax. I wonder what its semantics is’ instead of guessing at the semantics without even really knowing that I’m guessing.”
From an asynchronous student during pandemic: “These lectures were some of the best that I had experienced, not only during a virtual semester, but throughout my entire time at Cornell. Every lecture was extremely well produced, interesting, and beneficial to my understanding of the content and of my future as an engineer in the computer science industry. Other professors should consider Michael Clarkson and CS 3110 as a prime example of how to successfully teach a course.”
From a TA: “Over the past two years as a TA, I have come to admire even more the work you do as a professor. I continue to be inspired by your style of lecturing and the commitment you show to your students. […] Every lecture was like a well-polished gem that, at a minimum was clear and insightful, and at best, evoked a measure of joy (and now let me make the embarrassing confession that I even cried a bit during the [lecture on the beauty of the Curry-Howard isomorphism]).”
Ratings for me as an instructor and for my courses are above average in the CS department and the Engineering college.
My teaching load started at about .4 kilostudents and recently has exceeded 1.0 kilostudents.
- CS 1380 Data Science for All [2018sp]
- CS 2110 Object-Oriented Programming and Data Structures [2020sp] [2019sp]
- CS 3110 Data Structures and Functional Programming [2021fa] [2021sp] [2020fa] [2019fa] [2018fa] [2017fa] [2016fa] [2015fa] [2015sp] [2014fa]
- CS 4160 Formal Verification [2020sp] [2019sp]
- CS 5430 Systems Security [2017sp] [2016sp] [2015sp]
- A Taste of Data Science [2019su]
- CSMore Pre-3110 [2020su]