There is also a factor with lag in budgeting. When I first started computer science at my school it was a smaller department (maybe 2-3 intro cources of 50 people). When I was a JR, my department didn't have the budget to put out a off schedule OS course. The budget was consumed by 13 intro courses.
As I was graduating, my program not only had 10-13 intro courses but had 4x as many electives as it had when I started.