I think if you want to do a great job, a four year CS degree should take about four years. You could maybe shave off a year by working through the summers and really pushing.
I’m pretty smart, and I worked HARD in my degree program. I did do some extracurriculars in adjacent fields that I could have skipped: psychology courses, a handful of advanced writing and math courses. And I took a handful of masters level classes that required a lot more time and focus. So probably there’s an easier path. But overall I would say doing a great job in serious CS classes is a full time job for all but the most exceptional students.
Sure there are genius types who could do it all in 18 months, and yes you could skim through it as a C-student on much less time. Or even as an A-student who just did the minimum to get the grades.
But if you really want to learn the material, it’s not easy and there’s plenty to occupy your time.
On top of that, there are all kinds of side projects that your education should be spurring, and which will feed back into your coursework. I learned PHP, SQL, and webdev in my spare time.
I just don’t look back and think “wow, there was a lot of wasted time there”.
In fact, for many courses (Statistics with Calculus, Electrically Engineering) I regret just doing enough to get a grade and deeply wish I had strived to understand that material deeply.
But I guess I’m kind of disproving my point... maybe with no extracurriculars, no graduate classes, and no side projects I could have done it in 2 years?
I guess, but I wouldn’t have gotten nearly the same benefit. Those things were part of what really made my degree formative.