Организация учебного процесса при изучении дисциплины «Программирование»

Бесплатный доступ

В статье представлена система организации учебного процесса при изучении дисциплины «Программирование» на первом курсе Института математики и информатики (ИМИ) БГУ. При обучении программированию приоритет должен отдаваться применению теоретических знаний на практике, без чего нельзя освоить основные приемы и технологии программирования. Поэтому для контроля уровня знаний и умений студентов используется балльно-рейтинговая система, в которой распределение баллов почти целиком отводится выполнению практических заданий. При организации лабораторных работ предусматриваются занятия для изучения основ алгоритмизации, т. к. разработка алгоритма решения задачи вызывает у студентов наибольшие затруднения. Для проверки выполнения программ на лабораторных занятиях коллективом преподавателей и студентов ИМИ была разработана и апробирована автоматизированная проверяющая система Ejudge.

Еще

Программирование, язык программирования с++, алгоритмизация, язык блок-схем, балльно-рейтинговая система, автоматизированная проверяющая система ejudge

Короткий адрес: https://sciup.org/148182814

IDR: 148182814

Текст научной статьи Организация учебного процесса при изучении дисциплины «Программирование»

Дисциплина «Программирование» предусмотрена федеральным государственным образовательным стандартом по направлению подготовки 02.03.03 «Математическое обеспечение и администрирование информационных систем», 09.03.03 «Прикладная информатика» и 01.03.02 «Прикладная математика и информатика». Дисциплина преподается для студентов указанных специальностей на первом курсе Института математики и информатики и является базовой при изучении дисциплин профессионального цикла.

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

Для контроля уровня знаний и умений студентов используется балльно-рейтинговая система, согласно которой 90 % баллов студент зарабатывает именно за выполнение практических заданий. Сюда входят индивидуальные задания по пройденным темам (текущий контроль); задания, предлагаемые в контрольных работах по блокам тем (промежуточный контроль); задания, предлагаемые на за- чете и экзамене (итоговый контроль).

Распределение количества баллов по видам контроля на примере первого семестра:

Вид контроля

№ темы

Тема

Количество баллов

1. Текущий контроль (разработка алгоритмов и программ

по индивидуальным заданиям)

1

Линейные алгоритмы

2х1 балл = 2 балла

2

Разветвляющиеся алгоритмы

4х1 балл = 4 балла

3

Циклические алгоритмы

6х1 балл = 6 баллов

4

Линейные программы

2х1 балл = 2 балла

5

Разветвляющиеся программы

4х1 балл = 4 балла

6

Циклические программы

6х1 балл = 6 баллов

7

Одномерные массивы

12х1балл = 12 баллов

Макс. кол-во баллов за текущий контроль:

36 баллов

2. Промежуточный контроль (контр. работы)

1

Разветвляющиеся и циклические алгоритмы

12 баллов

2

Разветвляющиеся и циклические программы

12 баллов

Макс. кол-во баллов за промежуточный контроль:

24 балла

3. Итоговый контроль (зачет)

1

Теоретическая часть

10 баллов

2

Практическое задание 1 (Ветвления/ Циклы)

15 баллов

3

Практическое задание 2 (Одномерные массивы)

15 баллов

Макс. кол-во баллов за итоговый контроль:

40 баллов

Всего баллов за 1 семестр:

100 баллов

Лабораторные работы по дисциплине «Программирование» разделяются на два вида: лабораторные работы по алгоритмизации и лабораторные работы по программированию.

Выполнение лабораторной работы по алгоритмизации состоит из следующих этапов:

  • 1.    Постановка задачи: определение исходных данных и результатов решения задачи, их обозначение (если необходимо).

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

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

  • 4.    Тестирование алгоритма: проверка работы алгоритма на заранее подобранных наборах исходных данных (тестах), для которых известен результат либо его легко найти. Количество тестов зависит от структуры алгоритма. Для линейных алгоритмов достаточно 1‒2 теста, для разветвляющегося алгоритма — не менее количества ветвей, чтобы проверить работу каждой ветви, для циклического — тесты должны быть подобраны так, чтобы прогнать цикл несколько раз, а также на случай, когда цикл может не выполниться ни разу.

Лабораторная работа по программированию предусматривает следующие этапы:

  • 1.    Алгоритмизация поставленной задачи.

  • 2.    Программирование задачи по разработанному алгоритму: запись разработанного алгоритма на языке программирования С++. Необходимо продумать, какие заголовочные файлы требуется подключить, сколько переменных и каких типов использовать. Действия и структуры необходимо записать с помощью соответствующих операторов языка.

  • 3.    Отладка, тестирование и прогон программы: поиск и исправление ошибок в программе и проверка работы программы на заранее подобранных тестах. Чаще всего в программе встречаются синтаксические ошибки, т. е. связаны они с нарушением грамматических правил языка. Необходимо внимательно проанализировать строки с ошибками, попробовать понять смысл ошибки (компилятор в этом помогает!), запомнить исправленные ошибки, чтобы больше их не делать. Если компиляция программы успешно пройдена, то можно тестировать программу. Здесь могут встретиться более

  • 4.    Защита программы является завершающим этапом выполнения лабораторной работы. В 2014/15 учебном году силами коллектива преподавателей кафедры информационных технологий Ф. В. Хандаровым и Э. С. Бадмаевой и студентов-выпускников направления «Прикладная информатика» Б. Г. Дашицыреновой и С. С. Нимаевой была сформирована база заданий и адаптирована под учебный процесс автоматизированная проверяющая система Ejudge. Данная система широко используется при проведении олимпиад по программированию. Переработанная система стала служить для проверки выполнения программ, предназначенных для решения задач по большинству изученных тем. До этого года последней инстанцией сдачи задания была демонстрация прогона программы преподавателю на заданных им тестах. С помощью автоматизированной проверяющей системы последний этап организуется следующим образом: программный код посылается на проверку и пытается быть скомпилированным на стороне сервера, то есть должен сформироваться исполняемый файл. Данный файл проверяется на наборе тестов, каждый из которых представляет собой пару входного и выходного файлов. Программа участника последовательно запускается на каждом из имеющихся входных данных и выдает свой выходной файл, который сравнивается с эталонным ответом, входящим в состав тестов. И если все тесты прошли успешно, то система выдает вердикт правильности (в виде OK). Во время выполнения программы система может обнаружить различные ошибки. В этом случае пользователь системы получит информацию о типе ошибки, которую необходимо понять и исправить, после чего надо послать код на проверку еще раз. Только получив одобрение от системы, можно подозвать преподавателя, чтобы ответить на его вопросы по программе и получить рейтинговый балл.

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

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

Список литературы Организация учебного процесса при изучении дисциплины «Программирование»

  • Филинов А. Н. Система автоматического тестирования Ejudge//Информатика и образование. -2012. -№ 9. -С. 63-64
Статья научная