Hacker News .hnnew | past | comments | ask | show | jobs | submitlogin

Your definition of Computer Science seems to differ from standard accepted definitions?

Not that it matters for SwordOfMyBone: what matters is what you learn when you enroll in a specific university's Computer Science course.

Btw, why couldn't programming or compilers be a subset of math? Look at eg 'type theory' https://en.wikipedia.org/wiki/Type_theory

Or optimization. It's a thing we do very much in math and in computing.

Applied mathematics is a wide field.



Some of the cliams the parent is making don't hold up to scrutiny, but the core of their argument does.

It's sort of like how geometry literally means 'the measurement of land' since it was originally an applied field developed for surveying farm plots for the bronze age super powers after each flood along the Nile and the levant wiped the property boundaries away. I think it's safe to say it has expanded beyond it's original intention, and CS has the same properties.


That is the way language works; enough people insist or use the word "cabbage" to mean computer science, eventually it does. But no matter how many people believe that computer science is programming, it will not make it so, because a discipline does not evolve like spoken language does. Those that believe falsehoods simply remain mistaken and do not affect what they are mistaken about to somehow become correct over time. Things are what they are and false expectations won't change that. Computers have evolved, certainly, the tools have gotten much better. But don't confuse the tool with the tool user or toolmaker. Computer Science is the same as it ever was.


No, Computer Science is a subset of Mathematics, and originally lived in the Math department for about 2000 years. Only recently, in the last 30 years or so, has computer science been mistakenly equated with programming or mistakenly been believed to have something to do with fixing desktop computers or building networks.

Programming is not mathematics, nor is it computer science. Programming is programming, and it is most like the recipes in cooking, which no one would ever confuse with math. If one wants to be a programmer, the thing to do is learn programming languages, no degree required. OTOH, if one wants to model the weather, or model traffic, or model society, or model the galaxy, or work in informatics, or hunt for weaknesses in the genetic code of some virus, or really, generally, solve complex problems of any ilk, then study computer science, because that is what computer scientists do.

Do not bother with CS if you want to work with computers, or be a computer tech, or systems administrator. Do not bother with CS if you just want to be a programmer, really, it'd be a waste of time, sort of like getting a MD because you want to be a RN, but this metaphor is not apt because there is no hierarchy like that in technology space. The confusion of programming with computer science is such a sensitive one, and a lot of schools now have Software Engineering departments. IMO, calling it engineering is being a little too kind to programming, even if we call a program an engine, it's really not. Also, there is no license available to engineer software, yet all other engineers need a license to work.

That being said, a Computer Science curriculum will entail learning a lot of programming, but that still does not mean that computer science is programming. But before learning program languages, in CS, one will study algorithms, and I believe those do fall under the scope of CS.

Here is another bad metaphor: You'll have to learn a good amount of Trigonometry in order to be able to do much Calculus, yet Calculus is not Trigonometry. Now, one can do good computer science without ever learning any programming language, and without ever touching a computer. But a computer is a tool, and the good analogy is that the computer is to the computer scientist what the telescope is to the astronomer. To be clear, though it was once so, astronomers do not build telescopes, nor are they necessarily expert in the construction of or even function of a telescope. The important part is they look through it, and that is how it is used.


I agree with the core of what you're saying, but CS has not existed for two millennia. It's fairly new math starting in the late 1800s at the earliest.


Ancient civilizations observed astronomical bodies, often the Sun and Moon, to determine time. In a very real sense, the Sun and Moon are together a computer that one uses to calculate, or compute, what time it is. Sundials are analog computers, no telling when they first appeared, but at least as early as 1500BC in Egypt. The abacus is a computation tool that was developed as early as 2700BC in Sumer. Its development required CS, and it is used to calculate, or to compute. The rules of grammar of Sanskrit were formulated ~500BC, highly systematized and technical, using metarules, transformations and recursions, iow, the work itself is computer science. The Antikythera mechanism is an analog computer designed to calculate astronomical positions and created from anywhere between 205BC to 87BC, and without computer science (and a number of other disciplines) it could not have been made. 1000 years later Medieval Muslim astronomers created analog computers, such as the torquetum, which converted measurements in three sets of coordinates: Horizon, equatorial, and ecliptic. Developing this would have required computer science. There is also the astrolab. When John Napier discovered logarithms for computational purposes in the early 17th century it opened a period of considerable progress by inventors and scientists in making calculating tools, and doing good computer science as they went.

No, I'm afraid most of the computer science that has ever been performed occurred prior to the 19th Century.


Just like computer science is greater than programming computers, programming computers is greater than computer science. Neither is a complete subset of the other.

It's sort of how like geometry (literally 'the measure of land', originally an applied mathematical field used for surveying) is newer than literally drawing property boundaries. It was the formalization and abstraction that led to computer science as a true mathematical field, which happened after actual programming occurred. We can reproject CS concepts on these earlier programs looking back, but the field of CS is newer than they are.


I have a lot of respect for coders. I also massively appreciate their humor. I don't think there is such a relation between a computer scientist and a programmer where one is greater or better than the other; they are merely different professions. I expect a programmer that has worked using Java, ObjC and C++ for, say, a decade, will have a better grasp of programming those languages than a CS grad 10 years after graduation, even if they learned those languages and used them, they probably weren't only programming, but also what appears to the untrained eye as sitting around like a lump. Often that's what contemplation looks like. A programmer codes a lot, so they'll be better at it.

It has been pointed out to me before that mostly what computer scientists do is reckon. This is why I am onboard with renaming Computer Science to Reckoning Science. It is a subtle thing, but I think it would prevent countless students from wasting the best years of their lives due to incorrect expectations initiated by the confusing name of the discipline. It really is important to understand that the "computer" in Computer Science is not a digital machine, a mainframe, server, a Dell, an Acer, or a Mac, instead it is a living breathing person. I have to envy the Math majors and Math grads. They knew exactly what they were getting into, not a one of them ever asked, "what do you mean, 'it's all math,' ?"


By greater, I didn't mean in softer, moral terms, but instead that the sets of problems and cognitive tools for approaching problems for both has some overlap, but one isn't a pure subset of the other. Trying (but failing apparently) to drive home my point that CS wasn't a prerequisite for programming for human civilization, therefore historical examples of programming are ultimately orthogonal to how old of a field CS itself is.


Well, ok, and I misread your post, thank you for clarification. But you've employed a straw man, because no one has claimed anything about historical examples of programming to make claims about how old computer science is. What I did instead (in the GGGGP comment?) was give ancient examples of computer science to show how old it must be, at a minimum. Now, of course, there was no CS department in a university 5000 years ago. Nevertheless, computer science was performed in ancient Sumer, and we know this because we found their abacuses.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: