Teaching & Curriculum
Highlights
Five new degree programs
Led the development and approval of five new degrees at Iowa State: an M.S. in Artificial Intelligence, a B.A. in Computer Science, and Data Science B.S., Minor, and Certificate programs.
A new pedagogy for PL
Authored An Experiential Introduction to Principles of Programming Languages (MIT Press, 2022). The approach led to a 20% improvement in the student success rate.
MentoringResearch-based training
Trained 31 graduate students and postdoctoral fellows and more than 45 undergraduates between 2005 and the present.
Programs developed at Iowa State
M.S. in Artificial Intelligence
Led the development with Prof. Jin Tian. A comprehensive program spanning AI, machine learning, and natural language processing, balancing theory and practice.
B.A. in Computer Science
Spearheaded with Profs. Soma Chaudhuri and Jack Lutz; approved by the Iowa Board of Regents and launched in spring 2023. A flexible 32-credit curriculum that supports double majors and broadens participation.
Data Science B.S., Minor & Certificate
Co-led with Associate Deans Arne Hallam and Sriram Sundararajan; chaired two university committees that designed the B.S. degree and the Minor and Certificate programs.
For the data science programs, I co-designed four new core courses:
- DS 201 — Introduction to Data Science (with Dr. Adisak Sukul). Concepts, domain case studies, analysis pipelines, computing, and ethics.
- DS 202 — Data Acquisition & Exploratory Data Analysis (with Dr. Heike Hofmann). Acquisition, summaries, pipelines, visualization, and reproducibility.
- DS 301 — Applied Data Modeling & Predictive Analysis (with Drs. Kris De Brabanter and Jin Tian). Predictive analysis, machine learning, modeling, and communication, with team projects.
- DS 401 — Data Science Capstone. Multi-disciplinary team projects with oral and written reporting.
Summer school
Midwest Big Data Summer School (2016–2019). I founded this one-week intensive in 2016 to introduce early-career researchers to data science. The first edition drew 144 participants from across the Midwest and beyond, and the 2019 edition more than 175; in total, over 600 attendees benefited across the four years. (Website)
Courses taught
Iowa State University and the University of Virginia, 2004–2020.
- Com S 362 — Object-Oriented Analysis and Design. Four offerings, Spring 2006 – Fall 2007.
- Com S 342 — Programming Language Design, Semantics & Implementation (undergraduate). Eight offerings, 2007–2015; the basis for my MIT Press textbook.
- Com S 541 — Programming Language Design & Semantics (graduate). 2008–2015; used the Coq proof assistant and Types and Programming Languages.
- Com S 610 — Advanced topics & graduate seminars. Type systems (2009), program analysis (2008), aspect-oriented software development (2006), and security properties of software systems (2006).
- Aspect-Oriented Software Development (CS-551/661, University of Virginia). Fall 2004; co-developed and co-taught with Prof. Kevin Sullivan.
- Preparing Graduate Students for a Faculty Career.
Teaching resource: exam.class, a LaTeX class file and example for typesetting exams and quizzes.