Between Ada, Scheme, C, and C++, class sizes shrunk fast.
IMHO this is more fair than making the department hard to get into. Let everyone have a go at it.
That’s quite typical in other places of the world as well. In Italy is just like that for most stem programs; admission is granted to everybody, but the 1st year is just brutal and boring. A lot of people drop.
The upside is that you don’t have that stress on admission. The downside is that some good people lacking grit just drop after 1-2 years (or just take ages to get their degrees) because such classes look pointless but very hard to them - and they’re mostly right.
Note: we don’t usually grade on a curve in Italy. But 80% of the class failing the first time is not unheard of (you don’t get your failing grades recorded or re-pay for retaking a class, either).
Sounds legitimately fun. I wish more CS depts kept a tasteful blend of Haskell/C/Lisp instead of forcefeeding you a vile mix of "using std; C++03" and overly-OOP Java.
Related: Implementing networking stuff using raw sockets is fun!
I ended up with C, Ada, C++, Scheme, Java, C#, and PHP on my resume by the time I graduated.
Started my career on a compiler team! (see https://meanderingthoughts.hashnode.dev/how-microsoft-tested... for more info on my first job out of college!)
2. College admission and graduation rates are important and watched.
Getting into a highly selective school mostly just means the student fit one of a handful of profiles at age 18 which the admissions process looked for, most of which have little to do with the students actual abilities or aptitudes. But thanks to nepotism, network effects and the cultural belief in those schools representing "the elite", there is a significant self-fulfilling prophecy.
Overall, society would probably be better if we all admitted it's a farce, and focused more on what people accomplish in college and after, rather than giving such power to the admissions staff at a handful of universities.
Plenty of students who failed out of CS moved over to Management Information Science, the building was right next door so it was a short walk.
But seriously, everyone should be allowed to try. Western giving me a chance dramatically changed my life for the better, and based on emails I've gotten from customers for products I've worked on, its helped me change other people's lives for the better as well.
He honestly did a disservice to my learning of FP and probably set me back a good 4 or 5 years. He did a great job of filtering out students from the department though!
So after I got a horrible grade in his class I retook with the other professor, who taught the class (which was labeled as discrete math / logic class) as an extension of the textbook, and accordingly I did pretty good, but I didn't really learn anything about functional programming!
As an aside, that series of 2 classes had some amazing proofs. Proving addition on integers was an absolutely wonderful experience.
The data structures class was hard, we had a ton of material thrown at us really rapidly. I was taking the other fail out class mentioned above at the same time. When the quarter ended the department advisor asked me why I did that (because no one advised me not to...)
The C programming course, I think that hurt a lot of students. I had a good time with it, but we had to implement a shell and for many students, I think that would've been their 5th programming class ever.
Oh also that is when we had to start using source control.
One cool thing about Western is that quite a few of the professors came in from industry, so practices like "source control is part of your grade" were around really early on (again, this was 2004 or so I think).
Also tiny class sizes, and regular office hours. Professors would regularly be online chatting with students late at night the day before assignments were due. When I was at Western, only the first 2 intro courses had TAs doing any teaching, everything after that was a class of 20-30 and a professor up front.