Posts: 2020
Threads: 133
Joined: July 26, 2017
Reputation:
5
Is CS a science or engineering, or maybe something else?
October 28, 2023 at 7:16 am
Computer science, although it is called "science", is definitely not a typical science. Typical science paper today includes a discussion about p-values, but hardly any computer science paper does. And I think everybody would agree that a typical computer science paper doesn't apply the scientific method, like one we are taught in our high-school biology classes. That's why many people say that computer science is closer to engineering than to science. However, I would argue it is not typical engineering either.
Engineering makes heavy use of university-level math. Electrical and mechanical engineering basically revolve around calculus. OK, electrical engineers often use the phasor approximation which replaces calculus with complex numbers, and it can be done if the frequency of the alternating current is relatively low (so that the Kirchhoff's laws are a good approximation). But, if you don't understand calculus, your understanding of electrical engineering will be superficial at best. In mechanical engineering, as far as I know, you can never use complex numbers instead of calculus, you are forced to use calculus directly. In mechanical and electrical engineering, you use transfer functions, Laplace transforms... And, for just about every electrical system, there is an analogous mechanical system, and vice versa. There is nothing like that in computer science.
Thus far, the only time I had to apply university-level math in my hobby projects was when I was making an analog clock in my programming language targetting WebAssembly (as WebAssembly has no fsin and similar instructions, so I had to apply calculus to think of an algorithm by which program running on WebAssembly could calculate trigonometric functions). And notice that I wouldn't even have to do that had I made my compiler properly, using LLVM to target WebAssembly instead of targetting WebAssembly directly.
Also, engineering requires some knowledge of physics, in fact, it is heavily constrained by physics. Mechanical engineering makes the use of Newton's Laws of Motion for linear systems or the Euler's Laws for rotational systems, electrical engineering uses Kirchhoff's Laws for low frequency currents or the Maxwell's Equations for high-frequency currents, electronical engineering makes heavy use of quantum mechanics...
In computer science, the only time you are constrained by physics is usually only so that you cannot expect a huge amount of information to be transferred immediately.
For those reasons, I think it doesn't make a lot of sense to say that computer science is engineering.
Posts: 19881
Threads: 324
Joined: July 31, 2016
Reputation:
34
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 7:26 am
Math major.
Posts: 2020
Threads: 133
Joined: July 26, 2017
Reputation:
5
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 7:34 am
(October 28, 2023 at 7:26 am)Gawdzilla Sama Wrote: Math major.
Well, yes, I should probably say that I agree with Karl Popper that mathematics is not a science.
Posts: 19881
Threads: 324
Joined: July 31, 2016
Reputation:
34
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 8:18 am
(October 28, 2023 at 7:34 am)FlatAssembler Wrote: (October 28, 2023 at 7:26 am)Gawdzilla Sama Wrote: Math major.
Well, yes, I should probably say that I agree with Karl Popper that mathematics is not a science.
I agree, but algorithms ("formulas" if you will) rule computing science. Just ask Dr. Arnim Zola.
Posts: 2020
Threads: 133
Joined: July 26, 2017
Reputation:
5
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 10:15 am
(October 28, 2023 at 8:18 am)Gawdzilla Sama Wrote: (October 28, 2023 at 7:34 am)FlatAssembler Wrote: Well, yes, I should probably say that I agree with Karl Popper that mathematics is not a science.
I agree, but algorithms ("formulas" if you will) rule computing science. Just ask Dr. Arnim Zola.
Algorithms are rarely the problem in computer programming. In my PicoBlaze Assembler and Emulator in JavaScript, I didn't have a chance to apply any advanced algorithm I know. In my AEC-to-x86 compiler, I solved the problem of compiled code running out of the FPU stack using the DFS algorithm (first compile the deepest nodes in the AST), but, even if I didn't know the DFS algorithm, I believe that I would have solved that problem somehow differently. I believe that the only time I caused an algorithmic problem in my hobby projects, which is solved by algorithms, is when I tried to use the LCS algorithm to provide suggestions for misspelled variable names in my AEC-to-WebAssembly compiler. Somebody on Discord pointed me that I should use the Levenshtein Distance algorithm, which I applied and then it worked.
Posts: 1988
Threads: 93
Joined: October 23, 2022
Reputation:
8
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 10:51 am
(October 28, 2023 at 8:18 am)Gawdzilla Sama Wrote: (October 28, 2023 at 7:34 am)FlatAssembler Wrote: Well, yes, I should probably say that I agree with Karl Popper that mathematics is not a science.
I agree, but algorithms ("formulas" if you will) rule computing science. Just ask Dr. Arnim Zola.
Science or engineering? Neither!
Posts: 29850
Threads: 116
Joined: February 22, 2011
Reputation:
159
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 11:17 am
Posts: 46417
Threads: 540
Joined: July 24, 2013
Reputation:
109
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 11:22 am
(October 28, 2023 at 7:16 am)FlatAssembler Wrote: Computer science, although it is called "science", is definitely not a typical science. Typical science paper today includes a discussion about p-values, but hardly any computer science paper does. And I think everybody would agree that a typical computer science paper doesn't apply the scientific method, like one we are taught in our high-school biology classes. That's why many people say that computer science is closer to engineering than to science. However, I would argue it is not typical engineering either.
Engineering makes heavy use of university-level math. Electrical and mechanical engineering basically revolve around calculus. OK, electrical engineers often use the phasor approximation which replaces calculus with complex numbers, and it can be done if the frequency of the alternating current is relatively low (so that the Kirchhoff's laws are a good approximation). But, if you don't understand calculus, your understanding of electrical engineering will be superficial at best. In mechanical engineering, as far as I know, you can never use complex numbers instead of calculus, you are forced to use calculus directly. In mechanical and electrical engineering, you use transfer functions, Laplace transforms... And, for just about every electrical system, there is an analogous mechanical system, and vice versa. There is nothing like that in computer science.
Thus far, the only time I had to apply university-level math in my hobby projects was when I was making an analog clock in my programming language targetting WebAssembly (as WebAssembly has no fsin and similar instructions, so I had to apply calculus to think of an algorithm by which program running on WebAssembly could calculate trigonometric functions). And notice that I wouldn't even have to do that had I made my compiler properly, using LLVM to target WebAssembly instead of targetting WebAssembly directly.
Also, engineering requires some knowledge of physics, in fact, it is heavily constrained by physics. Mechanical engineering makes the use of Newton's Laws of Motion for linear systems or the Euler's Laws for rotational systems, electrical engineering uses Kirchhoff's Laws for low frequency currents or the Maxwell's Equations for high-frequency currents, electronical engineering makes heavy use of quantum mechanics...
In computer science, the only time you are constrained by physics is usually only so that you cannot expect a huge amount of information to be transferred immediately.
For those reasons, I think it doesn't make a lot of sense to say that computer science is engineering.
What difference does it make? Engineering is the practical application of scientific principles.
Boru
‘I can’t be having with this.’ - Esmeralda Weatherwax
Posts: 19881
Threads: 324
Joined: July 31, 2016
Reputation:
34
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 11:40 am
I was speaking specifically of COBOL, very heavy on algorithms. Banks and stock brokers used it a lot, I don't know if it is still in use. RAdm. Grace Hopper helped develop it for the military post-WWII. That made it public domain and thus cheap if not free.
My Radm. Hopper story: In WWII the big guns were aimed with help from data machines (dumb computers basically). Hopper helped develop those machines. Her team developed the ballistics table that were then programed into the D. M.s. The computer was large enough that the techs could literally walk around in it, and they manual changed settings when a new run was to begin. One day the results were, to quote the Admiral, were "shit". They checked their program and it was copacetic so they investigated the hardware end. A moth was found to be stuck in one contact point, keeping it open. She removed the moth and taped it into their log book with the following notation:
"Problem found, bug in computer."
That log book is now in the Smithsonian, the first documented computer "bug".
And now you know. Hope you're still awake.
Posts: 2020
Threads: 133
Joined: July 26, 2017
Reputation:
5
RE: Is CS a science or engineering, or maybe something else?
October 28, 2023 at 3:00 pm
(October 28, 2023 at 11:17 am)Angrboda Wrote:
I don't understand that meme. Oompa-loompas are the dwarves working in a chocolate factory in "Charlie and Chocolate Factory".
|