Chemistry and physics classes in Computer Science

That assumes you’re in it to be a programmer, though. Just computer science is fine if you want to go into academia and research compiler theory, database theory, Operating System theory, etc. Obviously having more skills never hurts, but they’re not strictly necessary if you want to publish papers on the asymptotic complexity of the new graph search algorithm, or brainstorm faster/better/more secure network protocols.

Yes.
And at the risk of hijacking, I think many people assume that if they want to do software development in their career, they have to do CS major (or other CS-based degrees like software engineering).
But software development is common in many fields. Majoring in chemistry, say, and doing programming as a hobby and a minor, can lead to a career where you do software development as part of a whole set of interesting activities, rather than the only activity, IME.

Well, allow me to hijack your hijacking. Where is it that software engineering is a discipline different than computer science?

I guess CS where you are at is a concentration in theoretical computer science (IMHO the interesting stuff) and is different to computer engineering, and so software engineering is kind of a trade-school type practical thing?

Not trying to be bitchy – I am genuinely curious.

Hardcore software development requires skills that come from years of hardcore programming. Not just something as a hobby or “part of a whole set of interesting activities”.

I have seen stuff written by people for whom software development was “part of a whole set of interesting activities”. Nightmare stuff.

And to the OP - my degree in “Math and Computer Science” from 1984 required a year of physics and a year of chemistry. Which I proficiencied out of. Now I wish I had taken more physics.

I was just talking in terms of degrees. I was trying to say: all CS based degrees, not just the specific degree CS.

When I did my CS degree, we shared almost all of our classes with guys who were studying Software Engineering, for example.

OTOH some of the best developers I’ve worked with were entirely self-taught.

And in any case, not all programming is “hardcore” (thank goodness).

It’s a thin line, to be sure, but generally Computer Science is the more mathy stuff: automata, LR parsing, OS, algorithmic analysis, discrete math, even stuff like quantum computing or bio-informatics though those are more hybrid fields. Software Engineering is more like Agile, Scrum, When To Use This Language, Object Oriented Practices, Design Patterns, UML, UI Design, etc. Most CS Degrees will generally spend the lower division courses on software engineering, with a little bit of math, and the upper division will either be all math, or software engineering with a “mathy bent” (e.g. Parallel and Distributed programming will have formal concurrency mathematics, but usually focus on practical applications).

The water is a bit muddied with, say, computer security or things like reducing the memory footprint of programs in memory. Those tend to really straddle the line.

Generally speaking, I support having separate degrees for Software Engineering and Computer Science. I can’t count how many people have dropped out of the Comp Sci major because they wanted to be programmers and wanted to learn about industry stuff, and either couldn’t or wouldn’t handle the math (nevermind that the likes of MS, Google, etc KILL for people who know their math more than people who know why Agile is better than Waterfall any day).

75% of your comp sci degree is… well, not useless, but not immediately useful if you want to be a web code monkey for Amazon; likewise, CS professors will gladly use 10 year old deprecated APIs, archaic build systems, and inefficient development cycles so they can focus on their research.

ETA: It’s not 100% accurate, but I’d probably characterize the difference between CS and SE as the difference between Lambda Calculus and Haskell.

Agreed. I was not talking about CS degrees. I was talking about “real” programmers vs “programming on the side” type of programmers.

Non-mission-critical programming is fine done by amateurs. I know enough scientists and engineers who tinker and write their own programs to process their own results, and that’s fine. I know enough accountants who can write a mean Excel formula, and that’s fine too. I know enough traders who can tinker a bit with backtesting code to do some TA. But that’s trivial. All these rely on professional programmers for serious stuff, or they don’t achieve much.

There it is. I knew you’d come out sooner or later, AVL tree white tower ivory son of a bitch motherfucker.

Yeah well eat this APL motherfucker! KBOOM!

Jk kk1!

When I was getting my BS in CS in a US college (FAU) in the late 80s, I was required to to take two semesters of Chemistry or two of Physics. I took Chemistry.

I think what’s happened here is you’ve taken what I said as being “Programming’s so easy, you can learn it with just a spare 5 minutes here and there”. But that’s not what I’m saying at all.

One difference between programming and, say, chemistry, is that if you have a computer and Internet access, you have everything you need to study software development.
OTOH free degree-level chemistry course material is not so easy to find (I’m sure it exists, but it is not as readily available), and then you have the small issue of needing a laboratory.

If you major in something other than CS, you can study CS in your own time and as a minor, and it’s up to you how far you take it.
Want to just do trivial but useful apps and scripts? Then if you work hard you can achieve that in 6 months from a standing start.
Want to be a “hardcore” programmer? That will take years of dedication.

I’m saying this as someone who majored in CS, but then did a second degree because I was tired of only doing software dev. Of course YMMV but IME many developers like the sound of my job as it is now.

I majored in Computer Science at a major public university on the US East Coast. We had to take a certain number of “hard” science credits and a certain number of “social” / “soft” science credits, but the exact disciplines chosen were up to you and your advisor. A certain number of the credits had to be part of a progressive sequence - so you couldn’t just take Intro to Biology for Dummies, Intro to Chemistry for Dummies, and intro to something else for dummies and call that done. I picked Chemistry as my sequence and took Chem I and Chem II. There wouldn’t have been any problem had I picked Bio I and Bio II. For soft sciences, I picked Psychology but no university busybody in would have kicked up a fuss had I taken Sociology I and Sociology II instead.

Ex-CS (US) prof here.

It varies a lot by program. E.g., at one school I taught at, the requirement was 3 Science courses that had labs, one of which had to be Physics. The list specific eligible courses. (So the Physics courses are the Real Ones and not the watered down ones.) So both Bio and Chem courses qualified.

Having a broad Science background is a really good idea for Computer Science. IMHO, Physics is the best in general, but other fields might be best based on one’s interest and future jobs interests. E.g., one student went to work for a company that had refineries. So Chemistry would have been helpful there.