Pascal's Apology, or why computer science is complicated
carlos.bueno.org
carlos.bueno.org
Three decades ago I started a company that created a word processor. As part of our usability testing, we gave our little 100 page manual to an eight year-old boy and told him to write a letter. A couple of hours later he finished and we pronounced our endeavor a success. Even our customers were happy with how easy it was to use.
For our next release we produced a real manual -- 400 pages long. We were inundated with complaints about how difficult our product was to use now. Lesson: keep the story simple. Make the advanced features emergent and discoverable.
If anything, it shows that this field is mature, and has progressed to a more general vocabulary. It's still light years behind other kinds of engineering, IMO.
(I have a EE degree and disagree that CS is particularly far behind it; it's not like they're solving problems in hardware that are just way beyond our ability do in software are they?)
I get code, and I get design, but I didn't get that example without the (very interesting) simplified explanation
Bought the Kindle edition (price is very reasonable), will let you know what I think of it for grown ups...
Art comes from creating something new and stepping outside the box while science is about explaining some existing thing and defining the box to put it in. By studying music history we can see that new styles, harmonies and figures almost always came before the theory that explained them. This is much like new languages, frameworks or patterns coming out and then papers being written about them.
During the middle ages you would hear almost only intervals of an octave or a fifth. Then with classical music came the third and the sixth intervals and the second and seventh intervals only made it a few centuries later. Music as a theory evolved over thousands of years. Only recently did it explode with jazz trying to find every single way to bend that theory.
The brain cannot easily play with a concept it has no single-word name associated to. Right now CS is full of concepts described by mini-phrases and no clear hierarchy for all of these concepts. Music theory by contrast can be entirely described starting from the major chord. Every single concept (as far as I know) has it's proper place in a tree structure with the major chord as its root element.
It's ironic how programmers dread spaghetti code yet ended up with a spaghetti computer science. It might also not help that the industry is plagued with code smells.
In the end, by comparing harmonies to data structures, melodies to code flows and multiple voices to concurrency, I believe its mostly all the same to the brain. A musical score is nothing more than source code for the human brain to read and interpret.
That's a big part of science, too.
That may be easy to state, but I don't see it at all as a self-evident Truth. Hence the need for jargon, in order to actually come up with proofs in the language of mathematics.
edit: typos
The difficulty with reading more "formal" proofs is that they try to make each statement as consise as possible, because it makes it easier to manipulate the results, and hold more of the proof in your head at a time.
For perspective, consider the quadratic equation. This equation was first discovered in 628 AD, India. An English translation (from 1817) reads: "To the absolute number multiplied by four times the [coefficient of the] square, add the square of the [coefficient of the] middle term; the square root of the same, less the [coefficient of the] middle term, being divided by twice the [coefficient of the] square is the value"
Or, as modern mathematicians would right, x=(sqrt(4ac+b^2)-b)/2a.
The equation is slightly different for two reasons. First, it applied to equations of the from ax^2+bx=c, as apposed to ax^2+bx+c=0, so the sign of 4ac is inverted. It also misses the second answer provided by the '±'.
The original paragraph form is probably easier for someone unfamiliar with anything beyond arithmetic, however the modern form is far easier to reason about, and use to those who invest the time to learn the notation.
Isn't this because of the fact that at the time (628 AD as you say) there wasn't that much to be familiar with beyond arithmetic? (I don't really know the history of maths, just curious.)
> and hold more of the proof in your head at a time
Is it really the case? I mean that no matter with which notation you start with, you need to parse and evaluate it mentally to convert it into terms you actually think with.
I can see that for maths 'natives' it is helpful, because their mental models are very closely tied to the formal notation. But for me mathematics is a foreign language, it seems that I think in slightly different terms and this succinct notation makes it harder for me to actually understand what it is really about. (I don't mean your example specifically - it's still well inside my comfort zone).
As a programmer I do struggle for "math literacy" because I have to. I need to be able to read proofs, understand some concepts to be able to use them and to know when I need them. The problem is it's not natural for me. Yesterday I found here on HN a book that just may be exactly what I'm looking for: http://greenteapress.com/thinkstats/html/index.html (didn't have time to read it yet, but it looks promising).
> who invest the time to learn the notation
I think I said it before but maybe it's worth noting explicitly. I am somewhat familiar with the notation, I consider myself 'literate'. But I'm far from fluent and I probably never will be. Similarly, I can read and write cyrillic script (with pen and paper). But it takes me more than twice the time to read russian in cyrillic than reading the same text written with latin letters. I don't need someone to translate russian to english for me. It's just the character set that is a problem. I think it's very similar to what I experience with math.
An example: if you have a die and you don't know exactly how many sides it has, or whether it's fair, you can still get a perfectly fair 50/50 outcome. Just count "1 followed by 2" vs. "2 followed by 1" and ignore every other result.
Not under any standard formulation of probability. Probability is a measure, and measures are nonnegative by definition.
You'd have to exercise caution when using (quasi-)probabilities less than zero or greater than one, because many of the classical properties of probability theory depend upon those conditions.