Use the Views module to create a table (list) of all relevant data about your students. Then use the Editable Views module for inline editing. Some more details about this module (from its project page):
Editable Views lets you create Views where the fields can be edited.
Fields show both the current value and a form to edit it. A 'Save'
button allows saving of all the entities shown in the View.
Also, if you're going to display the block view on the user page of each student (ex: /user/10), you need to add (under Advanced) a CONTEXTUAL FILTER of user: uid. Then select default value. Type: User ID from URL.
Use the jEditable inline content editing module. Some more details about this module (from its project page):
The jEditable module provides integration between Drupal's CCK module and the excellent jQuery plugin, jEditable. It is implemented as a CCK formatter, which makes inline editing possible through regular node displays, Panels, Views, or anywhere else you can place a CCK field.
Currently supported features are "click to edit" functions for text fields, number fields, date fields, node reference fields and workflow transitions.
So what is this good for? it provides a very quick and easy way to update the things they need to change without having to edit specific fields without having to switch to the full-blown node editor.
It is with Views integration that jEditable really comes into its own. It allows users to edit many nodes at the same time, e.g. if the same field must be updated for many nodes.
Attention though if you'd go for this option 2: this module only has a DEV version fpr D7 (their is an official version for D6), and its last commit is from 3 years ago. So if I was to decide, I'd only go for option 2 if option 1 wouldn't fit.