Teaching software maintenance using practical assignments
is challenging because the codebase size and maintenance
demands need to be high enough to make the exercise realistic,
but also low enough to be achievable by junior software
engineering students.