No product – students are creating projects, not commercial grade products
Short duration – single semester, or two-semester, courses impose an artificial time con-straint
High turnover – new students each semester means the talent pool remains shallow and student skills are not developing based on previous experience
Low complexity – by necessity given time constraints and skill sets
No maintenance – as a result of short duration, students do not experience a key aspect of software development, the maintenance phase
No customer – most software engineering projects do not interface with a real customer
To address these shortcomings, different approaches to teaching software engineering have emerged and been proposed in the literature.