All Experience
University of Groningen
University of Groningen·Groningen, Netherlands

Teaching Assistant

·teaching

Teaching assistant for seven CS courses at the University of Groningen, covering algorithms, OOP, web engineering, signals & systems, software engineering, and scientific computing.

  • TA for 7 courses across algorithms, OOP, web engineering, signals & systems, and more
  • Ran tutorial sessions, designed assignments, and graded exams
  • Mentored 100+ students with diverse backgrounds and experience levels
  • Consistently received positive student feedback
Technologies
JavaPythonCHaskell

Context

During my Bachelor's at the University of Groningen, I was a Teaching Assistant across seven different computer science courses over about 15 months. It was a lot of variety — from first-year introductions to more advanced topics.

Courses

  • Advanced Algorithms and Data Structures — graph algorithms, dynamic programming, complexity analysis, NP-completeness
  • Advanced Object Oriented Programming — design patterns, inheritance hierarchies, SOLID principles, refactoring
  • Signals and Systems — signal processing fundamentals, Fourier transforms, system modeling
  • Web Engineering — full-stack web development, frontend/backend architecture, APIs
  • Problem Analysis & Software Design — requirements engineering, UML modeling, design methodologies
  • Software Engineering — software development lifecycle, testing strategies, team collaboration
  • Introduction to Scientific Computing — numerical methods, data analysis, computational problem-solving

What I Did

  • Led weekly tutorial sessions (15–25 students per session)
  • Designed practical programming assignments with test suites
  • Graded exams and assignments with detailed written feedback
  • Held regular office hours for one-on-one help
  • Contributed to course material updates

What I Learned

Teaching is genuinely the best way to learn something properly. When a student asks "but why does it work that way?" you can't hand-wave — you have to actually understand it. That forced me to get much sharper on fundamentals I thought I already knew.

The other big thing was learning to explain the same concept five different ways depending on who I was talking to. That skill transfers directly to code reviews, documentation, and working on a team.