Teaching statement

The question that organises my research also organises my teaching: how do people build software together, and what prevents them from doing it well? Students in software engineering courses seldom struggle with syntax. They struggle with the parts of the discipline that only become visible at scale, such as reading code they did not write, disagreeing productively during review, and deciding what is worth testing when time is short.

I design my teaching around that gap. In CISC 320 and CISC 235 I moved office hours away from isolated exercises and toward walking students through real repositories, and I structure written feedback so that the reasoning behind a judgment is visible rather than only its outcome. Serving as Head Teaching Assistant for a team of more than twenty assistants taught me that instructional quality at scale is largely a coordination problem. My principal contribution there was a triage workflow that directed each student question to the person best placed to answer it, which measurably shortened response times without additional staffing.

My aim is that students leave my courses able to enter an unfamiliar codebase and contribute to it without step-by-step direction. That capacity rests on habits rather than facts: writing changes that another person can review, reading existing code charitably before proposing to replace it, and asking for help precisely enough to receive a useful answer. These are the practices my research studies in professional settings, and I see no reason to defer teaching them until graduation.

Courses

  1. CISC/CMPE 332, Database Management Systems Current
    Teaching Fellow, Queen's University

    Full instructional responsibility for the course, including lectures, assessment design, and coordination of the teaching team.

  2. CISC 320, Fundamentals of Software Development
    Head Teaching Assistant, under Dr. Samir Mohammad

    Directed a team of more than twenty graduate and undergraduate assistants, and introduced a triage process for student inquiries that kept grading on schedule.

  3. CISC 235, Data Structures
    Head Teaching Assistant, under Dr. Yuan Tian

    Coordinated the assistant team, revised grading workflows, and served as the primary contact for student academic support.

  4. CISC 320, Fundamentals of Software Development
    Teaching Assistant, under Dr. Samir Mohammad

    Office hours, assignment and examination grading, and course administration.

  5. CISC/CMPE 351, Advanced Data Analytics
    Teaching Assistant, under Dr. Yuan Tian

    Graded technical assignments and projects with detailed written feedback.

  6. MDPM 822, Emerging Computing Technologies
    Teaching Assistant

Research mentoring

Students marked with an asterisk co-authored at least one paper with me. All were supervised jointly with Dr. Yuan Tian at Queen's University.

  1. Enrong Pan*

    Fine-grained security events in pull-request-driven development.

  2. Vu Thanh Loc Mai*

    Co-author, A First Look at Self-Admitted Miscommunications in GitHub Issues, ASEW 2024.

  3. Cynthia Wang*

    Co-author, A First Look at Self-Admitted Miscommunications in GitHub Issues, ASEW 2024.