Обучение детей отладке кода?

Итак, здесь много сообщений о том, какие лучшие способы научить детей программировать. Я заинтересован в следующем шаге, обучая детей тому, как отлаживать код, который не делает то, что он хочет, или не всегда работает в 100% случаев (я считаю, что это отдельные проблемы, но это может быть субъективным).

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

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

  • Какие высококачественные, свободно доступные источники информации существуют в Интернете, которые мы можем отправить начинающим script разработчикам с любым ожиданием, что они получат что-то ценное из этого? Может быть, их нет, и нам нужно написать некоторые?

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

Нашей целевой демографией здесь являются мотивированные дети, в основном 12-15 лет.

Ответы

Ответ 1

Хорошо для части отладки, думаю, было бы три вещи:

  • Избегайте ошибок в первую очередь, обучая их хорошая практика программирования
  • Проверяйте каждую часть, например. unit-testing (Lunit)
  • использовать print() достаточно для просмотра, что произойдет
  • вам может быть интересно debugger.lua или Remdebug
  • Используйте достойный редактор с подсветкой синтаксиса, сопоставлением скобок,...

Общая информация:

То, что я узнал, используя Lua в любом случае:).

Ответ 2

ИМХО: Не обращай внимания на инструменты. Расскажите им об этом. Научите навыки решения проблем. И так же важно научить тестированию.

Ответ 4

Я не знаю о части "источников информации". Для меня это выглядит слишком универсально. Я узнал о крайних случаях с болезненным опытом и не знаю никаких других средств. Я не уверен, что это своего рода знание, которое можно преподавать формально. Это больше похоже на интуитивную вещь для меня. Вид как плавание: для того, чтобы учиться, вы должны промокнуть.

Но в отношении части выплаты-vs-сложности я бы сказал, что ничто не сравнится с доброй старой консолью + печатным дуэтом. Это может быть не так уж и фантастично, как и другие средства отладки, но его сложность асимптотически приближается к 0. И это то, что они смогут использовать практически в любой среде и на любом языке, с которым они сталкиваются в будущем (если не произойдет что-то действительно большое).

Ответ 5

Если у вас iPad, теперь есть приложение, которое позволяет писать программы/игры/симуляции и запускать его прямо со своего iPad. Язык - Lua.

http://twolivesleft.com/Codea/

Ответ 6

Я бы использовал Netbeans после того, как он немного удалил его. В нем есть очень приятная подсказка и понятная проверка ошибок и намеки.

Ответ 7

Дети могут иметь ограниченный доступ к таким инструментам, как отладчики, поскольку человек не может быть зарегистрирован в качестве программиста или (игрового) разработчика программного обеспечения в штате или на национальном уровне. Lua можно запускать в режиме отладки или трассировки, и есть что-то, что можно получить, прочитав программу script или код и используя ручку и бумагу с тестовыми входными значениями, чтобы отметить переменные и их содержимое с помощью логических переходов, отмеченных отдельно ожидание возврата и оценка значений выходных данных, созданных в соответствующих точках. Это иногда называют dryrunning и обычно используется до первого полного испытания в процессе разработки. Это может помочь справиться с иногда сложным логическим прогрессом и с содержимым элемента стека, написанным снизу вверх или слева направо на бумаге.