ИСПОЛЬЗОВАНИЕ СРЕДСТВ АВТОМАТИЧЕСКОЙ ПРОВЕРКИ ПРИ ОБУЧЕНИИ ОСНОВАМ ПРОГРАММИРОВАНИЯ



Автор: Перескокова Ольга Ивановна, кандидат технических наук
ФГБОУ ВПО "Пермский государственный национальный исследовательский университет"
Обучение основам программирования закладывает фундамент, от прочности которого зависит успешность целого ряда дисциплин, связанных в программированием, в будущем. Очень важно выработать у студентов устойчивые навыки работы с базовыми алгоритмическими конструкциями и структурами данных. Ограниченность времени практических занятий, всего один преподаватель для множества студентов и, наконец, сокра
<p>
    <br />
        <br />
    <br />
            Обучение основам программирования закладывает фундамент, от прочности которого зависит успешность целого ряда дисциплин, связанных в программированием, в будущем.  Очень важно выработать у студентов устойчивые навыки работы с базовыми алгоритмическими конструкциями и структурами данных.  Ограниченность времени практических занятий, всего один преподаватель для множества студентов и, наконец, сокращение аудиторных часов при оптимизации учебных планов – вот те проблемы, с которыми приходится сталкиваться большинству преподавателей. При обучении программированию важна так же своевременная обратная связь. В задачах по программированию нет единственно верного ответа и выявить недостатки программы можно  только путем тщательного тестирования. Поэтому средства автоматического тестирования программы являются первыми помощниками преподавателя программирования.</p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
            Использование средств автоматической проверки правильности программ позволяет: </p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
            1)      освободить преподавателя от рутинной работы по тестированию программ и сконцентрироваться на качестве создаваемого программного кода;</p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
            2)      увеличить число заданий, выполняемых студентами за одно занятие;</p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
            3)      эффективно организовать  самостоятельную работу студентов;</p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
            4)      существенно снизить субъективную составляющую при формировании оценки.</p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
            Переход на такой, более технологичный подход в обучении, несомненно, требует дополнительных усилий со стороны преподавателей при подготовке к занятиям.  Но результат оправдывает средства.</p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
            На сегодняшний день для автоматической проверки нами активно используются возможности электронного задачника ProgrammingTaskbook (<a a="" class="txttohtmllink" href="http://ptaskbook.com">http://ptaskbook.com</a>).  Несмотря на то, что авторами задачника представлен обширный банк заданий, мы используем возможности самостоятельной разработки новых заданий. В этом случае преподаватель прописывает текст задания, алгоритм его решения и алгоритмы генерации тестовых данных как программу на языке программирования. Так  можно создавать наборы заданий, адаптированные под уровень студентов, по тем темам, которые отсутствуют в «стандартном» задачнике, делать многовариантные однотипные задания, и, наконец, не покупать лицензии на использование задачника.</p>
<br />
<br />
<br />
<p>
    <br />
        <br />
    <br />
              Но мы рекомендуем использовать задачник ProgrammingTaskbook лишь на начальном этапе обучения, т. к. у него есть один существенный недостаток:  он не умеет скрывать тестовые данные, на которых тестировалась программа. Поэтому остается возможность «подогнать решение под ответ» и секреты технологий тестирования рискуют остаться так и не изученными студентами. Наиболее адекватным решением данной проблемы является использование тестирующих систем, широко распространенных в среде «спортивного (олимпиадного) программирования». При работе в таких системах тестовые данные, обрушившие решение, остаются скрытыми от пользователя, поэтому решение задач всегда содержит некую головоломку, загадку. Долгий и порой мучительный поиск ошибок в своей собственной программе часто бывает более полезен для совершенствования квалификации программиста.   </p>
Тип выступления  Стендовый доклад
Уровень образования  Высшее профессиональное