Tutor, Fundamentals of Programming

Technical University of Munich

2 min readJustin Lanfermann

Mentoring the Next Wave of Developers

As an IT Tutor for the Fundamentals of Programming (PGdP) practical course at TUM, I was entrusted with guiding first-semester computer science students through the essential concepts of programming in Java. My primary goal was to cultivate a strong foundational understanding, foster problem-solving skills, and create a supportive learning environment for a group of approximately 30 students.

Key Contributions

My role encompassed teaching, assessment, and direct student support, contributing to both individual student success and the overall quality of the course.

Teaching & Mentorship

Led weekly three-hour tutorials, breaking down complex topics like data structures, algorithms, and OOP. I facilitated hands-on coding exercises and provided personalized guidance to help students overcome challenges.

Assessment & Evaluation

Assisted in the grading process for midterm and final exams, supporting fairness and consistency. I was also present in the lecture hall (Hörsaal) for exam invigilation (Aufsicht). The post-exam review (Einsicht) was fully online; I helped by checking student complaints/appeals and offering brief clarifications.

Curriculum & Topics Covered

I was responsible for teaching a broad curriculum that forms the bedrock of a computer science education. Some of the key topics included:

Object-Oriented Programming

Taught core OOP concepts, including classes, inheritance, polymorphism, and data encapsulation using UML diagrams and practical Java examples.

Algorithms & Data Structures

Guided students through essential data structures like arrays, linked lists, stacks, and queues, along with fundamental algorithms such as recursion and sorting.

System & Functional Concepts

Introduced practical skills in file I/O, streams, basic network programming with sockets, and essential developer tools like debugging and functional programming.

Skill Development & Impact

This experience was instrumental in refining my technical and interpersonal skills. By teaching others, I deepened my own mastery of computer science fundamentals.

Communication Mastery

Translated complex technical concepts into clear explanations that met students where they were.

Diagnostic Problem-Solving

Exposed blind spots in scheduling, memory, and concurrency by walking through proofs, exam scenarios, and concise C demos.

Leadership & Empathy

Cultivated a low-pressure, collaborative environment that encouraged questions and confident articulation of systems thinking.

Want to see more?

Check out the projects and resources I've built along the way.