I highly recommend his book: The Case Against Education - https://www.amazon.com/dp/B076ZY8S8J.
After that I realized grades were fairly arbitrary and explicitly aimed for Ds in classes I didn't care about and settled for whatever in the classes I did care about.
I've been doing graphics since high school, it was one of the few classes I was really excited about, and it's what I'm currently getting paid to do. I've never failed any other class.
In my opinion, the first two years of CS actually matter. Fundamentals like data structures, algorithms, and maybe even operating systems classes are great. Beyond that, most CS programs tend to be severely outdated - you'll learn more from internships and co-ops than another 2 years of classes.
Of course, take that with a grain of salt since I did know exactly what I wanted to do coming into college.
University professor here.
Perhaps it's too late now, but I would encourage you to make a strenuous effort to get your professor in as much trouble with the administration as you can. I don't know who the "class dean" is -- but contact this person's department chair, the departmental undergraduate director, the dean of engineering, the dean of students, the provost, anybody, everybody. Whoever will listen.
What you experienced is not okay. I'm sure it's not an isolated incident, but it's also not the norm.
As for the courses and the professors' capabilities, there are a bunch of systemic issues there. One is that "number of students who fail out" is a metric that is used to measure program performance, so first year is usually full of courses that are review for like half a given cohort. Another is that one often gets tenure for research, not teaching ability, so some professors optimize accordingly.
For what it's worth, there are plenty of folks who will tell you that you should "slack off" on a degree and just start a startup instead.
But then, that growth ran out, and as Weinstein says, “We were left with all of our institutions looking in some form or another like a Ponzi scheme.”
Was from here: https://youtu.be/LruYnDjkOgU?t=895
For the general skills stuff, that is all remedial stuff that should be obtained prior to entering formal college. Students should have mastery of those subjects before even being admitted. Have community colleges do remedial course exclusively (or some way to self-study online and test out).
For those 60 units of old "general education" replace it with 30 units of general career skills and 30 units of applied career skills. So the course track would go like this - first 30 units is exclusively your 30 general career skills then the next 60 units is the traditional academic track that most people take currently for their major. The last 30 units is exclusively used at applying those skills to various project-based work.
For all those old course that are currently considered general education, make them all optional, not required courses.
An easy solution would just to make replacements. Have students take introductory classes like data science, logic and reasoning, ethics, public policy, etc.
I was prevents from graduating on time because I needed to take 9 credits of... whatever. Why? Am I really a better person for being made to spend the extra time and money taking some bullshit class I barely remember?