Я ожидаю, что на практике будет гораздо больше исключений из правил, которые вы предписываете, чем будет соответствующая почта, которая обрабатывается должным образом.Вы купите себе головную боль от ручных исправлений и претензий «компьютер съел мою домашнюю работу».
Поскольку это класс уровня CS 200, потребуйте от них использования некоторой системы контроля версий и избавьте себя от хлопотРазбор электронной почты в свободном формате с жесткой структурой, которую навязывает VCS.Ваши студенты тоже получат выгоду от этого требования.Если мой 10-летний может оценить достоинства автоматического контроля версий в Google Docs, я предполагаю, что ваши ученики могут работать с Mercurial или git или даже (задыхаться!) Subversion.
добавлено в ответ на комментарий
Да, но с Mercurial (и, по-видимому, git) «репозиторий» - это причудливое слово «каталог», а не тяжелая СУБД, что могло бы заставить вас ожидать более старые модели VCS.
Вот как я, будучи студентом, мог бы работать над гипотетическим заданием:
studenta@dorm$ hg clone https://Rich.univ.edu/studenta/cs208
$ cd cs208 ; broswer ./hw1.html
$ mkdir hw1 ; cd hw1 ; make my work files
$ hg add * ; hg commit -m "perfect the first time!" # updates locally only
$ make lots of bug fixes
$ hg commit -m "okay really done now"
$ hg push
# sleep, party, go to class with hangover
$ hg pull
$ browse hw2.html ; mkdir hw2
...
Задания в хранилище ученика, размещенные там, были только для демонстрации.Поскольку вы «владеете» машиной Rich.unix.edu, их действия становятся авторитетными.Вы бы
- Напишите (крошечный) скрипт для
hg init $student/cs208
на Rich.univ.edu для каждого учащегося в списке. - Определите, работает ли HTTPS или SSH лучше всего в вашемокружающая среда
- Добавить комментарий - при желании - к файлам учащегося, которые он соберет при следующем извлечении
- Иметь управляемую, удобную, зарегистрированную запись всех взаимодействий.
- Студенты получают положительный отзыв в момент нажатия, что он был принят
Наконец, если сервер хранилища не работает, они могут
$ hg export tip | mail -s "server down; assignment done" Rich@univ.edu
И вы все равно будете иметьвременная метка, версия их представления, которая имеет жесткий формат, который вы могли бы зафиксировать для них, или, что еще лучше:
"Доктор Рич, сервер не работал !!!"
"Но вы отправили мне экспорт по электронной почте, да? "
" Конечно, сэр.
"Ну, просто нажмите, когда машина вернется, у меня уже есть доказательства того, что вы выполнили ее вовремя."
" Ой, доктор Рич, ты молодец! "