My view is quite unconventional, but I believe, computer science is a branch of mathematics that deals with large but finite structures (so they need an algorithmic description). Compare with most of "legacy" mathematics, which studies countable structures (so the description can use arbitrary series). Of course, there are larger sets, but they mostly serve as a theater (just like countable infinity is just a theater…
> computer science is a branch of mathematics that deals with large but finite structures (so they need an algorithmic description) Another way to put this is that computer science deals with mostly constructive mathematics (more precisely, mathematics that uses intuitionistic logic, the kind that is natural to most programmers and computer scientists anyway). For instance, when you prove the fundamental theorem of a…
“Computer science is not about computers”
141–150 of 293 posts
Re: “Computer science is not about computers”
#142Earlier quoted context omitted.
That is true but in french at least "informatique" means both "computer science" (for example you can study "informatique" at university) and "anything related to computers". "What's your line of work?": a DBA, sysadmin, software developer, computer scientist, etc. may all answer simply "informatique". A series of books for beginners about Excel, Word, Internet, etc. may be called "Collection informatique". Or if, sa…
In Germany, anything computer-related is subsumed under "Informatik". - Students learning to use MS Office in school? Informatik. - People fixing printers and replacing your harddrive? Informatik. - System administrators managing a datacenter? Informatik. - Data scientist applying deep learning techiques? Informatik. - University professor trying to prove P==NP? Informatik. Honestly, I envy the Americans for their de…
Re: “Computer science is not about computers”
#143For my entire time as an undergraduate, the large top-ten research university I attended offered no courses in programming language theory, nor were these topics woven into the computing curriculum at large. (actually, there may have been a handful of graduate courses, but undergrads were strictly prohibited from joining -- there was a mandatory theory of computation class required for all CS majors, but the topics v…
Re: “Computer science is not about computers”
#144Earlier quoted context omitted.
> computer science is a branch of mathematics that deals with large but finite structures (so they need an algorithmic description) Another way to put this is that computer science deals with mostly constructive mathematics (more precisely, mathematics that uses intuitionistic logic, the kind that is natural to most programmers and computer scientists anyway). For instance, when you prove the fundamental theorem of a…
Although the standard proof of the incomputability of the halting problem assumes it is computable and then reaches a contradiction. And that's more or less the central proof of everything to do with computability.
to show ¬ P, assume P then derive a contradiction (false, ⊥)
i.e., ¬ P := P -> ⊥. This is actually just fine and constructive, it's just how you prove a negation.OTOH, there's another kind of contradiction proof:
to show P, assume ¬ P, then derive a contradiction (false, ⊥)
Written with function notation, this becomes P (¬ P -> ⊥)But if we unfold the definition of negation, we have that
P ((P -> ⊥) -> ⊥)
The left to right direction holds classically and constructive, but the right to left direction uses double negation, which can is equivalent to the law of the excluded middle, AKA classical reasoning.Re: “Computer science is not about computers”
#145Earlier quoted context omitted.
I personally feel the pain of this when trying to hire someone who understands core concepts in PL theory and can help maintain a framework. It's also not the sort of thing I can teach to my Sr devs on the job in under a year when they've never even touched anything like forth or lisp, or even tried to write a parser by hand.
I feel an analogous pain on the flip side of interviewing! I would kill for a job that lets me exercise some of these skills, rather than the brain rot of a typical software job which doesn't demand that one thinks too deeply about things.
Re: “Computer science is not about computers”
#146Earlier quoted context omitted.
This is good thinking and I am sad to hear that it is unconventional. And now I'll contradict the part of what you said about finite structures: At a theoretical level, the field deals with infinite structures, namely the Turing Machine tape and infinite time. We use finite Computing Machines to simulate a finite section of that tape in a finite time. Maybe we should call it Turing Machine Science, because we use com…
> Maybe we should call it Turing Machine Science Nope. Turing machines are arbitrary and rather unmathematical. The lambda calculus is a much better computational formalism, more mathematically grounded and oriented, with far more direct practical applications.
Re: “Computer science is not about computers”
#147Earlier quoted context omitted.
> Maybe we should call it Turing Machine Science Nope. Turing machines are arbitrary and rather unmathematical. The lambda calculus is a much better computational formalism, more mathematically grounded and oriented, with far more direct practical applications.
If you like, we can generalize and call it "computation science" to avoid the focus on the tool/machine in favor of the process.
Re: “Computer science is not about computers”
#148Earlier quoted context omitted.
> Maybe we should call it Turing Machine Science Nope. Turing machines are arbitrary and rather unmathematical. The lambda calculus is a much better computational formalism, more mathematically grounded and oriented, with far more direct practical applications.
Why would you think that? I believe I’ve read that even Church himself said that Turing machines are a more elegant basis for computations, since they are much easier to mathematically reason about. I’m sure one can prove everything proved for Turing machines for lambda calculus, but I disagree with your statement that it is more mathematically grounded. It may be true in a syntactic form, but definitely not in a mat…
Computing science cares a lot about building efficient processes. Thus to create real working programs, a better basis is a combination of lambda calculus for defining mathematical structures and (Von Neumann based) agent-based models for defining stateful processes.
Modern programming languages are evolving to be capable of representing either model, to adapt themselves to the style more suited to the problem at hand.
Re: “Computer science is not about computers”
#149Earlier quoted context omitted.
Programming languages are not full linguistics, at least not yet. We focus primarily on syntax, semantics and pragmatics. All of this, though, is firmly rooted in mathematics, defining grammar as expressions and mathematical relationships. This then enables formal mathematical proofs where we can reason about outcome. I don't know if there exists such search that you mention, or it is more of an optimization of langu…
I once read an article suggesting that reading computer code does not activate the regions of the brain that are involved in language processing: https://news.mit.edu/2020/brain-reading-computer-code-1215 This may indicate that the sampled programmers did not program in the way it can be done for example with declarative languages, i.e., primarily as a linguistic activity where we describe what we know about the task…
Re: “Computer science is not about computers”
#150Earlier quoted context omitted.
This is good thinking and I am sad to hear that it is unconventional. And now I'll contradict the part of what you said about finite structures: At a theoretical level, the field deals with infinite structures, namely the Turing Machine tape and infinite time. We use finite Computing Machines to simulate a finite section of that tape in a finite time. Maybe we should call it Turing Machine Science, because we use com…
> Maybe we should call it Turing Machine Science Nope. Turing machines are arbitrary and rather unmathematical. The lambda calculus is a much better computational formalism, more mathematically grounded and oriented, with far more direct practical applications.
Thus proving the point that a field that studies them cannot be considered a branch of mathematics.