It is important to consider what an 11 to 18-year old is familiar with in terms of **math**ematics and logical thinking. An average 11-year old is probably learning about fractions, simple cartesian geometry, the concept of units, and **math**ematical expressions. By 15, the average student will be taking algebra, and hopefully will have the all-important concept of variables under his/her belt. So much in CS is dependent on solid understanding that symbols and tokens can represent abstract concepts, values, or algorithms. Without it, it's still possible to teach CS, but it must be done in a very different way (see Scratch).