Teaching
Teaching Assistant & Course Developer — CS520: Theory and Implementation of Advanced Software Engineering
Graduate / Upper-level Undergraduate Course · University of Massachusetts Amherst, College of Information & Computer Sciences · Amherst, MA, USA · Fall 2025 – Spring 2025; Spring 2023 & Fall 2023
I have been part of the CS520: Theory and Implementation of Advanced Software Engineering teaching team at UMass Amherst across multiple semesters — Spring 2023, Fall 2023, Spring 2025, and Fall 2025 — and served as Course Developer Assistant during Summer 2023.
The course covers advanced topics in software design, testing, and quality assurance, with hands-on assignments focused on automation and reproducibility.
Roles and Responsibilities
-
Head Teaching Assistant (2025):
Led instruction for 140+ students, managed a team of teaching assistants, and oversaw all course logistics including GitHub Classroom, Gradescope automation, and student communication.
Provided weekly technical guidance on JUnit testing, coverage analysis, mutation testing, and CI/CD pipelines. -
Teaching Assistant (2023):
Conducted lab and office hours, graded assignments, and mentored students on testing frameworks, software architecture, and debugging best practices.
Supported continuous improvements to the testing framework and grading automation. -
Course Developer Assistant (Summer 2023):
Collaborated with the instructor to revamp the course structure, labs, and automated grading pipelines.
Designed modular testing templates and scripts (statement_coverage.sh,decision_coverage.sh,mutation.sh) that remain part of the current course infrastructure.
Highlights
- Improved grading turnaround time by 40% through automation of coverage and mutation testing workflows.
- Designed and maintained reproducible assignments such as IE2-Triangle and Expense Tracker.
- Coordinated multiple TA teams and ensured consistency in evaluation rubrics and lab materials.
- Received strong student feedback for clear explanations, structured guidance, and prompt support.
Teaching Focus
- Topics Covered: Unit testing, software design principles, mutation testing, CI/CD pipelines, and coverage analysis.
- Technologies Used: Java, JUnit, Ant, GitHub Actions, Gradescope API, and shell automation.
- Pedagogical Approach: Emphasized reproducibility, automated assessment, and real-world testing practices to help students develop professional-grade software reliability skills.