IDE для вивчення Python (Микола Попов, OSEDUCONF-2015)
Мова Python дедалі глибше проникає в українську систему освіти. З 2015 року до контрольно-вимірювальних матеріалів ЄДІ включено приклади програм на Python'і, а на факультеті комп'ютерних наук НДУ ВШЕ саме ця мова є першою мовою програмування, що вивчається. При вивченні програмування мовою Python, як втім, і будь-якою іншою мовою програмування, важливим завданням є забезпечення учня (студента) відповідним середовищем розробки (IDE). Навчальна IDE повинна, з одного боку, надавати всю необхідну функціональність, яка буде потрібна при вирішенні навчальних завдань, і водночас бути максимально простою, оскільки є лише інструментом, а не суб'єктом вивчення. Зважаючи на відсутність (на момент початку проекту) подібної IDE для мови програмування Python, ми почали її створювати на платформі Кумир-2. Цільовою аудиторією Кумир-Python є старші класи школи та вищі навчальні заклади.
Передумови розробки
З іншого боку, існують повноцінні IDE, наприклад PyCharm, створена на базі IntelliJ IDEA, яка має всю необхідну функціональність.
Використання подібних середовищ розробки виправдано у виробничих цілях, але для навчальних завдань їх можливості не просто надмірні, а й створюють суттєві незручності, такі як необхідність освоєння середовища, або створення та налаштування проекту перед тим, як написати навіть найпростішу програму.
Існують також спеціалізовані системи, розроблені спеціально для освітніх цілей.
Ми вирішили використовувати напрацювання та вихідний код [1] системи Кумир для створення навчальної IDE для мови Python 3.x.
Інтеграція інтерпретатора
З іншого боку, використання такого підходу накладає низку обмежень наможливість використання деяких сторонніх бібліотек. Наприклад, неможливе використання бібліотеки PyQt (PySide) у програмах, які запускаються з IDE, а також з'являється ризик падіння системи при використанні сторонніх модулів Python, реалізованих на C/C++. Ми вважаємо, що для навчальних завдань ці обмеження не суттєві, оскільки як використання Qt, так і написання C/C++ модулів для Python передбачає більш високу кваліфікацію, ніж та, на яку орієнтоване початкове навчання.
Зазначимо, що окремий екземпляр інтерпретатора, що називається «Пісочниця» (від англ. Sandbox), доступний для використання як калькулятор, або швидкої перевірки конструкцій мови, без написання програм.
Перевірка програм під час редагування
Мова Python є динамічною мовою програмування, тому семантичний та синтаксичний аналіз програм для цієї мови утруднений. Тим не менш, значну частину помилок у програмі (але не всі помилки) можна знайти за допомогою спеціалізованих аналізаторів коду.
Для перевірки програм ми використовуємо впорядкований за пріоритетами набір різних аналізаторів:
- 1. Аналізатор помилок PyLint.
- 2. Аналізатор помилок PyFlakes.
- 3. Аналізатора стилю коду PEP-8, використання якого є опціональним (пункт у налаштуваннях), оскільки висновок результатів його роботи може злякати будь-якого непідготовленого користувача. Але в деяких випадках його використання може бути обов'язковою формальною вимогою.
- 4. Передбачається реалізація додаткового аналізатора, який перевірятиме сумісність типів величин у обчислюваних виразах та аргументах функцій. Крім виявлення помилок, результати роботи цього аналізатора необхідні реалізаціїсемантичного автодоповнення коду.
Якщо кілька аналізаторів знайшли помилку, що відноситься до одного й того ж ділянці коду, то приймається та з них, яка знайдена аналізатором з вищим пріоритетом. Експериментально було встановлено, що найбільш адекватну діагностику видає аналізатор PyLint, тому має найвищий пріоритет.
Додаткові можливості
Система Кумир-Python успадковує важливі організації процесу навчання можливості системи Кумир. Виділимо дві такі можливості.
По-перше, можливе використання графічних виконавців системи Кумир у шкільному курсі інформатики як звичайних Python-модулів.
Єдина відмінність від системи програмування Кумир — це використання англомовних імен модулів та функцій. В даний час реалізовані виконавці Робот (модуль robot) та Малювальник (модуль painter), робота з якими описана у шкільних підручниках [4]
В даний час система Кумир-Python дозволяє редагувати і виконувати програми, використовувати покроковий налагоджувач і «виконавці» системи Кумир, що входять до поставки.
Повідомлення аналізаторів, що використовуються, про помилки в програмах, що редагуються, відображаються на поля, але поки що тільки початковою (англійською) мовою. Надалі передбачається виконати як переклад цих повідомлень українською мовою, так і уточнити їх класифікацію щодо того, які з повідомлень є справді помилками, а які — попередження про потенційні помилки.
Незавершеними на даний момент залишаються частини синтаксичного аналізатора, які виконують підсвічування синтаксису, побудова списку імен для семантичного автодоповнення та перевірку сумісності типів величин.
Вихідні тексти доступні в git-гілці python репозиторіюрозробка системи Кумир. У комплект поставки входить приклад реалізації курсу мови Python.
Досвідчену експлуатацію середовища передбачається розпочати у 2015–2016 навчальному році. Цільовою аудиторією Кумир-Python є старші класи школи.
Зважаючи на появу вільно доступних редакцій PyCharm, доцільність використання Кумир-Python у вищих навчальних закладах залишається під питанням, відповідь на яку може бути отримана за результатами дослідної експлуатації.
">