Perché l’AP Computer Science A insegna Java e non Python?

Non è sempre stato in Java.

Aspetta un estratto da Wikipedia:

Dal 2003, l'esame AP Computer Science ha testato gli studenti sulla loro conoscenza dell'informatica attraverso Java. Prima del 1999, l'esame AP testava gli studenti sulla loro conoscenza del Pascal. Dal 1999 al 2003, l'esame ha invece testato gli studenti sulla loro conoscenza di C++. L'esame AP in Computer Science è stato offerto per la prima volta nel 1984.

Non conosco le ragioni esatte del College Board per aver scelto Java, ma mi sembra che periodicamente cambino il linguaggio usato nell'esame per riflettere il linguaggio popolare del giorno. Forse un giorno passeranno a Python, dato che Python sta rapidamente crescendo in popolarità come linguaggio didattico. Certamente ha un certo numero di caratteristiche che lo renderebbero una buona scelta per gli scopi dell'esame (sintassi semplice, strutture di controllo standard, una varietà di tipi di dati, OOP, gestione degli errori, etc.).

Questa è solo speculazione, ma una cosa che potrebbe trattenerli dall'adottare Python è la digitazione dinamica di Python. Tutti i linguaggi usati finora per l'AP CS sono stati tipizzati staticamente, anche se molte università hanno insegnato corsi introduttivi in linguaggi tipizzati dinamicamente per un po' di tempo (dato che hai tirato fuori l'esempio del MIT, vale la pena menzionare che il MIT ha usato Scheme ai tempi). Di nuovo, non posso dire perché, ma è possibile che gli sviluppatori dell'esame ritengano che la prima introduzione alla programmazione di uno studente debba essere insegnata usando un linguaggio staticamente tipizzato. Forse la loro posizione cambierà quando Python diventerà più ampiamente adottato.