Hacker News new | ask | show | jobs
by B-Con 5142 days ago
Huh, I majored in math, and I can't say that I understand what you mean.

In the lower division (first two years), there is often a separation of core classes between math majors and non-math majors. Calculus, for example, and linear algebra. They served as weeder courses for the math majors so that those who couldn't do good math wouldn't advance onto the upper division courses were they would continue to not do well. In addition, there was a somewhat misc. logic class for math majors that was very strict and served as a choke-point weeder class taken just before you would go onto upper division work.

For non-math majors, the Calculus classes were kind of weeder classes, but that wasn't their purpose. If you were an engineering, the engineers had their own real classes that were their own weeder classes. Etc.

But the two tracks disappeared after lower division. Once you were in 3rd year, there was largely only one set of classes. A couple of them had less rigorous counterparts for those only pursuing a teaching certification, but that was about it.

You are right that CS stands out. It's an unorganized field that is still trying to define itself. (Consider how young it is, relatively speaking.) Some schools want it to be mostly theory, others mostly software engineering, most are somewhere in between. There's disagreement over which languages to teach, how to teach them, etc. It's all somewhat awkward, and it needs to be reformed. I'm hoping that eventually we can split it into two separate fields, like CS theory and software engineering, and do a better job teaching both. (FWIW, I also majored in CS, so I saw both sides of the coin.)