После еще одного домашнего задания вопроса на SO. Кажется, что подавляющее большинство студентов не имеют ни малейшего представления, что такое отладчик или как его использовать. Я чувствую, что знание того, как использовать отладчик, почти так же важно, как и другие основы программирования.
- Вопрос в том, не следует ли отлаживать и как использовать современные средства отладки наряду с основами программирования? Если нет, то почему бы и нет.
education
language-agnostic
debugging
повторный показ
источник
источник
Ответы:
Дело не столько в использовании отладчиков, которым нужно учить, но в более общих приемах отладки . Это, конечно, включает в себя обучение использованию отладчика, а также различные другие важные методы, например,
В качестве дополнительного преимущества многие из методов могут также применяться для решения проблем в других областях, помимо программирования.
По этому предмету есть довольно хорошая книга, которую, вероятно, следует прочитать всем студентам и всем, кто изучает основы программирования: отладка Дэвида Дж. Аганса .
источник
Как вы упомянули, высшие курсы информатики предназначены для обучения студентов основам программирования - эти концепции преподаются студентам в надежде, что они получат необходимые концепции и применят их к более широкому диапазону языков программирования и задач.
Инструменты отладки, с другой стороны, являются подмножеством в области реализации - каждый инструмент отличается для каждого языка (даже если концепции одинаковы). Мы были подвержены инструментам отладки, но никогда не рассматривали их подробно. Если бы мы потратили больше недели на отладку инструментов, я бы оглянулся назад - задним числом - и счел бы это пустой тратой времени. Я бы лучше узнал о нотации BigO или полиморфизме. Однако, если мощь средства отладки не была (успешно) передана студентам, то это будет отсутствовать.
источник
В большинстве вводных курсов по программированию состояние программы достаточно простое, так что вы можете отсеять любые ошибки с помощью нескольких операторов печати. Также может возникнуть проблема принуждения учащихся к выполнению действий вручную, чтобы они могли понять, как и где в коде возникают определенные типы ошибок. Если вы не знаете, где искать, то отладчик будет бесполезен.
источник
grep
делает работу. Нет степпинга, нет условных точек останова - просто grep.Это не так важно. Я почти никогда не пользуюсь им и никогда не пользуюсь. Лучший способ отладки кода:
А для многих современных многопоточных программ отладчики скорее скрывают ошибки, чем обнаруживают их. И их определенно не следует «учить» на уровне степени, так же как никто не научил бы пользоваться текстовым процессором.
источник
Отладку следует преподавать, потому что ученики - люди, а люди совершают всевозможные ошибки, некоторые из которых требуют получения экспериментальных данных (информации об отладке) до того, как произойдет какое-либо понимание данной ошибки.
Отладка не преподается из-за предпосылки (возможно, унаследованной от математического факультета), что программы должны быть правильными по замыслу, возможно, даже доказуемо. И поэтому студенты не должны «экспериментировать» с программированием правильно. Однако это игнорирует реальный производственный процесс несовершенных людей, запускающих программное обеспечение для изменения спецификаций под давлением графика и т. Д.
источник
Этот вопрос для меня чужд. В моем университете использование отладчика (JDB и отладчик Eclipse) преподавалось еще в первом курсе компьютерных наук. Использование отладчиков и других инструментов тестирования было вновь изучено в курсе тестирования программного обеспечения.
Лично мне невероятно трудно поверить, что любая хорошая школа, которая пытается подготовить людей к поступлению на работу, не учит надлежащим методам отладки и тестирования. Они, очевидно, не могут охватить все аспекты этого, но они могут по крайней мере преподавать основы в классе.
источник
Разберись сам
Я не нуждался и не хотел, чтобы профессор или ТА занимали время, обучая меня чему-то, что я мог легко понять самостоятельно. Они здесь для того, чтобы научить меня сложным концепциям и руководить обучением. Их нет и не должно быть там, поэтому вам не нужно RTFM.
Узнайте, как учиться
Колледж должен учиться учиться, а не просто держать руку в руках по каждой теме, которую вы не знаете. Если вы постоянно держите свою руку в этом процессе, вы с треском провалитесь в реальном мире.
В гору, в обе стороны, сквозь снег
Когда я пошел в школу, они также не удосужились научить вас языку. Вы должны были забрать его в свое время. Они дадут вам проект и возможности. Вы должны были отследить информацию, необходимую вам для завершения реализации и представить рабочую программу. Очень похоже на реальный мир, кроме рабочего времени.
источник