There is also so much available now online for free. My son took Aops Python in MS, AP (Java based) early in HS but is absolutely thrilled with the selection of MOOCs available through Coursera, Edx and Udacity. Courses he has completed have included, Intro to Programming; Udacity, Intro to Logic;Stanford, Algorithms:Crunching Social Networks; Udacity, Game Theory;Coursera/ Stanford and the University of British Columbia; Intro to Computer Science and Programming MITx; Quantum Mechanics and Quantum Computing; Berkely Edx; and Machine Learning; Coursera/Stanford.

I think he I now doing some Linux Course. There has probably been overlap but each course has held some unique value for him (or he wouldn't take them).

He is so thankful these courses are available to him.