I guess the best approach would be creating a different components for student and teacher and attaching them to different pages.
There is also a option to determine in component's methods if the user is a Teacher or a Student, but in my opinion it will complicate the component and whole app too much.
To write such an app as simple as possible, I guess creating views and components for every group is the best approach. Cumulus just determines if a cluster has access to a page, nothing more.
So maybe in future, if you want to create a moderators cluster you just can attach the same modules as Teacher to the moderators cluster so every user in moderators cluster will have the same access as Teacher and more.
Today we are talking to Blaž Oražem, IT engineer and technical director of the Slovenian digital studio Spletna postaja. They started working with October CMS back in 2016 and today October CMS is their primary platform for developing custom solutions for different clients.