Teaching Assistant – CSCI 2081: Introduction to Software Development

Undergraduate course, University of Minnesota, Department of Computer Science & Engineering, 2025

I served as an Undergraduate Teaching Assistant for CSCI 2081: Introduction to Software Development at the University of Minnesota during Fall 2025. The course is part of the Computer Science minor and Data Science curriculum and focuses on software development practices, object-oriented programming in Java, and modern software engineering tools.

Course Overview

CSCI 2081 builds on students’ first programming course and introduces the principles and practices required to develop moderately complex software systems. The course emphasizes both programming skills and software engineering practices.

Key topics include:

  • Java programming and object-oriented design
  • Data structures such as arrays, lists, and collections
  • Algorithms and problem-solving strategies
  • Software design principles and design patterns
  • Source control and collaborative development workflows
  • Test-driven development and debugging
  • Modern software systems including web services and data applications

Teaching Responsibilities

As a teaching assistant, I supported the instructional team in helping students develop programming and software engineering skills. My responsibilities included:

  • Assisting students during weekly lab sessions in Walter Library
  • Holding office hours to help students debug Java programs and understand course material
  • Guiding students through software design, testing, and version control practices
  • Supporting grading and feedback for labs, programming assignments, and exercises
  • Helping students understand object-oriented programming concepts and data structures

Teaching Focus

During the semester, I focused on helping students:

  • Translate problem descriptions into structured program designs
  • Implement Java programs using appropriate data structures and algorithms
  • Develop effective debugging and testing strategies
  • Apply good coding practices, including documentation and program organization

Through this experience, I gained valuable experience mentoring students in programming, problem solving, and software development practices while supporting a large undergraduate course.