When I was 7, my dad introduced me to my first programming concept ever. While having a walk in the forest, he asked me to look at fern and made me inquire about its structure. He proceeded to tell me about recursivity and a very long conversation ensued. Needless to say, my mind was absolutely blown.
Over the years, we had many discussions like that first one, relating programming concepts to real-life principles. My dad was never (and still isn't) a "hardcore" programmer, but as far as understanding and explaining logic go, I'm still to find somebody capable of explaining things so simply and beautifully.
Quite a few years later at University, my teacher with two PhDs failed to explain the basics of OOP to my class in a 4 hours span, entangling himself and everybody in lingo and concepts that even confused me, who already knew OOP. Academics would sometimes do well to relate to the real world and deflate their egos.
> Academics would sometimes do well to relate to the real world and deflate their egos.
This is really the key to teaching beginners. The difference between telling someone what something is versus encouraging them to see it for themselves.
Apart from the tired car analogy, how would you (or better how would your dad have) explain(ed) OOP to a relative beginner?
We find that we sometimes have to start with the very basics - as in a variable is a 'box' to put a value in. Literally, we hand out boxes. Really, simple intuitive stuff like variables is something that is non-intuitive for most people.
We keep the cooking equipment and raw materials in the kitchen.
Same goes for the bathroom, laundry, den, bedroom.
These are all "rooms" which share features like doors, heating, floors, lights.
These will be in building, which could be detached, block, semi-detached, terrace.
These also have common processes but differences.
We human computers move between these rooms, sometimes we bring data with us (are we hungry, sleepy, with friends, naked) and use the processes and data in the rooms to perform useful actions. Once compete we might be in a different state (dressed, sated, refreshed, clean), the room might be different for the next person (dirty, empty, wet), we might leave the outputs there or take them with us to a different room or even outside of the building.
The way I had it explained to me I always really liked. We spent a long time on very simple things: logic, control flow, functions, variables. Then, after learning that and all the limitations of those tools, my teacher said: "an object is something that can contain functions and data. In fact, in many languages, functions and variables are both objects."
Another great resource about fractals and l-systems is Jeffery Ventrella's "Brainfilling Curves", which is also available for free online to read and download: http://www.fractalcurves.com/
Oh wow. This is a huge nostalgia rush. Jeffery Ventrella's website absolutely hooked me on programming. The visualizations were totally mesmerizing for me as a 10 year old kid. Especially this: http://www.ventrella.com/Ideas/Fluid/fluid.html. It's a 167kb fluid simulation that ran smoothly on a pc circa 1999.
Thanks for making the recommendation for CBofN (I am the author). I should also add that the naming of my book was clearly inspired by ABofP (or ripped-off, depending on your point of view). ABofP was a real inspiration to me.
I really loved CBoN -- it really is a very good book. I felt like each chapter was approachable enough that I could just casually read it and felt like I "got it", but when I sat down with pencil and paper and worked through it I gained a real appreciation for each section.
Great book BTW! Is the Kindle version new? I ask because I could swear I went looking for this a year or so ago before moving and ended up having my copy scanned and pulped so that I could take it with me.
Thanks so much! Here's the funny thing ... I had no idea there was a kindle version until just now (your comment prompted me to go look). I am pretty sure that it's new because -- while I don't follow the sales closely -- I also like to look at the breakdown of sales every year and I can't recall there ever being a kindle or digital category. So, yes, that's my guess.
I am going to go buy a copy now just, well, because I can.
So, since you have purchased can you tell me if this is a decent conversion to azw3? I prefer epub/azw3 over pdf since it reflows well on a smaller device (yes, some images/charts will never work on a smaller screen) and would probably buy another copy if it turns out to actually be good version rather than some topaz scan packaged up as a kindle version...
I have not read Mandelbrot's book (yet!), so I can't really compare it.
I don't know what sort of depth you're looking for, but I'd call CBoN a "medium"-depth book on the subjects involved. It's possible to read it like a pop-science book and still appreciate it, but you can actually sit down with pencil and paper (or write some code) and gain a pretty good level of insight. You're not going to necessarily gain a complete understanding of all the underlying math, though, just by reading this book.
Anyway, it's a pretty darn good use of $40, IMO. Buy it!
The Mandelbrot book was the first one on the topic (published in 1983, revised from books published in 1975 and 1977), and is the least likely to have 'recent information on the topic'. It's also not as readable as some of the others, but it's certainly a classic (and deserving of a larger Wikipedia article than it currently has).
I can understand why the algorithm for some fractals can turn out to look like plants. What I don't understand (probably for lack of reading up on the subject) is why do plants look like fractals. I mean you won't find some microprocessor in every plant issuing orders to grow according to a fractal formula so I assume this is a emergent statistical phenomena from constraints within the plant genetics - but is the bridge between the fractal shapes and plant shapes well understood?
Fractals have no inherent dependency on microprocessors. Microprocessors can be used to generate fractals simply because they can execute the generation rules of a fractal, but you could could likewise generate them with anything which can perform a specific affine transformation, for instance a copy machine. An affine transformation is simply a linear transformation together with a translation, for fractals the linear transformation would typically be a scaling composed with a rotation. You could easily imagine how you might follow such a simple growth pattern, just iterate the same scale rotate and translate operation mechanically so the branches look like the whole thing.
I wasn't really suggesting that microprocessors are required to generate fractals, but rather that I don't understand how the process that eventually generates the fractal shapes occurs in plants. You have a good point that all that is needed is a relatively simple operation repeated in every part of the system which indeed makes it easier for me to imagine how the shape forms. From what level this operation starts to be expressed is probably something botanists can answer.
Warning I probably don't know what the hell I'm talking about. However my gut instinct is that self similarity mean shorter code (dna) shorter dna (protein chains) take less energy to copy thus gives you a survival advantage (often survival for plants means getting set up and leaves out fast). An experiment was done a while back where they took a bacterium and 'unrolled the code' of the dna (seems there are deduplication routines in nature). When the result was grown in a lab it behaved just like the original but didnt grow as large.
I've got this on my bookshelf right next to "The Algorithmic Beauty of Sea Shells" and "The Science Fractal Images". Hope more old books like this get digital releases for free/modest cost.
I didn't realize what a prize it was to buy a hardback edition in the mid-90s. Now I keep the e-book on my tablet for reference. Not that I have to refer to L-systems often.
Dude... it's really weird to quote varius tiny details of the natural world as proofs of the existence of a god. At what point is the particular system under observation dull enough for someone to believe that it would not have needed an 'outside' designer?
Because, the amazingly crazy details are present at every tiny bit of matter, alive or not. We don't know how to make life? Yeah, well, we don't know how to make energy either (we just transform it). And organization? Every friggin atom is apparently composed of the same kind of elementary particles that know how to behave with other particular kinds of particles when they interact with them exactly by the same rules.
Matter is not a chaotic soup. It's a dance by very specific rules.
The whole universe is rigged for organization. Why? I surely don't know.
I believe in the universe being awesome. It probably gives me same vibes as the belief in God gives others. I suggest we leave it at that.
But as mind blowing details of the natural world go:
Self similarity is a mathematical artifact of nature and you can observe this in "simple" matter. A one of the most striking examples of this is the von Karman vortex pattern that can be observed at any scale when there is a small obstruction in a 'flat' flow.
If you google 'von karman vortex' the image results will mostly display images of cloud vortices. However, the same pattern can be observed for instance around rocks in streams (even really tiny rocks in really tiny streams).
Because it shows that it just takes simple math and algorithms to make complex beautiful things, and not an all-powerful deity?
Some people see the order behind natural beauty as evidence of a designer, but I think this actually demonstates how beautiful systems can arise on their own without guidance. If something was designed by an all-powerful being, it would be surprising if we mere humans could understand its patterns at all.
Different perspectives, I guess.. you are of course free to believe whatever you want.
Yeah, different perspectives indeed. But to me it seems unreasonable that for example the tablet I'm writing this on somehow came into existence by itself. Touchscreen, CPU, OS and no creator at all? The things we see in nature are much more complex than my tablet?
My point, and one of the lessons of this book, is that the things we see in nature are actually NOT that complex. Sure, they are endlessly varied and superficially very complicated, but the rules that govern them are pretty simple. We're able to describe them pretty well with simple computer programs and don't need to be a god to do so. Complexity and endless variation can result from extremely simple systems that are often easily understandable And follow directly from basic laws of nature.
The fault in your logic is your failure to account for the extrordinary difference in timescales involved in the creation of tablets and ferns.
It's worth remembering that Charles Darwin was a geologist by training. At the time, geology was a relativly new discipline, and the first line of scientific inquiry that demanded any concept of deep time. Its development signaled the dawning realization that the Earth was a lot older than anyone had previously guessed ("possibly a billion years" speculated Charles).
Acquiring an accurate measure of the timescales on which geological events played out is what set the stage for an evolutionary theory of life's development. Indeed, the theory of evolution is virtually inconceivable in the absence of these scales.
Obviously not. And that's for the simple reason that the theory of evolution describes living things. As I'm sure you know, a tablet is not a living thing. Therefore, the theory of evolution doesn't even try to account for its appearance.
Of course, people talk about the evolution of inanimate objects all the time. But most of them are aware that they're using the term loosely, and not it its proper scientific sense. In other words, when people talk about the "evolution" of tablets, they are not asserting that new tablets are the product of existing tablets having sex with each other and producing little baby tablets which ship themselves to retail outlets when they're all grown up and ready for sale. Rather, they are speaking metaphorically, and describing a process which, in many ways, looks like evolution.
Nevertheless, the incremental development of tablets is not actual evolution any more than a person wearing a lion costume is an actual lion. I hope this clears things up
"So what you are saying is that given enough time and some random events my tablet could actually come to existance all by itself?"
Well, no. But there is nothing in the natural world that we know of that is implausible for development over the time scales involved.
Which is really separate from the point here, that the various fractal and fractal-like structures is that complex looking behavior and structure can emerge from very simple rule or encoding.
Over the years, we had many discussions like that first one, relating programming concepts to real-life principles. My dad was never (and still isn't) a "hardcore" programmer, but as far as understanding and explaining logic go, I'm still to find somebody capable of explaining things so simply and beautifully.
Quite a few years later at University, my teacher with two PhDs failed to explain the basics of OOP to my class in a 4 hours span, entangling himself and everybody in lingo and concepts that even confused me, who already knew OOP. Academics would sometimes do well to relate to the real world and deflate their egos.