Найти в Дзене
Компьютерные науки

Повторное использование ошибочного исходного кода для поддержки начинающих программистов в задачах отладки (8) Обсуждение

8. Обсуждение В этом разделе обсуждаются интерпретации выводов и угрозы их обоснованности. 8.1 интерпретация результатов Что касается гипотез Н01 и Н01, то данные показывают, что обучение студента всегда улучшает его успеваемость. Однако существует существенная разница в точности между студентами обученных с использованием DTE по отношению к EJD. На рисунке 6 показано, как студенты, обученные с помощью EJD, улучшают свои результаты: точность от отметки 1 до отметки 2 сессии меньше, чем у студентов, прошедших обучение с использованием DTE. Глядя на результаты эффективности, мы заметили, что эффективность студентов, обучающихся с помощью DTE значительно улучшается от отметки 1 до отметки 2. Однако здесь нет ничего существенного в разнице между эффективностью в отметке 1 и отметке 2 для студентов, обучающихся с помощью EJD. Результаты подтверждают, что DTE полезен для выделения наиболее перспективных элементов кода, которые должны быть проверены на предмет возможных причин неисправности.

8. Обсуждение

В этом разделе обсуждаются интерпретации выводов и угрозы их обоснованности.

https://image.shutterstock.com/image-photo/developing-programming-coding-technologies-website-260nw-1016500210.jpg
https://image.shutterstock.com/image-photo/developing-programming-coding-technologies-website-260nw-1016500210.jpg

8.1 интерпретация результатов

Что касается гипотез Н01 и Н01, то данные показывают, что обучение студента всегда улучшает его успеваемость. Однако существует существенная разница в точности между студентами обученных с использованием DTE по отношению к EJD. На рисунке 6 показано, как студенты, обученные с помощью EJD, улучшают свои результаты: точность от отметки 1 до отметки 2 сессии меньше, чем у студентов, прошедших обучение с использованием DTE. Глядя на результаты эффективности, мы заметили, что эффективность студентов, обучающихся с помощью DTE значительно улучшается от отметки 1 до отметки 2. Однако здесь нет ничего существенного в разнице между эффективностью в отметке 1 и отметке 2 для студентов, обучающихся с помощью EJD.

Результаты подтверждают, что DTE полезен для выделения наиболее перспективных элементов кода, которые должны быть проверены на предмет возможных причин неисправности. Это позволяет студентам приступить к построению задачи, содержащую основную часть системы, которая включает в себя неисправность.

DTE, действительно, для каждой переменной, подлежащей проверке, дает предложения о возможных путях, ведущих к неисправности. Такие предложения улучшают способность студента во время сеанса отладки: диагностируйте неисправность, интерпретируя ее симптомы и определяя гипотезы о местоположении неисправности. Наши выводы подтверждают, что " наиболее эффективным методом отладки является мысленный анализ информации, связанный с симптомами ошибки [33] (способность” диагностировать неисправность", упомянутая в [30]). Кроме того, DTE способствует генерации и последующей проверке гипотез (способность “генерировать и проверять решения”, упомянутая в [29]), что позволяет студентам сузить набор возможных мест неисправностей.

Результаты также показывают, что DTE эффективен для студентов, позволяя им сократить количество шагов для поиска места неисправности. Это наблюдение также подтверждается анализом журналов студентов, показывающим, что группа DTE находит ошибку с меньшим количеством шагов. Это интересный результат, поскольку хорошо известно, что программисты большую часть своего времени проводят “за чтением и навигацией кода” [27]. Таким образом, DTE, способствуя рассуждению как о “переменных величинах и их взаимосвязи”, так и о “инструкциях и симптомах”, связанных с неисправностью, приносит учащимся двойную пользу. Прежде всего, студенты избегают “попыток решить проблему путем внесения экспериментальных изменений в программу “[33] или, другими словами,” случайного тычка в программное обеспечение, пытающееся определить неисправность по чистой случайности " [42]. Вопреки распространенному мнению, согласно которому отладчики “превосходят отладку printf” [5].

Использование отладки является низкоуровневым, как это было выявлено в исследовании, проведенном Moritz et al. [5], где авторы обнаружили, что “только треть разработчиков когда-либо вызывали отладчик” и что " разработчики проводят удивительно мало времени в отладчике; только 13% от их общего времени разработки в среднем."Во-вторых, рассуждение подталкивает студентов тщательно включать или отключать (то есть переключать) свои точки останов, что является позитивным отношением, как это было продемонстрировано эмпирическим исследованием, проведенным Петрилло и др. [38], где авторы заметили, что “когда разработчики тщательно переключают точки останов, они выполняют задачи быстрее, чем разработчики, которые переключают точки останова слишком быстро. Более того, более широкое и аргументированное использование точек останов особенно актуально для новичков, потому что они “иногда рассматривают отладку как непрозрачный процесс случайного пробования вещей до обнаружения неисправности, метод, более близкий к алхимии, чем к науке” [42].

Результаты также подтверждают, что DTE, не будучи привязанным к небольшим программам, позволяет приобретать "стратегии, которые не являются контекстно-специфичными и могут использоваться независимо от системы", а также создавать опыт, который может быть повторно использован в будущем (т. е. системные знания и предыдущий опыт как определено в [30]). Эти данные также подтверждаются результатами корреляционного анализа неисправностей: неисправность (и связанная с ней система) никак не влияет на прирост производительности, полученный студентами обучения с помощью DTE указывает на то, что знания, полученные в ходе обучения, могут быть применены и могут переносится в другие контексты.

Что касается эффективности (например, гипотезы H02 и H02), то на рис.7 показано, что Группа E обладает большей точностью и эффективностью по отношению к группе Ed (эта разница продемонстрирована как статистически значимая). Однако, хотя разница в точности довольно высока, для эффективности получается меньший размер эффекта. Объяснение этому было найдено в результате анализа дневников студента.

Они показывают, как студенты, использующие DTE, тратят больше времени на чтение отчета по отношению к студентам, использующим JDE (это усилие частично уменьшает преимущество с точки зрения эффективности, полученное в результате принятия DTE).

Что касается cо-факторного анализа, то он приводит к тому, что пол, вина и способность студента не взаимодействуют с основным фактором. В частности, говоря о способностях студента, этот результат подтверждает, что принятие DTE может быть полезным в обучении всех студентов, несмотря на их способности.

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

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