All streams
Search
Write a publication
Pull to refresh
2
0

User

Send message
По поводу визуального программирования.

Имею отрицательный опыт написания больших программ в таком стиле.
Для себя понял, что начиная с некоторого объёма, перестаю воспринимать программу.
При этом текстом воспринимается намного бОльший объём. Возможно это лично моё ограничение.
Сам преподаю программирование в школе. Имею набитые болячки и натёртые мозоли.

Хотел ответить кратко, но это уже лонгрид. Может кому будет интересно.

Самая важная мысль: определитесь, вы хотите чему-то научить или заинтересовать? От ответа на этот вопрос зависит … всё! Это две совершенно разные цели с совершенно разными дорогами и сложностями.

Вы в статье часто употребляете слово «обучение», я исходил из этого.

Общие мысли.
Вы хотите за очень короткое время научить чему-то осознанному – это довольно трудная задача, причём здесь есть как минимум 3 больших подводных камня:
1) Вы пишете «дети 10-15 лет» — как раз в этом месте ОЧЕНЬ большая разница между детьми: и в восприятии материала, и в понимании, и в самостоятельности и тд.тп. (причём, это никак не исключает частного случая, что кто-то в 10 мыслит лучше, чем другой в 15. – но тогда нужен отбор или нечто подобное. Вести разноуровневую группу ещё более сложно.)

2) Цели и мотивация. Зачем они пришли к вам?
Опыт из жизни: однажды на кружок робототехники привели мальчика со словами «он бредит роботами, вы должны его взять». Взял. Действительно бредит. Рисует очень детальные красивейшие рисунки всевозможных роботов. Ни одной инженерной задачи в кружке не решил, но ходил долго и упорно.

Вывод: они все приходят с разными целями, и эти цели, зачастую, весьма далеки от вашей. Сейчас практически у всех детей цель — это хайп: я хочу быстрый и красивый результат. Заметьте, это сильно отличается от слов «я хочу уметь сделать быстрый и красивый результат». Встречаются дети, которые в чём-то хотят разобраться, а не просто «сделал и забыл», но это большая редкость. Это «хочу уметь сделать» появляется позже в более осознанном возрасте. (это ещё не упоминаю мотивацию «родители заставили» — отдельная песня)
В итоге: вы находитесь на вражеской территории. Они идут к хайпу, а вы их тайно ведёте к знаниям. :) Методы соответствующие: маскируем одно под другое, устраиваем соревнования «кто хайповее» но через знания и тдтп.

3) Очень важно понимать, что за ограниченный срок у вас не получится научить всех. Будут откровенно тормознутые дети (даже среди тех кто пришёл осознанно!), которым вы можете хоть 100 раз разными словами объяснять – бесполезно. И тут важно соблюсти некую «общую скорость группы» чтобы те, кто идёт вперёд не сильно тормозили. А кого-то придётся тащить как бесполезный балласт.
Основное правило урока: каждый ребёнок должен быть занят делом. А задача препода создать массу различных дел в едином русле обучения, и выдавать их детям в зависимости от уровня и текущих успехов. Классические ситуации: очень трудная задача = нечего делать, очень лёгкая задача – лень = нечего делать. Лучше всего иметь отдельные задачки тем, кто бежит вперёд – посильнее и поинтереснее, а тем, кто отстаёт – попроще. Причём задачки могут быть и «в бок» — не в основном русле программы.

Ещё из общего: очень понимаю вас с созданием собственного инструмента без заморочек, так как нет ничего хуже, чем тратить время урока на решение технических проблем с компами и тдтп. Но есть и обратная сторона медали – какова для них ценность освоения именно этого инструмента? Вопрос, наверное, не первого плана, но он есть.

«Для первого занятия я подготовил 80 строк кода на JavaScript, распечатал их и раздал каждому. Каждый ученик должен был набрать распечатанный код в инструменте.»

Занятие, кажущееся полезным, но сталкивающееся с суровой реальностью: они НЕ набирают текст (в обычной жизни), соответственно не знакомы с этим _типом деятельности_. С поиском опечаток – тем более. Новый тип деятельности требует тренировки. Тренировки довольно быстро убивают современную мотивацию «хочу быстрый и яркий результат». Общие мысли тут простые: делим на мелкие куски, причём после каждого куска желателен визуальный результат – «конфетка». Тогда это более-менее сработает. Но и не перебарщивать в целом. Кому-то можно выдавать частично готовый код.

«За шесть занятий мы — два преподавателя — осознали, что подход к каждому и погружение в частные опечатки/ошибки занимает времени больше, чем объяснение нового материала.»


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

Про «события, реакции, функции, проверки условий и тдтп». Большинство программистов (и я в том числе) забывают о том, сколько бесконечных лет в наших головах счастливо и плодотворно живут названные и ещё десятки неназванных абстракций. Причём живут в чётком понимании как именно они функционируют, какие с какими можно соединить для получения сложных конструкций и тдтптдтп. Это огромный объём материала. Начинать сразу с таких понятий (событие, реакция) можно, но какова цель? С моей тз объяснять это надо после понимания обычного «потока исполнения программы». Причём объяснения строятся на осознании отличий от предыдущего более простого уровня.

Мы в нашей программе чётко разделяем, и явно задаём «парадигмы написания кода».
Опыт из жизни: приходилось сталкиваться с интересным явлением: дети считали, что программа это _цельный текст_ и робот/компьютер «читает его целиком на своём языке, и пытается понять, что ты от него хочешь». Понимания, что программа выполняется по шагам и можно это проверить-увидеть не было. (теперь это исправлено) При переходе на новую парадигму программирования тратится значительное время на объяснения и перестроение мышления.

Парадигмы: Лапша код, Лапша-код с ветвлениями/циклами, Функции и процедуры, Событийно ориентированные программы(+ ООП), Многозвенные приложения.

ИМХО. Сюда же отнесу бесполезность GitHub на данном этапе. Нужно сосредотачиваться и учить чему-то одному с контролем результата. Тратить время на правильные логины в гитхаб мне кажется расточительным.
А как сменить культуру?
Насколько я это вижу и чувствую вокруг — процесс то обоюдный. Не только верхи красные, но и низы зачастую хотят красного управления.
Как мне кажется, здесь либо должно пройти время (все последовательные этапы развития с кризисами и новыми инструментами) — по сути нужно внутри созреть для более высоких ступеней. В рамках страны это весьма длительный процесс.
Есть ли ещё какие-то варианты?
Исключительно личное восприятие: Лунтик очень примитивно нарисован (также как и многие современные мультики, в том числе и 3Д) хотя, казалось бы, технологии совершенствуются и качество может быть достигнуто меньшими усилиями. Вызывает отторжение, и своим детям показывать его категорически не стал бы.

Здесь можно было бы говорить о «примитивизации мышления» вслед за «примитивизацией восприятия», но это ещё бОльшее ИМХО, к сожалению никаких научных данных по этому поводу не встречал, да и вряд ли они могут быть, тк трудно измерить «примитивизацию» в цифрах. Хотя, вот такая статья из НиЖ перекликается с моей мыслью:
.

С мыслью о дурдоме и именно белом списке согласен, поэтому лучше составить собственное мнение.
2

Information

Rating
Does not participate
Registered
Activity