Cod ou coi
Pourquoi dit on : j enseigne aux élèves au lieu de j enseigne les élèves.
Enseigner quelqu’un > Enseigner les élèves est une construction qui a existé, mais qui n’est plus usitée*.
Dans la tournure employée à présent, c’est ce qui est enseigné qui est COD, le destinataire de l’enseignement étant COI : Enseigner quelque chose à quelqu’un.
* Cette tournure existe avec un verbe synonyme toujours usité : instruire > Instruire quelqu’un.
C’est l’usage commun et ancien qui a fixé la construction ce ce verbe. Il est souvent employé d’abord avec un complément direct pour la matière enseignée, ce qui a amené la construction avec une préposition pour les personnes visées : Il enseigne l’anglais (aux étudiants de première année).
C’est une évolution inverse à celle d‘instruire qui fait passer la personne d’abord avec mention éventuelle d’un contenu : Cet auteur instruit la jeunesse (sur les risques de l’usage de drogues).