Hi,
This is fairly simple, I can create the plugin with teacher/student/course custom post types. A teacher may be assigned to one or more courses, a student may be assigned to one or more courses (by dashboard or front end form).
As long as the teachers and students are logged into the wordpress site, then this will all work easily, however if they are not going to be logged in, then it is more difficult.
Kind regards,
Chris