I often see students at levels varying from really bad to incredibly clever. The students in the middle of the scale fit to curriculum perfectly (as it is meant to be for them). The students at either end of the scale are more difficult to teach.
Yet, it is clear that all students have another field/skill ( often not related to computers) which they are remarkably good in that field. For example one of the students has a musical understanding such as I have never seen (as an example of this, he can create piano adaptions for Green Day songs and says it was "easy").
These skills are neither a hindrance nor do they aid the students, but that doesn't have to be the case.
For the students are not too good in Computer science, their "secondary" skill might be useful for aiding them. I have not been able to think of a good way to use their secondary skills to assist them in learning computer science.
In what ways can these skills can be taken into account when dealing with such students (at either end of the scale)?
(The students are in high school and know only the basics in java, such as primitive types, arrays, loops and