In this page, see:

  • The courses I teach
  • MSc students I supervise (and how to become one)
  • Learn more about my TU Delft fellowship
  • See the open courses and materials I have devised
  • The technical books I have published
  • The research papers I wrote on computer science education

Courses I teach

I teach the following courses at TU Delft:

  • Software Testing and Quality (CSE1110, BSc): 2020, 2019, 2018, 2017. Course materials:

  • Software Analytics and Machine Learning for Software Engineering (IN4334, MSc): 2020, 2019. Course website

  • Software Refactoring (CS4300, MSc): 2021.

I also taught the following courses in the past:

  • Software Engineering Methods (TI3115TU, CS minor): 2020, 2019, 2018

  • Software Architecture (IN4315, MSc): 2019, 2018, 2017

MSc students supervision

I supervise MSc students on the topic of software engineering.

  • Check my MSc students page for some guidelines on how to approach me.

  • Check TU Delft’s educational repository and see my former students. (Note that the search also finds students that I was part of the committee; make sure you look to the students I am listed as supervisor.)

TU Delft Education Fellow

I am a TU Delft Education Fellow 2021-2022.

  • Read about my proposal in the official website.

  • Wait for more news on the topic here.

Open courses and material


To support my training and consultancy activities, I have authored books about TDD, automated software testing in practice, Object-Oriented design, and introduction to C Programming, which have sold more than 10k copies. The TDD book, in particular, has been used at many universities in Brazil.

They are in Brazilian portuguese. English versions will come.

  • Test-Driven Development: Teste e Design no Mundo Real (or TDD: Test and Design in the Real World). Casa do Código, 2012. Java, C#, Ruby, PHP.

  • Orientação a Objetos e SOLID para Ninjas: Projetando Classes Flexíveis (or Object-Orientation and SOLID for Ninjas: Designing Flexible Classes). Casa do Código, 2015. Versions: Java.

  • Testes Automatizados de Software: Um Guia Prático (or Automated Software Testing: A Practical Guide). Casa do Código, 2015. Java.

  • Introdução à Programação em C: Os primeiros passos de um desenvolvedor (or Introduction to Programming in C: The first steps of a developer). Casa do Código, 2015. Book.

Computer Science Education (CSEd) Research

I often write computer science education papers, based on my experience as a teacher:

Grading 600+ students: A Case Study on Peer and Self Grading Maurício Aniche, Frank Mulder, Felienne Hermans 43rd International Conference on Software Engineering: Joint Track on Software Engineering Education and Training (ICSE-JSEET), 2021
Grading large classes has become a challenging and expensive task for many universities. The Delft University of Technology (TU Delft), located in the Netherlands, has observed a large increase in student numbers over the past few years. Given the large growth of the student population, grading all the submissions results in high costs. We made...
Pragmatic Software Testing Education Maurício Aniche, Felienne Hermans, Arie van Deursen 50th ACM Technical Symposium on Computer Science Education, 2019
Software testing is an important topic in software engineering education, and yet highly challenging from an educational perspective: students are required to learn several testing techniques, to be able to distinguish the right technique to apply, to evaluate the quality of their test suites, and to write maintainable test code. In this paper,...
A Collaborative Approach to Teaching Software Architecture Arie van Deursen, Maurício Aniche, Joop Aué, Rogier Slag, Michael de Jong, Alex Nederlof, Eric Bouwers 48th ACM Technical Symposium on Computer Science Education (SIGCSE), 2017
Teaching software architecture is hard. The topic is abstract and is best understood by experiencing it, which requires proper scale to fully grasp its complexity. Furthermore, students need to practice both technical and social skills to become good software architects. To overcome these teaching challenges, we developed the Collaborative Softw...