Посмотрите в сторону объектных хранилищь например Minio(совместим с AWS S3). Разверните его у себя на сервере и храните там. Это будет надеждее чем просто хранить в папке как предлогали в сообщениях выше.
Не нужно тут ничего мудрить делай 3 операции и все. Не ориентируйся на количество операций. Смотри на стоимость их выполнения.
При POST запросе первым делом удалять все данные по id студенту/предмету и потом записывать данные с запроса (получается 2 операции).
Представь сколько за год у студента будет оценок и при каждом редактировании их все удалять? А если много пользователей начнут редактировать одновременно? Ждать пока каждый удалит все свои оценки, а потом опять запишет? Имхо дурацкий подход.
Герберт Шилдт - "С++ для начинающих. Шаг за шагом"
ищете на ozon.
Все разбирается как раз для новичка, большое количество примеров и практических заданий.
Как вариант Long-Polling
твое приложение на C# делает HTTP запрос на сервер и сервер не закрывает соединение до тех пор пока не будет данных для отправки на клиент.
Минусы:
связь получается полудуплексная, клиент может только читать но говорить нет.