> but I really doubt there is much of an advantage to teaching your child Depth-First Search
There is a huge advantage if you can teach it to him in a way that he can understand it, not just memorize the algorithm, like the unfortunate way kids learn to divide and multiply without understanding wtf they are actually doing, which is a big IF. It's a basic reasoning skill, even more basic than "basic logic" or arithmetic and if you can wire it into a very young mind you've changed that mind for ever. He will understand much better anything from philosophy to the theory of evolution, because you will have primed the mind for algorithms and logic. It doesn't matter if he ends up an investment bank manager or a politician, he will have learned how to understand algorithmic thinking.
90% of the population are, imho, what I call "mud-minds", they are incapable of deep understanding of logic and algorithmic knowledge, they can just learn instructions and apply them, sometimes to great results, but they don't "grok" them. And when it comes to truly abstract concepts that have no direct equivalent in the real world, they can only recite definitions from books, they have no "intuitive vision" of abstractions. And I think they are like this because their parents and teachers fed them a strict diet of 100% practical knowledge and scientific facts and never exposed them to abstract algorithms, patterns and processes. (As a different line of thinking, I think "separating the mind from reality" also helps young minds get a better grip of abstraction, like "running" an algorithm or visualizing a pattern as pieces of a fantasy world or advice of an imaginary companion, though child psychologists would obviously not be happy of such ideas of education...)
By teaching your kid something like depth-first-search (A* search on a game maze map would be even more awesome if you can grab a kid's attention though...), you give him a chance of not becoming such a "mud mind".
True, if a kid is technically oriented, you'll probably have more luck teaching him/her general programming before a bunch of algorithms. But the algorithms are the stuff that really "sharpens the mind" and you don't even need programming to get them, they can be explained in more mathematical or more graphical terms. And you don't even need a computer to teach a kid depth-first-search and you don't even have to tell him how it's called or what it is, just try and imprint a deep intuitive understanding of the process and algorithm on his mind.
There is a huge advantage if you can teach it to him in a way that he can understand it, not just memorize the algorithm, like the unfortunate way kids learn to divide and multiply without understanding wtf they are actually doing, which is a big IF. It's a basic reasoning skill, even more basic than "basic logic" or arithmetic and if you can wire it into a very young mind you've changed that mind for ever. He will understand much better anything from philosophy to the theory of evolution, because you will have primed the mind for algorithms and logic. It doesn't matter if he ends up an investment bank manager or a politician, he will have learned how to understand algorithmic thinking.
90% of the population are, imho, what I call "mud-minds", they are incapable of deep understanding of logic and algorithmic knowledge, they can just learn instructions and apply them, sometimes to great results, but they don't "grok" them. And when it comes to truly abstract concepts that have no direct equivalent in the real world, they can only recite definitions from books, they have no "intuitive vision" of abstractions. And I think they are like this because their parents and teachers fed them a strict diet of 100% practical knowledge and scientific facts and never exposed them to abstract algorithms, patterns and processes. (As a different line of thinking, I think "separating the mind from reality" also helps young minds get a better grip of abstraction, like "running" an algorithm or visualizing a pattern as pieces of a fantasy world or advice of an imaginary companion, though child psychologists would obviously not be happy of such ideas of education...)
By teaching your kid something like depth-first-search (A* search on a game maze map would be even more awesome if you can grab a kid's attention though...), you give him a chance of not becoming such a "mud mind".
True, if a kid is technically oriented, you'll probably have more luck teaching him/her general programming before a bunch of algorithms. But the algorithms are the stuff that really "sharpens the mind" and you don't even need programming to get them, they can be explained in more mathematical or more graphical terms. And you don't even need a computer to teach a kid depth-first-search and you don't even have to tell him how it's called or what it is, just try and imprint a deep intuitive understanding of the process and algorithm on his mind.