That's probably one of the simpler use cases the Dataform module is designed for (and it's already developed and available to the community via the plugin repo ... @Howard ).
You can set the activity to Separate Participants to make it individual. You can create a structured entry form with various input field types. You can add grading and feedback fields which the instructor can edit and the student view only and place them next to the content fields. You can create designated grading view for the instructor if needed. You can set the activity grade with a formula to apply different weights to the elements in the submission. And much more.
The docs are incomplete (still waiting for the community to help with that ) but you can find plenty of information, illustrations, presets and Dataform enthusiasts ready to assist in the Dataform forum.
hth