Since the Fall of 2015 I've had the pleasure of introducing computer science in a rigorous, compelling fashion to over 6,000 undergraduates.
My first few years of teaching have emphasized iterating on approaches, techniques, projects, and conceptual emphasis semester-over-semester. The rigor of COMP110 Introduction to Programming, my primary course of record, has grown significantly since 2015 thanks to pedagogical improvements, scaling of educational technologies, and the introduction of a gentler on-ramp course alternative I designed for less comfortable students.
A driving goal in my teaching work is improving the representation, opportunities, and successes of women, underrepresented minorities, and LGBTQIA computer scientists.
In the Summer of 2018 I was charged with the design and pilot of a new course for majors in the computer science department. COMP590 Little Languages emphasizes modern systems programming in C and Rust, in the environment of unix-like operating systems, in the domain of little language implementation (i.e. regular expressions in grep, expression parsing and interpretation in bc, command-line interpretation and process management in bash, and so on).
Courses
COMP110 - Introduction to Programming
Semester
Language
Notes
Spring 2020
TypeScript
Introduction of Undergraduate Teaching Assistant designed problem sets.
Fall 2019
TypeScript
Refinement of course with highest emphasis on frequent assessment to date.
Spring 2019
TypeScript
Introduction of student produced Environment Diagrams to model execution of a program in memory.
Fall 2018
TypeScript
Transition to flipped class with short videos and frequent quizzing.
Spring 2018
TypeScript
Recursion first, imperative second curriculum in homage to Structure and Interpretation of Computer Programs.
Fall 2017
TypeScript
Transition to a language that: 1. has plain-old functions as values, 2. runs in the browser, while retaining 3. strong type checking. Enables smoother ramp up, sharing of projects on the web, and the ability to introduce functional-style programming and higher-order functions.
Spring 2017
Java
Recognition of math advantage gap (report coming) leads to a return to imperative early, objects later curriculum. Fist HACK110-athon.
Fall 2016
Java
JavaFX GUIs. Enrollment grows to over 800 enrolled supported by 50 UTAs.
Spring 2016
Java
Transition to Objects Early and only Undergraduate Teaching Assistants (UTAs)
Fall 2015
Java
Inherited Objects Late Curriculum
COMP211 - Systems Fundamentals
Semester
Language
Notes
Spring 2020
C
Second iteration of pilot course for new introductory sequence increases emphasis on systems concepts (representation, processes, memory management) and tools for software engineering, while decreasing emphasis on language theory.
Spring 2019
Rust, C
Designed and piloted new course to introduce systems programming in Rust in the context of Little Languages, such as bash, grep, vim, dot, and so on. Projects focus on implementation of little language processors, such as dc, bc, grep, and others.
COMP290 - Tools for Computer Science
Semester
Notes
Spring 2020
Final offering of pilot course as this course's content is folded into the new COMP211 - Systems Fundamentals course.
Fall 2019
Pilot 1-hour course for majors to introduce fundamental tools: shell, vim, make, git, and so on.
COMP426 - Modern Web Development
Semester
Language
Notes
Summer 2019
JavaScript
Leading a group of students on a study abroad course in Copenhagen this summer!
COMP101 - Introduction to Computing
Semester
Language
Notes
Fall 2018
TypeScript
Quiz model replaces midterms, 6x paper quizzes.
Spring 2018
TypeScript
CS0.5 slowed pace, increased repetition to improve outcomes of students interested in programming who have a disadvantaged Math background.
COMP290 - CS Ed Research Seminar
Semester
Notes
Fall 2018
Thanks to a grant for Research-Related Skills course development through UNC's Quality Enhancement Plan, I led a small undergraduate seminar course on the Best Papers of ACM CS Education Symposiums (SIGCSE, ICER, ITiCSE) since 2008.
Invited Talks
Year
Venue
Subject
2019
COMP915 Graduate Course on Teaching at the University Level