Навчання школярів основ програмування за допомогою середовища Minecraft


Для сучасної молоді все більш актуальним стає вивчення мов програмування для подальшого працевлаштування або як хобі. Тому дуже важливо розвивати інтерес дітей до цієї галузі. Це можна робити за допомогою ігор.

При вивченні базових принципів програмування можна використовувати онлайн-тренажери або ігри, наприклад Scratch, CodeMonkey, Tynker, Kodu або Codecombat. Але підліткам важливо поєднувати ігрові технології з навчанням. З цією метою у нагоді стане середовище Minecraft, яке на даний час має потужну освітню компоненту і надає різні можливості для впровадження у навчальний процес.

Minecraft - це гра жанру «пісочниця», де немає сюжетної лінії, але є нескінченний світ, в якому можна творити - створювати, будувати, взаємодіяти з іншими гравцями. Зараз Minecraft це не тільки гра, але й освітня платформа, яку використовують більше ніж в 1000 шкіл по всьому світу: в США, Фінляндії, Швеції, Австралії тощо. Школярі у цьому середовищі досліджують кораблі, пишуть твори, здійснюють вимірювання, вивчають тривимірну систему координат, будують моделі атомів та молекул, знайомляться з джерелами енергії тощо. Завдяки своїй гнучкості гра легко підлаштовується під різні дисципліни.

Гармонійне поєднання ігрових та навчальних технологій дає змогу учням сприймати складний навчальний матеріал у ігровій формі, що більш цікаво та комфортно для них. Але наразі бракує методичних розробок з навчання програмуванню, які би враховували інтереси школярів та були доступними для сприйняття. Отже, на наш погляд, розробка практичних завдань з навчання мови Python у середовищі Minecraft є цілком доречною і актуальною на даний час.

Тривимірний Всесвіт Minecraft

Перша версія вийшла у 2008 році. Гравці можуть створювати і руйнувати різні об’єкти в тривимірному навколишньому середовищі, використовуючи готові блоки. Minecraft - це світ кубів або блоків, відносний розмір яких становить 1м х 1м х 1м, і кожен блок має позицію у світі x, y, z; де x і z - горизонтальні положення, а y - вертикаль.

Python та Minecraft Pi Edition

У 2013 році вийшла версія Minecraft для Raspberry Pi, яка була створена разом з бібліотекою Python. Вбудований в гру API дозволяє взаємодіяти з ігровим світом, тим самим навчаючи програмування. API складається з трьох стандартних окремих бібліотек, всі вони призначені для різної взаємодії з ігровим клієнтом.

Клас Minecraft - це основний клас для взаємодії з грою, який містить чотири підкласи: Camera, Entity, Events, Player.

Бібліотека працює, змінюючи сервер, який в свою чергу працює понад грою, дозволяючи взаємодіяти з блоками та гравцем, наприклад:

  • Розміщування повідомлення в грі
  • Отримування позицію гравця
  • Зміна позиції гравця
  • Отримування типу блоку
  • Зміна блоку, або встановлення

Приклад написання коду відправки текстового повідомлення «Hello, World!» в гру:

import mcpi.minecraft as minecraft

mc = minecraft.Minecraft.create()
mc.postToChat("Hello, World!")

Додаткові бібліотеки: minecraftstuff та Черепашка

Оскільки мова програмування Python дуже гнучка, і гра Minecraft має відкрите з’єднання, було створено ще багато додаткових бібліотек для спрощення деяких операцій, або навпаки, для більш функціонального програмування.

Бібліотека minecraftstuff - стороння бібліотека для взаємодії з грою. Вона забезпечує функції для малювання ліній, створення, переміщення та обертання фігур та модуль черепахи. Minecraft Turtle - це відтворення класичної графічної черепахи Python, але вже для Minecraft. Ключова відмінність полягає в тому, що ви можете малювати в трьох вимірах, а не лише в двох.

Побудова пружини в грі. Зміна аргументу команди turtle.up дозволяє змінювати кут нахилу черепахи:

from mcpi.minecraft import Minecraft
from mcpi import block
from minecraftstuff import MinecraftTurtle

mc = Minecraft.create()
pos = mc.player.getPos()
turtle = MinecraftTurtle(mc, pos)

turtle.penblock(block.WOOL.id, 11)
turtle.speed(10)
turtle.up(5)

for step in range(0, 1000):
   turtle.forward(2)
   turtle.right(10)

Висновок

Використання сучасних технологій у навчальному процесі дозволяє підтримувати високий рівень мотивації учнів, запропонувати учням велику кількість готових, старанно відібраних, відповідним чином організованих знань, розвивати інтелектуальні, творчі здібності учнів і сприяти розвитку комунікативних аспектів, навичок самостійного створення програм.