LearnDash is the most popular LMS (learning management system) plugin for WordPress: multi-level courses; Sell courses; Certificates and points; Extended survey; Expire Access; Job management; Dynamic forums; Lesson timers; Flexible prerequisites; User profiles;
LearnDash comes with more than a few levels that make it easy to create courses, lessons, topics, quizzes and categories. It has a progressive playback functionality so you can program course content for the duration of the entire course.
You can assign users and then approve or comment on them. It also comes with a quiz and testing manager tool with multiple questions. You can easily define the prerequisites so that each student can move on to the next class.
There are several payment gateways available to accept payments from PayPal, Stripes, 2Checkout, etc. It also fits nicely with bbPress.