Как использовать инструменты контроля версий, чтобы ученики выполняли задания - PullRequest
8 голосов
/ 13 февраля 2009

В этом семестре я преподаю класс в местном университете. До сих пор я заставлял студентов сдавать свои задания по программированию, отправляя их мне по электронной почте. Но при извлечении 20 решений из электронных писем возникает много хлопот.

Кто-нибудь когда-либо использовал инструмент управления исходным кодом, чтобы студенты включали проекты? Что вы использовали и как это было настроено?

Ответы [ 5 ]

6 голосов
/ 13 февраля 2009

В моем университете в школе компьютерных и информационных наук работает сервер CVS. Каждый предмет (который выбирает его использовать) получает репозиторий, причем каждый учащийся, зачисленный на предмет, получает папку там. Учетные записи администраторов, очевидно, получают доступ ко всей партии, в то время как каждый студент может оформить заказ только в своей собственной папке.

Например, возьмем предмет «Операционные системы» (я преподавал в прошлом):

/cis_os_2009
     |-studentID1
           |-assignment1
           |-assignment2
           |-prac1
     |-studentID2
     |-etc

В спецификациях заданий мы даем инструкции для подачи заданий.

Мне нравится система отправки CVS лучше, чем электронная почта и система веб-отправки, которую используют другие области универа. Он учит студентов, как использовать систему контроля версий. Вы можете почти полностью очистить оправдание «моя флешка была потеряна / сломана / украдена» для студентов, которые не сдают задания, так как студенты должны регулярно делать коммиты в хранилище (по некоторым предметам оценки назначаются для правильного использования CVS).

Недостатком является то, что вы не можете предполагать, что студенты будут знать, как использовать CVS / SVN в начале семестра. Большинство участников здесь посвящают практические занятия по CVS в первую неделю, чтобы люди могли убедиться, что: а) системные администраторы правильно настроили свои учетные записи и б) что они могут правильно добавлять и фиксировать файлы. Это также означает, что вы должны быть немного снисходительны к подаче первого задания.

Все, что вам нужно сделать для маркировки, это проверить хранилище, поскольку оно существовало на дату / время выполнения задания. Если вы запускаете сценарии для частичной автоматизации, пометка хранилища делает это очень просто. Вы точно знаете, какой должна быть структура папок и где должны находиться все файлы. По предметам, которые я преподавал, у нас есть файл оценок с кратким изложением оценок учащихся и комментариями о том, почему оценки были вычтены. Мы проверяем этот файл в репозитории, и студенты могут сразу получить свои оценки, выполнив обновление cvs.

1 голос
/ 11 августа 2010

Не пробовал ни на одном курсе (я не преподаю в эти дни), но я использовал настройку SC, наблюдая за студентами, делающими свой год на работе, с аналогичным эффектом.

Subversion будет моим выбором; CVS глубоко порочен, и у Git есть неприятная кривая обучения для новичка. Мы - магазин Win, поэтому студенты могут использовать TortoiseSVN / AnkhSVN для интеграции с GUI; очевидно, это не может быть правдой в вашем случае.

Я бы создал один репозиторий для каждого курса, с папкой на базовом уровне для каждого студента и обычным механизмом репо внутри него. В SVN очень легко настроить разрешения доступа для каждой папки в конфигурации репозитория, так что ученики могут только r / w к своему собственному каталогу, но вы можете видеть все.

1 голос
/ 21 ноября 2009

Поскольку код Google теперь поддерживает Mercurial, это должно быть несколько выполнимо, используя код Google или http://bitbucket.org для размещения кода с открытым исходным кодом. Я думаю, что это был бы отличный инструмент для изучения, распределенный контроль версий очень важен для облегчения разработки.

Я бы порекомендовал git, но он немного перегружен в отделе обучения.

1 голос
/ 13 февраля 2009

Я думаю, что распространенным способом является создание каталогов для загрузки по FTP. Некоторые задания cron могут проверять отправку и автоматически запускать make, а затем запускать тесты.

Использование контроля источника звучит как большая работа, но это можно сделать.

Когда я слушал подкаст Unergraduate в Berkeley CS для курса, они использовали что-то, называемое «автогрейдером» = скорее всего, внутренняя вещь, которая позволяет отправлять заявки, а затем запускать сборки и тесты.

как насчет здесь:

http://www.users.muohio.edu/helmicmt/autograder/index.php

http://prisms.cs.umass.edu/mcorner/autograder

0 голосов
/ 11 августа 2010

В этом году я попытаюсь использовать Документы Google на своем уроке AP Computer Science. Похоже, это будет работать очень хорошо.

Я заставлю каждого студента зарегистрировать учетную запись Google, а также скопировать и вставить свой исходный код в новый документ Google, убедившись, что он использует моноширинный шрифт. Затем они просто поделятся документом с учетной записью Google, которую я настроил для себя.

Документы Google позволят мне писать комментарии непосредственно в своих документах, которые они смогут увидеть при следующем входе в систему. Я создам отдельную папку для каждого назначения, чтобы упорядочить их.

Не уверен, что это ЛУЧШЕЕ решение, но оно бесплатное, и ПУТЬ лучше, чем когда ученик распечатывает все, как я делал в прошлом году.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...