I'm sorry but I can't see any more then 10% of the curriculum of the standard CS class is required to learn about software engineering.
This is more so true given that my school requires:
- 7 Humanities classes
- 5 Math classes
- 3 "Interdisciplinary Studies" courses which are any science that isn't CS
- 3 Social Science classes
- 2 "General Electives" which are any class that isn't CS-related
- 2 PE classes
- 2 Physics classes (With labs)
- 1 "Science Electives" class (Most with lab)
The Science Electives and Interdisciplinary Studies are basically just CHEM, PHYS, MATH, or BIO. Nothing in CS is offered.
How many CS classes do I take, you may wonder?
Only 16.
Now I ain't no mathematician, despite my college wanting me to be, but that don't smell a no good. With some fancy adding I come up with 25 non-CS classes and 16 CS classes. Pile on some fancy division and we get to an amazing figure.
Only 40% of my degree is CS. This was counting everything in the "CS" course label but many of those courses aren't technical.
Counting only "real" cs courses (where you learn theory or implementation of computer science topics) there are only 12 CS courses. The rest are non-CS classes under the same name. Things like 1 class about how the university works, 2 classes about teamwork (which is also done in the management GUR I need to take), and 1 class in Discrete Math..... notice the "Math" suffix.
That brings us down to a whopping 30%. Only 30% of the money I am paying for college is going towards something I want it to (in the case where all of my money is spent on academia rather then sports) and it is also assuming that all of my classes are actually teaching me something. Most classes are just professors coming in, telling us stuff that is blatantly incorrect (I keep a list now to pull out when this point I'm bringing up comes into an argument) and then they can't even implement the assignments they are giving us.
A more realistic number is that ~50% of my CS classes actually teach me something I've never learned before.
So we are down to a sad, sad number of 15%. A measly 15% of my time is actually spent learning about computer science.
Now, let me ask you. Would you think that the 15% of my time in Computer Science will actually teach me as much as 4 whole years of computer science?
You cannot ever convince me that someone wouldn't come out of a course like that knowing less then one of the 15%-educated students.
So I guess it's turned out that I was wrong. It's not 10% of my education it's 15%.
> And yet the CS curriculum is exactly what you need in terms of foundation so you can learn all of that.
> What you are asking for is a (probably several) lifetime of information in 4 years. Wouldn't we all like this?
I'd say that my fellow students would be better served with 4 years out of that lifetime of CS knowledge checked off rather then learning to find the area under the curve.
> Take the track that leads to your "Compilers" class. You will get most of the pieces you are asking for along the way.
The only track thaparserst leads to a "Compilers" class in my school is a Masters. The class on compilers that actually touches on things I haven't experimented with in my own time (LLVM, writing parser, writing interpreters, reading through some books here and there) are classes that lay in the 600 level.
> Sure you get a say, but those of us with experience also realize the sheer enormity of what you asked
You don't think that I have enough experience to understand that this is a massive undertaking? I do. Ask for everything but settle for half because every victory, no matter how small, is still a victory.
Now there are exceptions. Are you going to work in finance? You probably need to know a bit of calculus. Are you like me and want to go into R&D? You are definitely going to need to know a lot about signal processing and some machine learning is always helpful. Are you interested in contract software development again like I am? Then you will need a little bit of background on software ownership, copyright law, and general contract negotiation.
The only common thread through these fields is a heavy reliance on your ability to program. Everything else can be bolted onto your degree.
But I don't think it's wrong to say that someone needs to take 21hr of English classes, 20hr of Math classes, or 6hr of Physics classes, to be a Computer Scientist.
Edit: List ordering