Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 1,006

TRAINING OF STUDENTS PROGRAMMING IN THE PYTHON LANGUAGE IN THE FRAMEWORK OF AN ELECTIVE COURSE IN INFORMATICS

Kochetkova O.A. 1 Pudovkina Yu.N. 1
1 Penza State University
This article discusses the method of teaching pupils to programming in Python using the developed electronic tool for educational purposes. Based on the analysis of the content of the Algorithmization and Programming line in the current educational standard, sample programs and modern computer science and ICT textbooks, it was concluded that the emphasis in schooling on programming languages of high school students is mainly in procedural type languages. The content of learning the basics of programming in elective courses at school should be correlated with modern world trends and achievements in this field of knowledge, and therefore there is a need to study programming with the help of modern languages, one of which is Python. In addition, learning Python programming language in high school improves the quality of student preparation for the exam and olympiads. Thus, there is a need to develop methods of teaching the elective course “Programming in Python”. In order to provide methodological support for the developed course, we developed the PythonLearning e-learning system as the basis on which the learning process for the elective programming course in Python can be built. It allows you to familiarize students with the basics of Python programming on any computer in an intuitive and simple form; choose the level of complexity of the training program, depending on the current level of knowledge of the student; to acquaint students with practical examples and options for the implementation of tasks in the programming language Python; develop programming skills using object-oriented programming principles.
programming training
elective courses
educational electronic tools
python programming language

Одним из наиболее интересных вопросов, требующих особого внимания в процессе изучения предмета «Информатика и ИКТ» в школе, является повышение уровня обучения учащихся программированию. В настоящее время акцент в обучении учащихся языкам программирования в школе все еще сделан на языки процедурного типа (Pascal, Basic). Между тем в последние годы все более популярным становится язык программирования Python, который во всем мире широко используется как для обучения, так и для создания самых разных программ: от текстовых диалогов до серьезных веб-приложений и 3D-игр [1].

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

Таким образом, тема статьи выглядит особо актуально, так как направлена на разработку методики обучения школьников программированию на языке Python с применением разработанного электронного средства учебного назначения (ЭСУН).

Цель исследования. Электронные образовательные ресурсы учебного назначения сегодня являются неотъемлемой частью образовательного процесса и могут использоваться для: достижения целей обучения информатики по ФГОС; помощи учителю при организации уроков, располагающих учащихся с интересом приобретать навыки программирования. Особенно важны новые средства обучения языкам программирования. Целью нашего исследования стала разработка содержания элективного курса «Программирование на языке Python» и создание соответствующего ЭСУН «Python Learning».

Материал и методы исследования. Анализ действующих школьных учебников по информатике различных авторов 9-11 классов показал, что они отдают предпочтение императивной процедурной и объектно-ориентированной парадигме программирования (Pascal, Basic) [6-8]. Также проведен анализ существующих средств разработки систем обучения, рассмотрены их достоинства и недостатки.

Результаты исследования и их обсуждение. На наш взгляд, язык Python лучше традиционных для школы языков программирования и оптимально подходит как для начального обучения программированию, так и для построения профильных курсов. Можно отметить следующие достоинства языка Python [9]:

1. Понятность языка выше, чем у Pascal и Basic. Простые программы записываются в несколько строк, не нужны инструкции, не имеющие непосредственного отношения к алгоритму (например, int main()).

2. Простой и лаконичный синтаксис. Как правило, программа на языке Python записывается короче, чем на C++, Pascal и Basic.

3. Свободная реализация.

4. Современность языка, наличие в нем высокоуровневых структур данных (списки, множества, ассоциативные массивы, длинная арифметика).

5. Наличие средств объектно-ориентированного программирования (ООП).

6. Наличие библиотеки, позволяющей легко разрабатывать графические приложения, web-приложения и т.д.

Разработанный элективный курс «Программирование на языке Pyhton» является предметом по выбору для учащихся 10-11 классов старшей профильной школы. Курс состоит как из теоретического материала, в том числе содержит информацию о базовых понятиях ООП, так и из практических заданий, призванных закрепить полученный теоретический материал и привить навыки программирования. Объем курса 34 часа для начального уровня (первый модуль) и 24 часа для повышенного уровня (второй модуль). Обозначим цели курса: познакомить учащихся с принципами и основами программирования на языке программирования Python; сформировать теоретическую и практическую основу программирования на Python; развить мышление, основанное на компьютерной логике и алгоритмизации. Каждый из уроков включает в себя как теоретический материал, так и практические задания, примеры их выполнения. В теоретической части описывается синтаксис языка, описываются основные элементы и конструкции, рассказывается о том, где они могут быть применены. В практической части курса учащимся даются задания для самостоятельного выполнения с целью закрепления изученного теоретического материала. Курс разбит на два модуля. Первый модуль – изучаются основы языка программирования, типы данных, базовые алгоритмические структуры (следование, ветвление, циклы), структурное программирование. В основу первого модуля положена работа с простыми типами данных, лишь в конце модуля идет знакомство со структурированными типами (изучаются массивы). Второй модуль полностью посвящен изучению функций и ООП.

Теоретическая часть. Первый модуль.

1. Первое знакомство с Python (знакомство с краткой историей языка, с возможностями и сферой его применения).

2. Типы данных в программировании. Определение переменной (типы данных, их использование в зависимости от поставленных задач).

3. Логические выражения (основные операции булевой алгебры, логические операции в Python, особенности их применения).

4. Ввод данных с клавиатуры.

Теоретическая часть. Второй модуль.

1. Знакомство с функциями в Python (определение функций в Python, синтаксис и особенности их применения).

2. ООП на Python (терминология ООП, основные понятия и определения).

3. Наследование в ООП на Python (понятие «наследование» в рамках языка программирования Python, его применение и реализация).

4. Полиморфизм и переопределение методов в ООП на Python (понятие «полиморфизм» и его реализация в Python, переопределение методов).

Практическая часть. Первый модуль.

1. «Hello world!» Первая программа на Python.

Учащимся будет предложено написать программу, используя различный инструментарий (консоль, IDLE).

2. Логические выражения.

На практических примерах учащиеся познакомятся с булевой алгеброй: логическим сложением, умножением, комбинацией различного рода операций.

3. Условный оператор if.

На примерах учащиеся научатся использовать условный оператор if, а также закрепят материал по теме «Логические выражения».

4. Цикл while.

На практическом занятии учащиеся научатся писать циклические алгоритмы и познакомятся с различными вариантами их реализации.

5. Множественное ветвление.

Учащиеся познакомятся с множественным ветвлением и сферой применения оператора if-elsif-else.

6. Ввод данных с клавиатуры.

Приобретение учащимися навыков ввода и вывода данных с клавиатуры.

Практическая часть. Второй модуль.

1. Параметры и аргументы функций. Локальные и глобальные переменные.

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

2. Создание объектов и классов.

После того как учащиеся получат представление о том, что же такое ООП, они смогут применить полученные знания на данном практическом занятии, научившись описывать классы и создавать объекты.

3. Конструкторы класса __init__.

На уроке дается расширенное представление об описании класса, вводится понятие специального метода (конструктора) класса.

4. Композиционный подход в объектно-ориентированном программировании.

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

5. Модули и их импорт.

Практическое обучение учащихся использованию модулей в программах.

6. Строки документации исходного кода на Python.

Учащиеся освоят механизм документирования кода.

7. Перегрузка операторов в ООП.

На практике учащиеся познакомятся с понятием перегрузки операторов и выполнят несколько примеров для закрепления практических навыков использования данного подхода в организации программ.

8. Файловая система.

Практическое закрепление материала по работе с файлами.

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

В состав и структуру разработанного ЭСУН по курсу «Программирование на языке Python» входят следующие компоненты:

1. Обучающий компонент (теоретический материал, подлежащий изучению и структурированный на учебные темы; практический материал, содержащий формулировки заданий и методические рекомендации по их выполнению).

2. Контролирующий компонент (вопросы и задания тестов, разделенные на два уровня сложности: базовый и повышенный).

Остановимся подробнее на разработанном нами ЭСУН «PythonLearning» - программе, которую условно можно разделить на 3 этапа: проектирование программного продукта, подготовка материалов, агрегация материалов в программный продукт [6]. Приложение предназначено для использования в качестве дидактического средства на уроках информатики в общеобразовательных учебных заведениях, в самостоятельной работе учащихся по изучению и повторению материалов курса, а также для дистанционного обучения.

Разработка и отладка программы велась с помощью программы Microsoft Visual Studio, использовался интерфейс пользователя в виде Windows Form. Программа «PythonLearning.exe» является портативной и находится в открытом доступе для учащихся (участники апробации программы элективного курса на базе МБОУ «СОШ № 12 имени В.В. Тарасова» г. Пензы). После запуска программы появится заставка, после которой появляется начальная форма «Main» программы. Данная форма позволят идентифицировать нового пользователя, выбрать желаемый уровень сложности и начать обучение, при этом если пользователь уже существует, обучение продолжится с того урока, на котором он остановился прошлый раз.

Основная работа с уроками осуществляется в форме (рисунок). При этом весь процесс обучения и проверки знаний осуществляется в данной форме. Это реализовано за счет встраивания в Windows Form, API (интерфейс прикладного программирования web-браузера) и реализации каждого урока, как HTML-страниц.

Основная форма работы с уроками

Предусмотрено два типа уроков: с навигацией и без. Для урока с навигацией в верхней части доступно содержание с названиями подразделов, с возможностью быстрого перехода к нужному разделу. Соответственно, если урок без навигации, содержание отсутствует. При переходе к нужному разделу, справа, после названия раздела доступна возможность быстрого возврата к содержанию урока. Для этого требуется нажать на надпись «наверх».

Поурочный просмотр реализован с помощью API web-браузера, внедренного в стандартную форму Windows. Подобного рода реализация дает следующие преимущества:

1. Оптимальный способ реализации постраничной работы в Windows Form.

2. Позволит масштабировать и изменять наполненность уроков.

3. Позволит в дальнейшем внедрить web-реализацию.

Неотъемлемой частью программы является файл базы данных «PythonEducationDB» (таблица «Views», в которой сохраняются ссылки на уроки и производится настройка уроков, с указанием номера урока и уровня сложности обучения, и таблица «Users», предназначенная для фиксирования прогресса каждого из пользователей, с занесением имени, под которым пользователь начал работать, а также результатов тестирования после каждого уровня сложности) формата Microsoft Access. Помимо этого, для работы с файлом базы данных требуется файл настройки «PythonLearning.exe.config», в котором прописывается строка соединения с файлом базы данных. Уроки разработаны на языке гипертекстовой разметки HTML с использованием языка описания внешнего вида документа CSS, реализованного в виде отдельного файла «main.css». Каждый урок – это отдельный html-файл, в котором в заглавной части указана ссылка на css-файл. Главные элементы стиля каждого из уроков – это блоки с теоретической и практической информацией. Блоки с теоретической информацией располагаются слева и могут занимать 60% экрана, в зависимости от объема текста. Помимо этого, в данных блоках могут располагаться блок-схемы и изображения. Блоки с практической информацией, обычно это примеры выполненных элементов кода на языке Python, а также результат выполнения таких элементов располагаются слева. Если структура урока предполагает несколько разделов, то для удобства навигации, после заголовка урока, реализовано содержание с гиперссылками на соответствующий раздел. Для каждого из разделов, также для удобства навигации, реализована возможность вернуться к началу урока, т.е. к содержанию.

Неотъемлемой частью обучения является контроль знаний. Каждый из двух тестов реализован в виде отдельных html-файлов. Алгоритм самого тестирования реализован с помощью скриптового языка JavaScript. Для тестирования по начальному уровню сложности определено 15 вопросов, для повышенного – 13, однако пользователю предлагается ответить на 10 случайно выбранных вопросов. На странице пользователю отображается только один вопрос, после ответа на который он должен нажать кнопку «Ответить», чтобы перейти к следующему.

Таким образом, разработанное ЭСУН «PythonLearning» позволяет:

1. На любом компьютере знакомить учащихся с основами программирования на языке Python в наглядной и простой форме.

2. Выбрать уровень сложности программы обучения в зависимости от текущего уровня знаний ученика.

3. Знакомить учащихся с практическими примерами и вариантами реализации поставленных задач на языке программирования Python.

4. Развить навыки программирования с использованием принципов объектно-ориентированного программирования.

Заключение. Предложенный элективный курс с успехом внедрен в МБОУ «СОШ № 12 имени В.В. Тарасова» г. Пензы для 10-го профильного класса. В конце учебного года среди учащихся была проведена контрольная работа с целью выявления эффективности разработанного ЭСУН «PythonLearning». Проведенная контрольная работа (решение дифференцированных задач с помощью языка Python) показала высокий уровень освоения сформированности знаний, умений и навыков в области программирования.

Таким образом, можно сделать вывод, что разработанный нами элективный курс «Программирование на языке Python» и ЭСУН «PythonLearning» являются эффективным средством изучения программирования в школе.