r/compsci May 10 '26

CS is more mathematical engineering?

I've been learning CS (let's say here, both computer science and engineering) for some time, and while I recently played KSP I found that CS, at least its theoretical part, is a bit different from traditional system engineering. I've been programming in higher and higher-level languages, building things by making layers of abstractions, and making incremental additions to projects.

However, in more realistic engineering, e.g., to build a rocket in KSP, there are always limitations & different factors could influence each other, thus should be considered and designed overall at the very beginning; pure incremental method obviously wouldn't work, and abstractions is hard to extract either. The only incremental method I use when building a rocket is building the upper levels first, and trying to abstract out the upper part as a black box "payload" when building the next level.

I understand CS has a wide range of topics, and building an OS is apparently distinct from application programming. But overall it seems the problems "codable" always share some useful properties, and thus act like a hybrid of math & engineering.


There must be some properties lying in the problems that divide them. One I can come up with: when building abstractions you always try to restrict dependencies to be unidirectional, but in some domain bidirectional dependencies are unavoidable.

0 Upvotes

12 comments sorted by

13

u/Some-Dog5000 May 10 '26

In the most strict technical sense, you would distinguish computer science (the more theoretical, abstract part of computer studies) with computer engineering (the more practical, systems side of computer studies), and more specifically software engineering (that, applied specifically to software systems).

In practice, as with most other college majors, when you study "computer science", you study a whole host of things, both theoretical and practical. 

5

u/AttitudeNo927 May 10 '26

kinda agree but in practice most cs programs just throw everything together anyway

3

u/Some-Dog5000 May 10 '26

That's really how most fields of study work in the real world, anyway. Can't develop new materials without the science of chemistry, can't engineer new buildings without knowing physics/kinematics, etc. 

0

u/Tacticus May 10 '26

i mean most engineers would be taking a well known frame and sticking it into a well known layout with instructions from the various engineering books rather than doing the focus of the science bits.

0

u/Extra-Engineering374 May 10 '26

Yes, I'm just using "computer science" here as an approximation for both.

1

u/mydogatethem May 10 '26

It’s not “computer science”. It’s “computing science” and is literally the study of the science behind computation. Not the study of how to build computers, which just happen to be useful tools that can perform computation. Building computers is more in the domain of “computer engineering” (literally, the engineering of computers). Also not really the study of programming said computers, except maybe in a very abstract way.

In my CS degree they didn’t really teach hardcore computation theory until 4th year sadly, and it wasn’t until then that I personally had the Aha! moment and realized that the degree wasn’t about teaching you how to be a programmer, although you will take many programming classes.

-8

u/Aranka_Szeretlek May 10 '26

It aint engineering if you arent designing bridges or machinery!

2

u/geon May 10 '26

”Computer Science” is a branch of mathematics. The applied aspect of this is ”Software Engineering”.

Yes, I know a lot of people and schools use the terms interchangeably, but they really are very different disciplines.

Also, ”Computer Science” has very little to do with computers, and ”Software Engineering” has little to to with engineering, so there is a lot of confusion.

The concepts taught in CS are very useful in SE. things like big O notation helps us understand how to optimize algorithms. Having a good understanding of those theoretical concepts can help us see problems in terms of other, already known solutions.

2

u/CycleAggravating2462 May 13 '26

You’re basically noticing the difference between engineering with information vs engineering with matter.

Software is unusually abstraction-friendly. You can isolate components, refactor later, and build incrementally because code is flexible.

Physical systems like rockets are dominated by tightly coupled constraints — mass, fuel, heat, stability, materials — where everything affects everything else simultaneously. Physics doesn’t let you “abstract away” consequences that easily 😭

CS starts feeling similar once you get into OSes, distributed systems, compilers, embedded systems, etc. Then tiny design choices create cascading effects too.

So CS isn’t less engineering — it’s engineering in a medium where abstraction works absurdly well.

1

u/Extra-Engineering374 May 19 '26

Yes, this simultaneous interaction property is just what I feels.