Scheme or Racket (failing that, Common Lisp). Functional languages are the best teaching languages for more advanced students. They eliminate many of the common hurdles of order of operations, keeping track of counters, control flow, and mutable variables, and they introduce important concepts in computer science and metaprogramming that are much harder to grasp in other languages. And, of course, after a few weeks you can have them writing their own interpreters 
Second language should be C. Third, Python or Smalltalk. The worst commonly used teaching language is Java. Stay away like the plague.
Second language should be C. Third, Python or Smalltalk. The worst commonly used teaching language is Java. Stay away like the plague.
Upvote
0