|
PaulC1972 wrote: Isn't it possible for you to have any kind of discussion in these forums without uttering "Plain English"? I am starting to think it is not possible...
Actually, I've discussed many different things here. This very thread contains a reference to a post I made today regarding Latex where Plain English is not mentioned at all.
But we came here specifically to discuss issues illustrated in our Plain English development system, and so it is not surprising that most of our posts address those same issues. We're not here to "socialize". We're on a mission...
|
|
|
|
|
The Grand Negus wrote: We're not here to "socialize". We're on a mission...
Mission to annoy...
If you try to write that in English, I might be able to understand more than a fraction of it. - Guffa
|
|
|
|
|
The Grand Negus wrote: And what language is that last line?
I've got nothing against English; my gripe is with the use of English in an inappropriate context.
The Grand Negus wrote: We're not saying that algebra is useless, or that algebraic notation is less appropriate than Plain English for certain specific tasks.
I agree with this sentiment. However, going back to the point I made above, a formula with some definitions in English as I gave above is a much better way to present the c->f conversion algorithm than English. In short, I contend that your example was a bad example of the merits of plain English.
Steve
|
|
|
|
|
The Grand Negus wrote: Stephen Hewitt wrote:
Or more succinctly:
f = 9/5*c+32
Where "c" is degrees centigrade and "f" is degrees in fahrenheit.
And what language is that last line?
The language is math, or more specifically, algebra! The writing of the sentence is in the script of English.
Computers and programming were invented in the images of math and science, which has its own miriad of languages.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Stephen Hewitt wrote: In short, I contend that your example was a bad example of the merits of plain English.
Agreed. Mathematical relations are a weak point in every natural language; that's why things like algebraic notation are invented in the first place. But I didn't get the choose the example here - the problem assigned by the instructor was clearly math-centric. Nevertheless, I'm quite sure that a complete solution to the given problem - including the interface, etc - would include a much smaller percentage of formulaic matter and would therefore benefit from the "compiled pseudocode" I recommended.
It's not unlike a MIDI music machine I programmed years ago on and Apple II. There were certain routines that, for performance, had to be written in assembler. But the bulk of the program was much more easily written, tested, modified, and perfected in Applesoft Basic (a more English-like language).
Besides, formulaic languages reach their "limits" very quickly (no pun intended). Consider, for example, this natural language description of an object:
a two-inch aluminum cube with a quarter-inch spherical void at its center What's the formula for that? And for the other zillion things that can be easily described in half a sentence but that nevertheless defy mathematical description?
|
|
|
|
|
I agree that English has its place; just not where you used it. It seems you concede this point so I won't go on about it.
The Grand Negus wrote: a two-inch aluminum cube with a quarter-inch spherical void at its center
What's the formula for that?
You could describe this mathematically in many ways but I agree that for many uses an English description or a diagram would be superior. However, if you wanted to figure the required volume of aluminum required a mathematical description would be preferable.
The Grand Negus wrote: Besides, formulaic languages reach their "limits" very quickly (no pun intended).
I think that pun was intended
Steve
|
|
|
|
|
Stephen Hewitt wrote: However, if you wanted to figure the required volume of aluminum required a mathematical description would be preferable.
Not necessarily. Recall the story of Henry Ford who, encountering one of his engineers feverishly working out the volume of an oddly-shaped fuel tank, simply filled the thing with water and poured the contents into a graduated cylinder. Point being, the "mathematical" approach is not always the most effective. And in our opinion, much less often than commonly assumed. Did you, for example, "calculate" your way to the store the other day, or did you use other methods of measurement, comparison, and decision making? When you reach for the mouse, do you have trigonometry, consciously or unconsciously, on your mind?
|
|
|
|
|
The Grand Negus wrote: Not necessarily. Recall the story of Henry Ford who, encountering one of his engineers feverishly working out the volume of an oddly-shaped fuel tank, simply filled the thing with water and poured the contents into a graduated cylinder.
I take your point but immersing an aluminum cube with a void in the center will measure the volume of the cube including the void. You would have to fill the void with fluid to figure out how much to subtract since I was after how much aluminum was required. Based on the description of the shape, to get access to the void I would have to drill a hole in the box. In this case the mathematical approach seems best.
The Grand Negus wrote: Did you, for example, "calculate" your way to the store the other day, or did you use other methods of measurement, comparison, and decision making? When you reach for the mouse, do you have trigonometry, consciously or unconsciously, on your mind?
Mainly memory but I can say little out what method my mind used internally.
Steve
|
|
|
|
|
Stephen Hewitt wrote: Mainly memory but I can say little about what method my mind used internally.
But that is exactly what we're trying to figure out. And we not interested in "higher mathematics" at this point because we're convinced there are no higher mathematics going on in, say, a two-year-old's mind when he understands and properly responds to simple commands.
|
|
|
|
|
The Grand Negus wrote: we're convinced there are no higher mathematics going on in
I don't agree with that. I'm quite sure there's all kind of complex operations taking place, many of which would be best described and understood mathematically.
Steve
|
|
|
|
|
Stephen Hewitt wrote: and understood mathematically
Actually you are fully correct and well... the other, never mind.
What the human brain does is parallel thought, what we think of as "lacking" mathematical thought is actually extremely complex mathematical relationships. From 3D vision, distance estimation, location memorization (and planning), everything that we do can be represented mathematically.
One of the great shocks to scientists was discovering how bees give away location in their "dance" to find new places of nectar. The result was a 6-dimensional description of air-flight to the location, 6D being a shorter description similar to a quaternions (4D) being an excellent representation of 3D spatial references. Are human beings mathematically deficient because we don't use 6D? No, on the contrarary, some of the mathematics we use are so complex, yet automatically solved by the human brain that we are still working on figuring it out.
Everything you do from typing, reading this text, to putting your socks and shoes on in the morning takes into account extremely complex mathematical relationships as an automatic reflex. But just because the mathematics are solved by reflex and subconcsious does not mean the math is lacking. Trust me, it is there, in huge volumes!
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Stephen Hewitt wrote: I'm quite sure there's all kind of complex operations taking place
Seriously, this is not the case. There are all sorts of simple operations taking place, the combination of which results in apparently complex behavior. Jeffry, in the following post, is simply wrong. While these complex behaviors can be described - the hard way - with complex mathematics, this does not mean that they are the result of, or generated by, those same complex mathematics.
Let's say, for example, that I write up a little program where dots on the screen appear to approach/flee from one another based on color and proximity; the program uses nothing but simple coordinates and two addition operations (add 1, subtract 1). Some genius, of course, might look at the whole pattern after, say, a hundred steps, and may also be able to devise a complex formula that describes the composite path taken by each little dot. But if he thought that that formula was the source of that path - or that anything remotely like that was processed in the program - he would be completely wrong.
Check out the introduction to this article [^] that describes an apparently complex behavior of ants - and the remarkably simple cause underlying it. No complex math in sight.
|
|
|
|
|
The Grand Negus wrote: Seriously, this is not the case.
which is why you will NEVER achieve AI. Given that I have friends in the bio-neural industry you would be shocked at the amount of information passed for your add 1, subtract 1 operation, the net volume of information wouldn't even fit in a computer made today. Because parallel thought is using assisted symetry of learning to evaluate based on past experience and predictive analysis even for the simpliest of tasks.
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Most things which are undeniably complex are composed of simpler components which in turn are composed of yet simpler components, and so on. In short, just because a system is composed of simple components doesn’t imply a lack of complexity; the complexity is often in the interactions. This can be seen, for example, in conway's game of life.
Steve
|
|
|
|
|
Stephen Hewitt wrote: just because a system is composed of simple components doesn’t imply a lack of complexity; the complexity is often in the interactions
But it does imply that if we can fully understand the simple components, we can build a machine that replicates the behavior of the larger system without needing to understand all of the complex interactions before we do; and that we'll be in a better position to understand those complex interactions after we replicate them using just our understanding of the underlying and simpler components.
For example, after constructing a mechanical or computer replica of ants making random turns and dropping pheromones when they have food in hand, we can better understand the behavior of the colony as a whole. The point being that this kind of investigation is doable - we can make immediate progress on the first step because it is simple; and that having made that progress, it will be easier to take a next step, etc.
And that's the kind of thinking and doing we advocate. Start with something small and simple - even if you don't understand the whole thing - and see what happens. But always insist on small and simple. The other camp says, "If you don't fully understand the complex mathematics underlying aerodynamics and can't build a 400-passenger airliner capable of transatlantic flight, then get back to the bicycle shop boys, because you're nothing but quacks".
Take your pick.
|
|
|
|
|
The Grand Negus wrote: But it does imply that if we can fully understand the simple components, we can build a machine that replicates the behavior of the larger system without needing to understand all of the complex interactions before we do; and that we'll be in a better position to understand those complex interactions after we replicate them using just our understanding of the underlying and simpler components.
Possibly, but you can't just know how to make a transistor and make a computer: you have to know how to put them together.
Steve
|
|
|
|
|
Stephen Hewitt wrote: Possibly, but you can't just know how to make a transistor and make a computer: you have to know how to put them together.
Of course not. I never said anything like that. I said that having made a transistor, and hooking a few of them together to "see what happens", you'll be in a better position to take the next step, and the next, eventually leading to a computer. Are you purposely being contrary?
|
|
|
|
|
The Grand Negus wrote: Are you purposely being contrary?
No. I could ask you the same question.
Steve
|
|
|
|
|
The Grand Negus wrote: But always insist on small and simple. The other camp says, "If you don't fully understand the complex mathematics underlying aerodynamics and can't build a 400-passenger airliner capable of transatlantic flight, then get back to the bicycle shop boys, because you're nothing but quacks".
So you are saying anyone can and should build a 400 passenger airbus to cross the ocean, without understanding aerodynamics, fuel consumption, weight loss to fuel use balance dynamics? You are more far gone than I thought!
Well, go for it! But I can guarantee you that you shall NEVER achieve flight unless it is just long enough to kill all the witnesses. Madness.
But keep those monkeys typing, sooner or later they will type out a full copy of war and peace through random strokes. When they do, call me, you can laugh then. Until then, the rest of us have real work to accomplish, and are doing so, including aerodynamics and spatial physics, in 4+ dimensions. You can stick to your one dimensional thought, personally I prefer a wider universe of movement or my legs fall asleep.
I don't make mountains out of molehills, if anything through quaternion mathematics I have reduced complexity by increasing dimensions. There is never more math than needed, which is far more than you will ever understand.
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Y'know, Jeffry, I think you've got a bit too much of your self-esteem tied up in this math thing. Perhaps it's time we turn out the lights and dream of Mr Edison doing (or not doing) quaternion mathematics in 4+ dimensions...
|
|
|
|
|
or perhaps you turn out the lights and dream of crashing a space shuttle for inaccurate math!
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
The Grand Negus wrote: you've got a bit too much of your self-esteem tied up in this math thing
Some people have a memory and an attention span, you should try them out one day. - Jeremy Falcon
|
|
|
|
|
Jeffry J. Brickley wrote: So you are saying anyone can and should build a 400 passenger airbus to cross the ocean, without understanding aerodynamics, fuel consumption, weight loss to fuel use balance dynamics? You are more far gone than I thought!
I sure wouldn't get in his airplane
Some people have a memory and an attention span, you should try them out one day. - Jeremy Falcon
|
|
|
|
|
The Grand Negus wrote: Besides, formulaic languages reach their "limits" very quickly (no pun intended). Consider, for example, this natural language description of an object:
a two-inch aluminum cube with a quarter-inch spherical void at its center
What's the formula for that? And for the other zillion things that can be easily described in half a sentence but that nevertheless defy mathematical description?
BS! Do you want to retract this example before or after I direct your attention to NURBS? A two inch cube with a cavity in the middle CAN be represented mathematically. Or did you forget about the existance of Maya, AutoCAD, Rhino3D, [many more]??
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
xcom2001 wrote: as a teaching aide to help me understand how this works.
I will add some background, since ... other ... discussions led astray this discussion. Pseudo code is not meant to compile, deliberately. Think of it as programmer short-hand.
What I posted was close to Pascal in structure, but need not be, you will find C like references of pseudo code.
program Celsius To Fahrenheit (input: double celsius)
begin
// Convert Celsius to Fahrenheit.
double fahrenheit = (celsius * 9 / 5) + 32
return fahrenheit;
end
or purely algorithmic
Celsius to Farhrenheit
fahrenheit = (celsius*9/5)+32
return fahrenheit
Pseudo code originated as an alternative to flowcharts, which for Fortran programming could become very long and tedious drawings. The goal was to design your code, not write it "yet" so it should be A) shorter than your actual code B) be easy to write, without any formal rules, but should be consistent in what ever rules it uses. Back in the Fortran era, language, and column (yes good old punch-card limits) rules made full program writing difficult, thus pseudo code was a way of exchanging ideas and perfecting ideas.
There is a REAL reason behind this. As you are designing an algorithm you want to be able to shape it, change it rapidly, yet also be able to understand it. If it follows any persistent "syntax" it gets bogged down in rules than make it wordy and/or impossible to maintain, again like flow-charts. It should be consistent in what few rules it does use for ease of peer-exchanges.
The goal is not to finish your code, period. Not with pseudo code at least. Pseudo code or UML or flowcharts are what you bring to design-reviews. Obviously if you have a finished product, and you made poor assumptions in your design, you've just wasted everyone's time by trying to short-cut the process. So Pseudo code is fast, friendly and "similar" to what ever language you are using with absolutely the most minimal rules.
In this way a design review can review the pseudocode, you can show what you intend to do without wasting too much time in doing so. You can change that code rapidly from input in the design review, or shortly thereafter.
For my design reviews I use a combination of pseudo code, uml flow diagrams and mind-maps. Given the original purpose, the speed of which to A) design code B) present your design C) standardized exchange of peer thought... This combination works well. In some cases the best solution really IS a diagram, especially in data flow. Mindmaps allow rapid changes in hierarchal patterns, especially live during a design review -- I have remapped live during several to the pleasant surprise of all. And pseudo code does well for structured organization of algorithms themselves.
The primary reason pseudo code takes on elements of compiled language is from habit. If you program Fortran, your pseudo code will resemble Fortran in at least some ways. If you are writing C, it will resemble C, etc.
HOWEVER, back to the original purpose of pseudo code, if you have to think of the syntax, no matter what language, then you have too many rules. If the pseudo code is longer than the actual resultant program, then either your code is too concise or your pseudo code too wordy.
It must be A) Fast B) easy. It is still supposed to be algorithmic coding "shorthand".
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|