←back to thread

166 points levlaz | 7 comments | | HN request time: 0.009s | source | bottom
Show context
ykonstant ◴[] No.41877090[source]
This is a great article and I especially liked the notion:

>Theoretical physics is highly mathematical, but it aims to explain and predict the real world. Theories that fail at this “explain/predict” task would ultimately be discarded. Analogously, I’d argue that the role of TCS is to explain/predict real-life computing.

as well as the emphasis on the difference between TCS in Europe and the US. I remember from the University of Crete that the professors all spent serious time in the labs coding and testing. Topics like Human-Computer Interaction, Operating Systems Research and lots of Hardware (VLSI etc) were core parts of the theoretical Computer Science research areas. This is why no UoC graduate could graduate without knowledge both in Algorithms and PL theory, for instance, AND circuit design (my experience is from 2002-2007).

I strongly believe that this breadth of concepts is essential to Computer Science, and the narrower emphasis of many US departments (not all) harms both the intellectual foundations and practical employment prospects of the graduate. [I will not debate this point online; I'll be happy to engage in hours long discussion in person]

replies(4): >>41877362 #>>41877761 #>>41878005 #>>41887503 #
ninetyninenine ◴[] No.41877761[source]
> Theoretical physics is highly mathematical, but it aims to explain and predict the real world. Theories that fail at this “explain/predict” task would ultimately be discarded. Analogously, I’d argue that the role of TCS is to explain/predict real-life computing.

No this guy doesn’t get it. He doesn’t understand what science is.

In science nothing can be proven. If I say all swans are white as my hypothesis this statement can never be proven because I can never actually verify that I observed all swans. There may be some swan hidden on earth or in the universe that I haven’t seen. Since the universe is infinite in size I can never confirm ever that I’ve observed all swans.

However if I observe one black swan it means I falsified the entire hypothesis. Thus in science and in reality as we know it nothing can be proven… things can only be falsified.

Math on the other hand is different. Math is all about a made up universe where axioms are known absolutely. It has nothing to do with observation or evidence in the same way science does. Math is an imaginary game we play and in this game it is possible to prove things.

This proof is the domain of mathematics… not science. Physics is a science because it involves gathering evidence and attempting to falsify the hypothesis.

Einstein said it best: “No amount of experimentation can ever prove me right; a single experiment can prove me wrong”

Basically newtons laws of motion are a perfect example of falsification via experimentation with relativity later being confirmed as the more accurate theory that matches more with observation.

So what’s the deal with computer science?

First of all the term already hits the first nomenclature issue. Computer science is ironically not a science. It lives in the same axiomatic based world as mathematics and therefore things can be proven in computer science but not in science itself.

So this nomenclature issue is what’s confusing everyone. The op failed to identify that computer science isn’t actually a freaking science. Physics is a science but computer science isn’t.

So what is computer science? Sorry to say but it’s a math. I mean it’s all axioms and theorems. It’s technically math.

CS is a math in the same way algebra and geometry is math. Physics is a science and it is not a math. It’s a totally orthogonal comparison.

Your job as programmers is more like applied math. It’s completely orthogonal to the whole topic but People often get this mixed up. They start thinking that because programming is applied computer science then computer science itself is not a math.

Applied math ironically isn’t really math in the same way writing isn’t a pencil. Yes you use a pencil to write but they are not the same. Same thing with computer science and programming.

replies(9): >>41877794 #>>41878097 #>>41879333 #>>41879798 #>>41880294 #>>41880480 #>>41882001 #>>41882307 #>>41883224 #
BoiledCabbage ◴[] No.41880480[source]
> No this guy doesn’t get it. He doesn’t understand what science is.

> In science nothing can be proven.

Who are you referring to? Nobody has mentioned anything about proven. Your entire comment is focused on arguing against science being proofs, but nobody has said science is proofs.

OP said that scientific theories should "explain and predict" which they should. Those that don't should be discarded eventually (which they should). Why are your discussing mathematical proofs of science when nobody brought it up nor proposed that?

replies(1): >>41880714 #
ninetyninenine ◴[] No.41880714{3}[source]
Im demarcating what science is and what math is.

    - In science nothing can be proven.
    - In math things can be proven. 
From those two points above we know this:

    - computer science is not a science because you can prove things
    - computer science is a kind of math because you can prove things 

This goes fully against the ops main point that computer science isn’t math when it is. There’s a big nomenclature issue that confuses everyone, him and you, and it just throws everyone off in terms of clear categorical thinking. Namely, Computer science is not actually a science.

You guys don’t understand what math is and you don’t understand what science is and thus you guys are classifying incorrectly that computer science isn’t a math and they are making a completely invalid comparison with physics which is actually a science.

replies(2): >>41881408 #>>41884040 #
BoiledCabbage ◴[] No.41881408{4}[source]
Ah, I see what you're misunderstanding. You're not thinking about the problem in the correct light.

If you start with the premise that computer science is math, of course you'll reach the conclusion that computer science is math. And that's why you're so surprised that anyone else can reach any other conclusion. But the issue is in your premise - that's what you need to re-examine.

The math portions of computer science are math - and the non math portions are not. Your argument is equivalent to saying that Europe is defined by the counties in that continent using GMT - and concluding "Of course Italy isn't in Europe!".

Parts of Computer Science (the theoretical parts) sit in formal science just like logic and math do. But parts of CS like applied CS don't. All of the hardware design and software falls into applied CS and eventually slides into pure engineering.

But CS also is more amorphous than many other disciplines. Parts of it almost touch up against behavioral science with its subfield of linguistics, and syntax and semantics of language. And a failure of CS over the past 50 years has been the utter lack of progress in empirical data around human modeling of computation. We still don't have any empirical framework for evaluating what languages or modeling approaches are more efficient than others, or even what makes a more efficient programing language. As a result that is stuck in alchemy and cargo culting.

Models of computation and information theory begin to intersect with the natural sciences n the realm of physics. Physicists begin to push up against what is computable by nature in a given region of space. And Quantum computation begins to redefine what the physical bounds are on computation.

Don't begin by looking at what math is - if you do then the only thing possible to conclude is that it's math . An informal definition you could begin with might be "The theory and application of tools (ie formal cs) and models (ie applied cs) that predict and explain behavior related to Computation"

How do you model the real world via computation? What are the limits of computation? How do you implement computation?

Computer Science is the study of all aspects of computation.

replies(1): >>41881906 #
ninetyninenine ◴[] No.41881906{5}[source]
False, it is you who misunderstands and your terminology is incorrect.

The term is "theoretical computer science." Not just "computer science"

https://www.wikiwand.com/en/articles/Computer_science

https://www.wikiwand.com/en/articles/Theoretical_computer_sc...

The OP is making a claim on "theoretical computer science" NOT "computer science". Hence the title "What is theoretical computer science".

If you look at the wiki entry you will see that "Theoretical computer science" is highly mathematical and different from "computer science".

Honestly even I mis-used the term and this leads to tons of confusion. The naming of everything really changes the way people think and mixes everyone up. It's entirely a linguistic problem.

replies(1): >>41882656 #
3np ◴[] No.41882656{6}[source]
I mean...

Consider this school of thought: My school burned down last week. The one where I went to elementary school.

A strawberry is not botanically a berry. A peanut is not a nut. A tomato is either a fruit or a vegetable. Nobody thinks this is a problem.

This is just language. Perhaps it's not actually a big deal that "Theoretical Computer Science" does not cleanly fall into your usual "Science" label?

replies(1): >>41882989 #
1. ninetyninenine ◴[] No.41882989{7}[source]
>This is just language. Perhaps it's not actually a big deal that "Theoretical Computer Science" does not cleanly fall into your usual "Science" label?

What are you talking about? You're regurgitating points I already made as if I never made those points...

I literally said Computer science is NOT a science.

I said several times, it's a linguistic/nomenclature issue.

I don't think you're reading my responses. Are you trolling? If not please read over my responses more carefully.

replies(2): >>41883198 #>>41883951 #
2. 3np ◴[] No.41883198[source]
So, we are acknowledging that there exist parallel non-overlaping equally valid notions and definitions of science.

Menawhile, you seem pretty hung up on the "In Science, nothing can be proven" part of a whole long argument as to why CS shouldn't be referred to as a science. Perhaps that distinction is not useful or relevant in context?

replies(1): >>41883424 #
3. ninetyninenine ◴[] No.41883424[source]
>So, we are acknowledging that there exist parallel non-overlaping equally valid notions and definitions of science.

False. I said I acknowledge linguistic issues that can cause confusion. There is overlap but there is NO contradiction. There isn't a case where there are two conflicting definitions for a single term.

>Menawhile, you seem pretty hung up on the "In Science, nothing can be proven" part of a whole long argument as to why CS shouldn't be referred to as a science. Perhaps that distinction is not useful or relevant in context?

Meanwhile you seem hung up on me setting up clear and categorical distinctions as not useful or relevant.

Let me make it clear why your hang up doesn't make sense. The entire topic of this thread is an argument for "why CS isn't math." I am staying on topic and saying that CS IS a MATH and NOT a SCIENCE. Thus because I am on topic the distinction is ON context and HIGHLY relevant. You can disagree and state your points but saying my point isn't relevant is false.

It's not a valid argument. I literally stated the premise is false and stated the reason why, and you stated the reason is off topic as if I changed the topic .

4. Koshkin ◴[] No.41883951[source]
> I literally said Computer science is NOT a science.

But the point was that this entirely depends on one's definition of what the word "science" means - and that depends on the context and the language. I can say, for example, that math is science - simply equating "science" with "knowledge" and "research".

replies(1): >>41884164 #
5. ninetyninenine ◴[] No.41884164[source]
>But the point was that this entirely depends on one's definition of what the word "science" means - and that depends on the context and the language. I can say, for example, that math is science - simply equating "science" with "knowledge" and "research".

And I stated this in this thread several times. I defined what science is and I literally said, Computer Science isn't ACTUALLY a Science. It's incorrect terminology due to historical reasons. It's similar to greenland. Greenland isn't actually Green.

If you followed carefully what I wrote in this thread I defined what definition of science I'm using very very clearly and I ALSO stated why for the context of defining what "Theoretical Computer Science" using this definition has the most utility for the task at hand.

Look, not just you Koshkin, but everyone. This isn't even a thing that's really up for debate. Look at the wikipedia page for "theoretical computer science". The FIRST intro literally says it's the mathematical foundations for computation.

https://www.wikiwand.com/en/articles/Theoretical_computer_sc...

replies(1): >>41884406 #
6. Koshkin ◴[] No.41884406{3}[source]
You believe that your definition of the word "science" is actually correct. (I have my doubts.)
replies(1): >>41884601 #
7. ninetyninenine ◴[] No.41884601{4}[source]
Well that's the basis of my arguments. If you disagree on foundational definitions then we have a disagreement on language and our choice of what definition to use for what word is rather arbitrary. There's no way to conclude a discussion at this point.

Additionally if you actually follow the wiki definition above of "theoretical computer science" all of the contents of that article are literally describing mathematics and nothing else. EVEN the introduction says it's math. You haven't commented on this point.

Also It's not a "my definition" it's more of a definition within a well known body of study called the philosophy of science.

Sources:

https://www.wikiwand.com/en/articles/Karl_Popper

https://www.wikiwand.com/en/articles/Falsifiability