
Theoretical Computer Science – An Introduction [pdf] - lainon
http://www-cc.cs.uni-saarland.de/media/lectures/W1415/L-Grundz%C3%BCgederTheoretischenInformatik/ti_FfSJlCM.pdf
======
ricw
God. I did all this years ago, even wrote a masters thesis on formal
verification. And I can actually not remember a single time when this was
actually useful, other than perhaps really obnoxious interviews. Don't get me
wrong, it's interesting, and if you get through this and understand the matter
it will make you a better computer scientist. But it's really not very
applicable at all.

It's the computer science analog to latin for modern day languages... Perhaps
less than.

~~~
yorwba
I think a better analogy would be

modern languages : software development (applications)

linguistics : theoretical computer science (theory)

Latin : Turing machines (classic models)

If all you are interested in is applications, you can mostly ignore the
theory, but sometimes theoretical considerations help you think more
abstractly about your application to gain more insights.

The classic models are mostly only relevant to theorists who can use them as
objects of study, if they so choose.

~~~
elcapitan
I think it's closer to think of it in terms of

Software Engineering = Mechanical Engineering

Computer Science = Science/Physics

A lot of the mess we have in software development comes from thinking that you
can build massive bridges without understanding of physics. Or by imitating
other massive bridges without understanding why they are the way they are.
Yes, you will work 99% of the time on other things that physics, like building
materials and design and use cases, but it can get really really nasty without
the foundation.

~~~
sidlls
I disagree. I think many of the problems in software development as practiced
today originate from thinking that the theory is all that is necessary.

To take your analogy, my view is that in practice it is considered that we
should hire physicists or mathematicians to design and engineer bridges.
"Engineering" is almost sneered at as being somehow inferior or a trivially
learned skill.

~~~
treehau5
> I disagree. I think many of the problems in software development as
> practiced today originate from thinking that the theory is all that is
> necessary.

This is such horseshit. Computer Science gives you the intuition needed to
guide you to making more correct decisions you make in building your software
rather than wrong. When you have these practitioners hitting the scene all of
a sudden who just simply learn xyz latest framework/tool/fad and then are
faced with a new and interesting complex challenge (for example, computers all
of a sudden now have multiple cores! surprise!), they do not have the
background to adapt and spend much time cutting their teeth, creating many
bugs in their wake.

If you think that having the theory makes you write worse software, I feel bad
for you because your computer science education must have been shit and you
probably wasted your money. In that sense I understand the bitterness that a
lot of people have.

~~~
sidlls
I write "engineering is more than theory" and you conclude "he means theory is
useless."

Here's my view, as a person who has formal education in engineering, physics,
and mathematics: there are an awful lot of CS grads looking for nails to apply
their textbook theory hammers to without understanding that simply knowing
theory is not enough. I think you need to reconsider _why_ the bitterness
exists.

~~~
yorwba
They: _you will work 99% of the time on other things [...] but it can get
really really nasty without the foundation._

You: _I disagree._

Do you see how someone could make the mistake of thinking you meant "theory is
useless"?

FWIW, I agree with you both.

~~~
sidlls
I wasn't clear: I was referring specifically to the analogy drawn between
engineering/physics and this industry. The analogy is an ideal that I don't
think reflects the practice. In practice this industry focuses on theory, and
sometimes quite intricate theory, as the absolute most important knowledge to
have almost to the exclusion of other things.

The bitter and vitriolic comment I responded to is a reflection of this.

------
znpy
Can't get the document to load. The webserver is probably down due to HN's hug
of death.

Anyone has a copy mirrored somewhere ?

~~~
imsky
archive.org has a copy:
[https://web.archive.org/web/20170707011101/http://www-
cc.cs....](https://web.archive.org/web/20170707011101/http://www-cc.cs.uni-
saarland.de/media/lectures/W1415/L-Grundz%C3%BCgederTheoretischenInformatik/ti_FfSJlCM.pdf)

------
itsmemattchung
This document stretches a little over 200 pages and it would be helpful if it
included a table of contents so we can get a feel for what it's all about.

~~~
ice109
it's a theory of computation/formal languages textbook. thw canonical
reference is sipser's intro to theory of computation but i like hopcroft,
ullman's intro automata, languages, computation much more.

