Teaching
- Courses
- Invited Talks
- Service
- Grants
- Professional Development
- In the News
- Teaching Awards & Recognition
Since the Fall of 2015 I've had the pleasure of introducing computer science in a rigorous, compelling fashion to over 8,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 and the scaling of both my Undergraduate Teaching Assistant team and innovative educational technologies.
A driving goal in my work is improving the representation, opportunities, and successes of marginalized and underrepresented groups in computer science.
Courses
COMP110 - Introduction to Programming
Semester | Language | Notes |
---|---|---|
Spring 2021 | Python | Introduction of readings and essays on Responsible Computing, ethics, and algorithmic bias. (Remote) |
Fall 2020 | Python | Scale-out of Python course redesign with blend of synchronous and asynchronous instruction. (Remote) |
Summer 2020 | Python | Small-scale, remote pilot of course redesign with modern Python's static type annotations. (Remote) |
Spring 2020 | TypeScript | Transition to remote instruction halfway through semester due to COVID-19. |
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 |
---|---|---|
Fall 2020 | C, Bash | Third iteration of pilot course, taught fully remotely with a mix of synchronous and asynchronous instruction. |
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 | Chancellor's Science Scholars Summer Bridge Program | Introduction to Programming Workshop |
2019 | COMP915 Graduate Course on Teaching at the University Level | Teaching Large Enrollment Courses |
2018 | Center for Faculty Excellence Teaching Showcase | Large Enrollment Student Support "Patient Chart" Database |
2018 | Chancellor's Science Scholars Summer Bridge Program | Introduction to Programming Workshop |
2018 | Microsoft Developer Division | Reflections on Introducing Programming with TypeScript in a CS1 Course |
2018 | COMP915 Graduate Course on Teaching at the University Level | Teaching Large Enrollment Courses |
2017 | Center for Faculty Excellence Teaching Showcase | Working with Undergraduate Learning Assistants |
2017 | Chancellor's Science Scholars Summer Bridge Program | Introduction to Programming Workshop |
2017 | COMP915 Graduate Course on Teaching at the University Level | Teaching Large Enrollment Courses |
2017 | UNC Chiron Award Talk | Living the Dream: On Following Passions Professionally |
Service
Years | Title |
---|---|
2020-Present | UNC Study Abroad Advisory Board |
2019-Present | Director of CS Learning Assistant Program - Oversee hiring of over 150 learning assistants each semester. |
2016-Present | CS Undergraduate Curriculum and Planning Committee |
Fall 2020 | School of Data Science Phase II Pre-implementation Committee |
2017-2021 | Carolina Scholars Pod Mentor |
2019-2020 | Director of CS Learning Lab - Tutoring Center for Introductory Sequence Courses. |
2017-2018 | University Working Group for Quantitative Reasoning |
Grants
Year | Title | Description | Amount |
---|---|---|---|
2021-2022 | Chapman Summer Fellowship | Modularization of COMP110 to include "Side Quests" with domain-specific content. | $30,000 |
2018-2019 | Research Related Skills Course Development | Supported the development of a COMP290 Seminar on Computer Science Education Research for Undergraduates | $3,000 |
2016-2017 | Finish Line - Large Course Redesign Grant | Course redesign focused on improving outcomes for first-generation college students (FGCS). | $5,000 |
Summer 2016 | Data@Carolina Course Redesign Grant | Course redesign focused on incorporating data analysis in COMP110. | $5,000 |
Professional Development
Date | Focus |
---|---|
2018-2019 | Faculty Learning Community on Undergraduate Research |
2019 | Unconscious Bias Training Module |
2018 | UC Berkeley's Data Science Workshop on Undergraduate Data Science Pedagogy & Practice |
2018 | Computer Science Education Conference (SIGCSE) |
2016-2017 | Faculty Learning Community on Course Redesigns |
2015 | UNC Instructional Innovation - Diversity & Inclusion Workshop |
In the News
Academic Year | Article | Publication |
---|---|---|
2020-2021 | Eight months of a Virtual UNC | Daily Tar Heel |
2019-2020 | Bigger classes and active learning | Daily Tar Heel |
2018-2019 | Welcome to "Compder Scifflin" - better known as COMP110 | Daily Tar Heel |
2017-2018 | UNC Comp Sci department works to close gender gap | Daily Tar Heel |
2016-2017 | How a computer science professor went from 0 to 1,000 in about a year | Daily Tar Heel |
2015-2016 | Computer Science class gets modern twist | Daily Tar Heel |
Teaching Awards & Recognition
Academic Year | Title | Scope | Description | Amount |
---|---|---|---|---|
2020-2021 | Chapman Family Teaching Award | University | Highest teaching award at UNC-Chapel Hill, won in first year of eligibility. | $30,000 |
2017-2018 | Chair's Award for Excellence in Undergraduate Teaching | Computer Science Department | Selected by department chair in recognition of teaching performance and outcomes. | $5,000 |
2017-2018 | Johnston Teaching Award Redacted | University | Awarded and later redacted when awarding committee realized I had not yet met the requirement of 5 years teaching. | Condolence Flowers ($5,000 redacted) |
2016-2017 | Chancellor's Teaching Award | University | The Student Undergraduate Teaching Award. Student nominated and selected. | $5,000 |
2016-2017 | UNC Chiron Winner | University | Student Nominated Teaching Award and End-of-Year Lecture. | $500 |
2015-2016 | Undergraduate Faculty Award | Computer Science Department | Student nominated & selected teaching award. | $500 |