The essence of algorithms is that of combining simple operations as to solve complex problems. Key is that everything should be completely well defined: the available simple operations, how they may be combined, the complex problem, and the correctness of your solution. Elegance is bridging a large semantic gap: the simpler and fewer the operations and the farther from them the problem seems to be, the more we are impressed. The simpler the solutions turn out to be, the more we are impressed.
I have just been introduced to a web site that gets as close to this essence as anything that I’ve seen: RoboZZle. The problems are given by mazes, where the goal to pick all “stars” on the maze. You must instruct a “robot” to do so, using very few commands: turn left or right, go forward, call a subroutine, do one of the above conditioned on the color of the square that you are on, or change the color of the square that you are on. That’s it. Programs must be very short, usually around half a dozen commands, and are entered, debugged, and run very easily graphically. Amazingly, this is enough for a multitude of interesting challenges, ranging from ones that are easy for kids, to ones that baffle me (despite the solution being of length 5).
These puzzles give you the main intellectual ingredients of algorithms and programming: not only using loops and conditionals but also abstraction (defining subroutines) and recursion. Check it out or, better, have your kids do so.