Guessing it's unlikely a common question, but wondering if anyone has seen material that was clearly made to address this audience in a meaningful way.
Computer Science Unplugged addresses kids (and teachers) in primary school.
Fun way to learn $\lambda$-calculus:
...This game represents the untyped lambda calculus. A hungry alligator is a lambda abstraction, an old alligator is parentheses, and eggs are variables. The eating rule corresponds to beta-reduction. The color rule corresponds to (over-cautious) alpha-conversion. The old age rule says that if a pair of parentheses contains a single term, the parentheses can be removed....
In my experience, it is not difficult to teach basic topics in combinatorics, graph theory, programming, algorithms and similar topics.
You may want to look up topics covered in IOI competitions and national competitions. There are summer schools and workshops related to IOI competitions starting at quite early age.
My personal favorite topic for such workshops is combinatorial game theory since it is easy to motive by playing games with the audience.
some ideas. it seems to me there has been an explosion of high quality yet low cost options for kids with an interest in computer science. note the strong link with STEM, so called Science Technology Engineering Mathematics education. (Ive been thinking that maybe the CS side could be emphasized/advocated with a new keyword STEAM where the A stands for Algorithmics.)
try the concept of boolean logic to represent mathematical operations. stuff like converting binary to decimal, decimal to binary, and multistage adders with carry from EE. building arbitrary functions out of CNF or DNF. even a young kid can understand the concept of functional completeness with AND,OR,NOT. some radioshack kits for stuff like this incl inexpensive microcontrollers. see eg basic stamp kit. there are some free/open source circuit simulators for this purpose. unfortunately I couldnt find any distributed with libraries of components so far. logisim is one popular one.
theres this cool game that runs on different systems incl PC/ps3/etc called Crazy Machines. this can be used to understand physics simulation in software and get the kid to think of systems of interacting components and chain reactions. the new ps3 version has a bunch of electrical and logic components including switches and gates.
robotics. try lego mindstorms robotics in particular. sophisticated software that allows stuff like loops, conditionals, subroutines. the subroutines are contained in graphical blocks ie its a visual programming system which years ago was very cutting edge (now its a toy). for inspiration, there are many rubiks cube robotic solver videos on youtube such as this state of the art one cubestormer II. designs for at least one are in a widely available book eg lego mindstorms nxt thinking robots by Daniele Benedettelli. also, recently I saw this many degrees-of-freedom pneumatic robotic hand. see also the First robotics competition league.
writing basic code for some simple stuff. eg sorting. doing empirical studies of different sort algorithms and watching/graphing the results (eg graph the performance of a bubble sort vs qsort for increasing input sizes-- see eg the animation on this wikipedia page for insertion sort). sort animations. a neat graphical analog is to sort a deck of cards instead of integers or strings. also many graphics or geometric operations such as drawing figures in code are excellent exercises.
game programming. this can be done in some excellent games. for example Little Big Planet has some sophisticated subsystems where kids can actually create their own games with the complex built-in construction system and components. can even study interacting/emergent phenomena this way. they can be uploaded to the internet and shared. another language for this purpose is called scratch. the classic one from Papert with much academic study of its efficacy is Logo
Depends on the person you are teaching and the area of that range.
A 12-14 year old that WANTS to should be able to handle just about anything, but he has to pull it in his own time, you can't really push complicated concepts to young people (or for the most part anyone).
I'm listening to iWoz at this point (which seems to be targeted at that age group and would be quite inspirational), by that age he was putting together some pretty advanced circuitry--but his father only ever answered questions, never handed him new concepts he wasn't ready for)
Or he may be completely disinterested and there is nothing you will be able to do about it.
Kids can be really impressed with something simple though. If you found some game he liked and helped him recreate it (even on a very superficial yet still graphically similar level) you may really get him going.
Or, even better yet, if you found an existing open source game he might like, let him play it then show him how to make little modifications you might be able to get him excited. (Modifications always seem to be the best way to get started)
I actually taught a summer camp mostly containing 4th, 5th graders, though I had one 2nd and one 3rd grader (your target age group). The camps were week long and I taught XNA showing them basics of if, else if and a simple for statement along with photoshop. The issue with XNA was I had to help them program quite a bit til the end of the week, the other camps we had going on included lego robotics and GameMaker, both still having the very root CS theory and kids love it.
There is a videogame called SpaceChem which is based on principles of programming. You can read more about it here: http://gangles.ca/2011/06/19/programming-in-spacechem/
I think Planarity is good game. It gives some idea about planar graphs, and introduces elementary concepts of graph theory (like graph made by node and edges, and degree of nodes, what are planar graphs , ...)
It is surprising that no one mentioned using multiplication to explain the concept of computational intractability. We state that multiplication is easy since we have the standard textbook fast algorithm for multiplication while the reverse function of finding prime factors is hard since there are no known fast algorithms and the best known algorithm is not significantly faster than exhaustive search.
A good source of problems to get youngsters thinking about theory in CS, and solving the problems themselves, is the "Computer Science Unplugged" http://csunplugged.org/ series. We go to schools and do the activities with children, or they come to Uni to do them with us.
It's been going for years and years, has been translated into many languages---and the articles give info on how to run the sessions, what materials are needed and tips form people who have run them before.
study of the mandelbrot set & fractals via visual/graphical explorations. the simple formula $z \leftarrow z^2 + c$ can be understood by kids who have learned complex numbers or even by kids who havent by replacing it with the formula written with reals only. also another case of complex or emergent phenomena arising from simple equations.