😥 Проблема: объектно-ориентированное программирование основано на абстракции — такова плата за простоту высокоуровневых языков, например Python. Абстракции используют, чтобы решать задачу только по важным характеристикам объектов. Несущественные детали при этом не принимают во внимание, то есть абстрагируются от них. Например, для калькулятора обмена валют нужны данные о конвертируемых валютах, актуальном курсе и сумме. А информация о номинале купюр, их количестве и годе выпуска не важна. Многим приходится учиться не только программировать, но и абстрагироваться. Обычно этот процесс эффективнее, если представлять информацию альтернативными способами. Например, в виде комиксов. Но для их создания нужны время и навыки.
😎 Решение: программа CodeToon, которая создаёт комиксы на основе кода.
🤔 Как работает: пользователь пишет код и выбирает для объекта понятный эквивалент, например банан. Программа преобразует код в историю на естественном языке, а затем изображает её в графическом виде. Например, x = 10 она может перевести как «банан стоит 10 центов», а if x == 10: print(“True”) — как «если банан стоит 10 центов, то он дешёвый».
Готовый комикс можно раскрасить и доработать по шаблонам, например добавить персонажа с текстовым пузырём. Программа понимает только код на Python, но идею можно применить к другим языкам, в том числе математическому. Тогда можно будет создавать комиксы на основе уравнений.
🤨 И что? С помощью такой программы многим будет легче осваивать абстракции. А многим наверняка станет интереснее учиться писать код, чтобы получить комикс.
📺 Посмотреть:
🎞 Создать свой комикс из кода: codetoon.uwaterloo.ca
🧑💻 Кто: исследователи Университета Уотерлу, Канада.
Источники: techxplore.com и arxiv.org
У нас есть статьи об объектно-ориентированном программировании:
- 1 часть
Объектно-ориентированное программирование: на пальцах - 2 часть
Что такое классы в объектно-ориентированном программировании - 3 часть
Объясняем объекты - 4 часть
Классы и функции - 5 часть
ООП: атрибуты и методы - 6 часть
Зачем нужны абстракции и интерфейсы - 7 часть
Что такое геттеры и сеттеры в программировании