Créer une suite de modules pour DotNetNuke n'est pas forcément aussi simple que d'ajouter les tables dans la base de données.
Le premier conseil à te donner est de lire la documentation au développement si c'est bien dans cette voie que tu t'engage. Pour ta question sur le lieu de tes ascx, il s'agit de créer un répertoire au nom de ton module et de faire hériter tes contrôles de PortalModuleBase. Ensuite, la localisation de ton code dépend de la version de DNN que tu utilises (3.X ou 4.X). Ceci dit, il te faudra tout d'abord étudier d'autres modules pour comprendre leur fonctionnement. Tous les modules natifs sont disponibles avec le source et sont un bon début.
Ensuite, concernant ton projet, je te conseille de partir sur l'un des projets existant.
2 projets opensource visent aujourd'hui à développer une plateforme de elearning sur dotnetnuke:
DotNetScorm: http://www.dotnetscorm.com/
Pour celui-ci, le module DNN n'est pas encore dispo
et dnnelearn: http://wdevs.com/Default.aspx?tabid=105 et www.dnnelearn.com
Celui-la est maintenu sous SourceVault, les sources publiées ne sont pas a jour et il te faudra le client SourceVault pour récupérer la version en cours de développement.
Maintenant tout ceci est valable si tu parts sur du développement spécifique. Si tu souhaite simplement afficher des listes de cours, de professeurs etc... alors tu dois pouvoir t'en sortir avec les modules natifs, éventuellement certains modules commerciaux que tu pourra trouver sur www.dotnetnuke.com ou www.snowcovered.com