Можно ли попросить профессора проверить назначение перед отправкой?

У меня есть задания, связанные с программированием. Они жесткие,
и мои друзья не могут получить результаты. Я хотел попросить моего
профессора запустить их, чтобы проверить, правильно ли я сделал
это. (предельный срок быстро приближается). Я аспирант. Это мой
первый срок.

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

Если вы в замешательстве, вы можете задать уточняющие вопросы о
том, что задает домашняя работа (например, желаемое поведение в
угловых случаях, форматирование вывода, обработка ошибок, другие
ограничения и что-то еще, что кажется неоднозначным) и о базовом
материале (например, алгоритме обсуждается в лекции, которую вы
должны применить), но не о правильном ответе, или ваш ответ в
порядке. Некоторые преподаватели (например, я) помогут студенту
отлаживать, но обычно только помогают вам изучить навыки. Обычно
они не будут отлаживать вашу программу для вас.



Как правильно указывает Николь, инструкторы
**most** не смогут или не желают готовить домашнее
задание, но некоторые могут. Поэтому, если вы решительно настроены
на это, вы можете спросить.

Тем не менее, вероятно, более полезно спросить один или
несколько целенаправленных вопросов о том, о чем вы не уверены.
Обратите внимание, что «пожалуйста, запустите мою программу и
скажите мне, работает ли она» *не* заданный вопрос, а также
«вот мой код, я получу все очки для этого». Целевой вопрос может
включать краткое изложение вашего подхода и тех частей, о которых
вы не уверены, и спрашиваете, находитесь ли вы на правильном пути.
Я полагаю, что большинство инструкторов будут более чем готовы дать
вам отзывы об этом.

Как правило: если вопрос будет закрыт на Stack Exchange (в
частности, если он будет закрыт как недостаток предшествующих
исследований или будет слишком локализован), есть хорошие шансы,
что преподаватель также не будет этому рад. Кстати, это одна из
основных причин, по которой я решительно поддерживаю своих
учеников, работающих на Stack Exchange, - они обучают их тому, как
продуктивно просить отзывы лучше, чем любой другой способ, о
котором я знаю.



Есть два случая, чтобы рассмотреть:

1. Вы не понимаете, что должна делать программа. В этом случае
уместно спросить профессора вопросы формы «Что должно произойти в
этом случае?» или аналогичный.
2. Вы понимаете, что должна делать программа. То, как вы убедитесь,
что вы делаете это правильно, - это комбинация проверки и
тестирования на столе. Помните о модульных тестах нетривиальных
модулей, а также тестировании всей программы.

Тестирование является частью работы по программированию. Не
стоит ожидать, что ваш профессор сделает это за вас.



Зависит от профессора. Моя политика всегда была примерно
такой:

* Вы хотите, чтобы я прочитал вашу статью, прокомментировал ее,
выделил все места, которые она могла бы укрепить, и по существу
оценила ее - ПЕРЕД Я действительно оцениваю ее?
* (Обычно, когда студенты получают такую бумагу, они ожидают,
что они получат A на указанной бумаге. Как правило, они не будут,
потому что, вероятно, все еще есть недостаток или таковой в бумаге.
переписать документ, но оценить, что передо мной, и указать на
самые большие проблемы. Эти проблемы редко являются лишь
техническими исправлениями, хотя студенты рассматривают их как
таковые.)

Мой ответ был «нет». Сортировка один раз достаточно плоха.
Сортировка дважды более мучительна и несправедлива по отношению к
другим ученикам класса, которые не получили двойную оценку.



Я был в вашей ситуации осенью. Я обнаружил, что если бы я пошел
к моему профессору на ранней стадии задания с очень конкретными
вопросами, они, как правило, более чем рады предложить некоторые
рекомендации. Они не «предварительно оценили», но попытались бы
указать мне в правильном направлении. Такие вопросы, как «почему
это не работает», не подходят, но более заданный вопрос, например
«Я сделал x, y и z. Я борюсь с этой частью. Я пробовал эти методы,
и это результаты I Я знаю, что это неверно, потому что ... У вас
есть предложения или какие-то места, чтобы найти какое-то
руководство? Я просмотрел материалы класса, но до сих пор не смог
найти удачных решений ». Это демонстрирует профессору, что вы
сделали несколько действительных попыток, показывая, что вы можете
понять, почему ваши попытки решения проблем не увенчались успехом.
Если вы сформулируете это так, чтобы было ясно, что вы исчерпали
все ресурсы, не откладывайте на последнюю минуту и не просите их
дать вам ответ, вы, скорее всего, получите какую-то форму помощи.
Если вы и ваши одноклассники обсудили это задание и по-прежнему не
можете прийти к каким-либо решениям, так как много людей обращаются
к профессору, это всегда полезно. Затем профессор может видеть, что
либо они должны предлагать более четкие инструкции, либо проводить
больше времени в определенных областях.



Обычно я придерживаюсь противоположного подхода к большинству
ответов. Когда я настраиваю присвоения (обычно в Blackboard), я
устанавливаю количество разрешенных представлений (обычно до трех).
Я также даю студентам обязательство, что я попытаюсь отметить любые
ранние материалы, как только смогу, с учетом моих других
ограничений работы.

Мое мнение таково:

* From the students' viewpoint:

	+ They get time-bound specific feedback on their work.
	+ If they really screwed up, they don't get penalized from a
	one-off mistake. Several of my students do not have English as
	their first language, so miscommunications do happen.
	+ They have a good chance at getting 100% on all such submitted
	work.
* From my viewpoint:

	+ I get a larger time period to mark the assignments, because
	students don't wait until the last minute to submit.
	+ I get to identify problems a little earlier and address them
	with the whole class before the due date.
	+ Marking updates to assignments takes way less time than the
	initial marking, so the extra time is not of huge
	significance.
	+ I see re-doing the assignment as a form of repetition on the
	material, which I believe is good for their learning outcomes.

Моя общая цель - научить студентов изучать материал. Принуждение
к представлению «одного выстрела» может быть контрпродуктивным для
этой цели.

Обратите внимание, что это предназначено специально для
краткосрочных заданий и викторин. В среднем и финале не получаются
ранние представления или повторные передачи.



Вы не говорите здесь, и это усложняет ситуацию, но в другом
месте на сайте вы указываете, что ваше поле - это ИИ и, в
частности, машинное обучение. Если этот курс, действительно, о
механическом обучении, я могу понять состояние, в котором вы
находитесь.

Любой студент, у которого есть степень бакалавра, должен иметь
возможность писать практически любую программу *на языке,
который они уже знают* . Каждый такой студент также должен быть
знаком с общими методиками, такими как модульное тестирование.
Однако, возможно, ваш фон несколько отличается, что затрудняет
принятие этого знания.

Поскольку вы говорите, что ваши одноклассники находятся в
аналогичном состоянии, я должен догадаться, что есть что-то
принципиально *new* об этом всем.

Если ваша «программа» находится на новом языке, и предметом
является машинное обучение, в котором «доказательством» успеха
обучения является нечто принципиально отличное от, скажем,
реализации стандартного алгоритма с четко определенным начальным и
конечным состоянием, тогда я также может понять трудность.

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

Если я неверно истолковал, я извиняюсь, но было бы хорошо, если
бы в ваших вопросах или в вашем профиле было бы немного больше
информации о вашей реальной ситуации.

И примечание для всех здесь. Если я сделал правильные
предположения, обратите внимание, что AI/MachineLearning немного
отличается от других тем CS, в то время как состояние ввода может
быть точно задано, конечное состояние может быть не во многих
случаях. Фактически [DARPA](https://www.engadget.com/2018/07/23/darpa-third-wave-ai-support/) только что начал программы для
создания ИИ, которые могли бы фактически объяснить их выход. Это
новая вещь, по сути, и одна из традиционных трудностей в ИИ. Они
могут прийти к «выводу», но не могут сказать, почему.

---

Позвольте мне добавить немного о языках. Если вы программист на
Java, скажем, вы должны иметь возможность написать компетентную
программу на Python только с небольшим количеством подтасовки и
практики. Однако, если новый язык - Scheme или Haskell, или
специально разработанный язык, то кривая обучения довольно крута,
поскольку они исходят из совершенно разных парадигм. Для разных
парадигм нужны разные мыслительные процессы, а не просто разные
синтаксисы.



Единственный способ быть уверенным - отправить своего профессора
по электронной почте. Мое предположение подтвердило бы то, что вам
говорили другие ответы.

Удостовериться, что вы полностью понимаете назначение, также
является хорошей идеей (что означает, что это присвоение
выглядит/работает, как если оно сделано правильно?), Но также
спросите своего профессора о том, где получить помощь. Вероятно, он
знает, что это непросто. Профессор, вероятно, объяснит, насколько
он или она хочет помочь, и, возможно, есть список репетиторов или
ресурсов, где вы на самом деле *можете* получить конкретную
помощь.

Еще одно замечание: будьте предельно осторожны в получении
помощи по кодированию (вот почему это хорошая идея спросить у проф,
где получить помощь). Будьте предельно ясны в отношении того, что
ваш профессор считает плагиатом. Просить друзей об их коде, который
работал и копировал его, может вызвать у вас большие
неприятности.



Ваш профессор (или любой из их ТП) имеет открытые рабочие часы?
Я предполагаю, что если вы войдете, покажите им программу и скажите
им, что вы смущены тем, что она работает по назначению, они были бы
более чем рады помочь.