Python and minecraft

Как говорил Остап Бендер: “Автомобиль это не роскошь, а средство передвижения”. Сейчас это можно говорить о владении языками программирования и разработке роботов.

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

И в основном приветствуются знания языков программирования высокого уровня: C++, C#, python, java, go, visual basic, java script и многие другие.
Данные языки являются текстовыми. В основном к ним переходят только к 8 классу – это примерно 14 лет.

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

Кого учить?

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

В результате, отпадает сам собой вопрос “кого учить?”. Изучить языки программирования может каждый в независимости от того, какой у него склад ума – “гуманитарий” или “аналитический”. Изучение языков программирования тренирует участки мозга как левого, так и правого полушария.

Если первая проблема – “Кого учить?” решена, то вопрос “как учить?” и “когда учить?” актуален как всегда.

Я выбираю python

Проблем – пропасть. Все мы знаем, что для детей с 6 лет вводятся такие темы как “алгоритмизация” и “робототехника”, где ребята учатся создавать программы с помощью пиктограмм. Сначала это происходит с помощью бумажных элементов, а затем постепенно переносится на компьютер, где в специальных компьютерных средах дети создают программы, используя те же пиктограммы. Такой “графико-визуальный” язык программирования преследует детей в основном до 11 класса, этому способствует и сама робототехника, а именно – программа обучения.

По статистике 70% робототехнических наборов занимает lego (wedo, ev3, nxt) – это огромная цифра. Вся родная среда программирования – это работа с иконками-пиктограммами, правда для продвинутого уровня есть возможность использовать более сложную математику и есть уже момент знакомства с понятием класса и функции.

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

Я поставил цель “смягчить” переход между графико-визуальным языком программирования и текстовым и уже на возрастном этапе – 11-12 лет, давать основные виды алгоритмов для решения определённых задач.
Таким “мостиком” стал язык программирования python и среда minecraft.

Язык программирования python на начальном этапе – очень понятный и лёгкий, что позволяет понизить порог вхождения в изучение языков программирования. Мне, как преподавателю, данный язык нравится своей чёткой строгой структурой написания кода. Тут необходимо строго соблюдать положение строк кода, так как это характеристика зависимости элементов кода между собой.

Minecraft

На сегодняшний день minecraft прочно связался с образованием. Появилась отдельное приложение и одноимённое сообщество minecraft education. Про них в этой статье я не буду писать, но данное направление имеет место быть для решения ряда образовательных задач.

Для изучения языков программирования python и java было разработано ещё одно приложение minecraft pi.
Эта среда в первую очередь разрабатывалась для микрокомпьютеров семейства raspberry pi. Данный minecraft устанавливается по умолчанию с операционной средой для микрокомпьютера и является бесплатным приложением.

Есть специальная локализация для windows и ios.

Для того, чтобы код на python мог интегрироваться в среду minecraft, используются различные локальные сервера. Их множество. 
Один из них это Bukkit

Подключившись к локальному серверу, мы можем создавать программы на python и интегрировать их в среду minecraft.

Особенности программирования на python для minecraft

Главная специфика разработки программ для визуализации своего результата в minecraft опирается на пространство координат.
Так как это 3d игра, то все объекты имеют 3 координаты X, Y, Z
И это кладезь в области визуализации:
1. графиков математических функций, как двухмерных, так и трёхмерных.

2. построение фигур стереометрии и планиметрии.

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

  1. практическая реализация построения фигур с использованием декартовой, полярной и сферической системы координат

2. построение фигур с использованием тригонометрии

3. практическое закрепление понятий, что же такое вектор, матрица (массив), список, логика предикатов.

4. почему используются радианы, а не градусы.

5. зачем нужны трансцендентные и комплексные числа
И конечно же, это наглядная демонстрация тех или иных алгоритмов.

Всё это возможно применить и реализовать в среде minecraft с использованием языка python.

Вторая особенность работы в minecraft – это то, что каждый объект состоит из кубиков одинакового размера. Кубик можно воспринимать как пиксель (точка функции). Для примера, представлены некоторые скриншоты применения математики в minecraft.

Пример 1. Парабола

Данная парабола была построены с использованием всем известной формулы y =x^2, но с некоторыми поправками.
А именно масштаб и построение.

Пример 2 График функции sin() через радианы

Пример 3 График функции sin () c использованием напрямую с координаты
Как видим, данные показатели градусов были восприняты алгоритмом, как радианы и это наложило отпечаток на построение. Получились затухающие колебания sin И cos()

Пример 4. Винтовая линия

Такая же особенность прослеживается, если строить винтовую линию.

Все эти примеры показывают влияние математики на мир.
Напоследок приведу пример применения цикла и условия для создания своего мира- улицы города
1:57

В данном направлении идёт плотная работа по разработки методики обучения.
Она поможет любому человеку изучить основы python с использованием данной игры. Удачного программирования.