Does it make sense to describe computer science as engineering?
Posted: Thu Oct 26, 2023 6:36 pm
@brimstoneSalad and @Red have repeatedly said that computer science is not science but engineering. However, I don't think that computer science has much in common with engineering.
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. 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.
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. 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.