История вопроса такая:
Наплодилось вокруг до едрени фени школ обучения детей программированию. Все, как одна, заманивают обещаниями типа "ваш ребенок напишет с нуля свою игру/программу". На деле всё сводится к тому, что дети знакомятся с какими-то базовыми вещами и простейшими алгоритмами, кодят игру в каком-нибудь Скретче и собственно всё. Это впечатляет далеких от IT родителей, но толку от такого обучения вряд ли будет очень много.
Программирование и работу с алгоритмами такого уровня я могу дать ребенку и сам, что с успехом и было сделано. Тем не менее, чтобы двигаться дальше нужно, во-первых, владеть материалом, а во-вторых, преподносить его в доступной и форме и с правильной последовательностью. То есть, хочется, чтобы обучение содержало в себе:
1) Основы информатики, но не так, как это происходит в школе, где суть сводится к жуткому учебнику, а строго рука об руку с практикой, проходим например типы данных и тут же знакомимся с этим в среде, проходим циклы и опять практика;
2) Последовательное знакомство с разными универсальными элементами написания кода "если..то..", переменные, библиотеки и т.п.;
3) Переход к программированию на настоящем, практически применимом языке (то есть постепенное введение в дело необходимости именно писать код, а не складывать башенки из элементов, как в скретче);
Собственно вопрос:
я сам не программист, но много лет работаю в IT и владею всеми базовыми представлениями об этом, ну и конечно смогу при необходимость по какому-нибудь гайду разобраться, как написать несложную программу и выявить почему она возвращает ошибку, в этой связи я бы хотел опираясь на ряд инструментов книги, сайты, сервисы, виде и т.п. выстроить и развивать персональную траекторию вовлечения ребенка в этот мир
Посоветуйте что-нибудь или расскажите, к примеру, как вы пришли в мир программирования, если это произошло с вами в детсве.
Спасибо большое!
p.s.: мне бы хотелось для понять - каков тот минимальный объем обучения в среде скретч, после которого нужно переходить на след. уровень и некий список от А до Я того базового минимума, до овладения которым лучше из скретч не уходить вообще, а также, как правильно переходить на уровень работы именно с написанием кода и как это лучше сделать, чтобы ребенок не утратил мотивацию, ведь писать код не так весело как складывать башенки в визуальной среде типа скретч ))
зачем пихать ребёнка в программирование которое он по факту не хочет? Я знаю детей которыми не занимались родители и они сами самоучками становились неплохими программистами.
Создайте ему такие условия бедности чтобы он сам был мотивирован. Хочу денег, айфон, шмотки - вот научись заработай и купишь
Алан Гибизов, уважаемый Алан, вы не смогли понять сути моего вопроса, но это никоим образом не делает мой вопрос, нарушающим правила. Теперь, после того, как вы прочли это - перечитайте то, что я спросил. Перечитайте внимательно. А затем перечитайте ответы. Тоже внимательно.
Я спросил, далее цитата, как выстроить и развивать персональную траекторию вовлечения ребенка в программирование. Мой вопрос - вполне ясный. Ответы на него тоже вполне ясные и конкретные. Ответами стали указания на фундаментальные принципы. Эти ответы уже используются мной в работе.
AVKor, я надеялся, что вы сможете уловить сарказм. В этой связи ваш комментарий скопирую в ту же папку, куда отправился комментарий вашего коллеги по сообразительности. (facepalm)
Начинать нужно с графического канваса.
Потому, как результат работы алгоритма дети больше воспринимают визуально, нежели взрослые, используя отладчик (или вывод на экран значения переменных в текстовом виде).
Выводим сетку, и в нужной клетке сетки выводим квадрат. Вот тут сразу и переменные и циклы и визуально виден результат.
Сразу же учим составлять блок-схемы на бумаге!
Когда алгоритмизация и логика работы кода будет понятна - уходим из канваса в отладчик (а не в вывод на экран значений переменных!!!). Главное - сразу учить правильному использованию инструмента разработки!
Всё! Цель достигнута.
Дальше - учим новые типы переменных и функции для работы с числами/текстом, рисуем блок-схемы на бумаге, чтобы была понятна сложная (для ребёнка!) логика.
После этого - можно постепенно давать объекты и строить простейшие игры: как текстовые, так и в канвасе.
Канвас - это самое важное средство поддержки мотивации ребёнка при изучении сложного нового материала: он наглядно видит результат своих усилий и может пробовать менять различные переменные и сопоставлять результат с изменениями, делать вывод и запоминать.
НО! нельзя канвасом(визуалом) часто злоупотреблять, иначе обучение превратится в "хочу, но не могу, потому, что не получается ничего..." и весь интерес к программированию будет попросту "задавлен" и вернуть его практически нереально.
Огромное спасибо за такой развернутый ответ. Начну уточнять:
1) "Графический канвас" - это среда типа Скретч? Или речь о чем-то ином?
2) "Сразу же учим составлять блок-схемы на бумаге!" - можете посоветовать откуда брать информцию ёмко и конкретно по составлению блок-схем?
3) "Выводим сетку, и в нужной клетке сетки выводим квадрат. Вот тут сразу и переменные и циклы и визуально виден результат." - не совсем понял как вывод квадрата в нужном месте знакомит с переменными и циклами, есть ли какой-нибудь материал или видео, который сможет ввести и познакомить меня с этим процессом?
4) "уходим из канваса в отладчик" - что имеется в виду?
Я вижу что вы довольно уверенно советуете, как двигаться, это ваше видение или есть какой-то бекграунд (личный опыт освоения, опыт преподавания или может быть что-то изучали, читали и т.п.)?
MrZee, канвас - это холст, на котором можно рисовать. Ты можешь сделать "черепашку", т.е. заставлять ходить по клеткам объект - Работа линейного алгоритма. Ты можешь показать детям, как можно сделать несколько шагов, не копируя команду, а создав цикл. Главное, что каждое действие должно быть отражено на канвасе.
Можно так же и условиям обучить тут же.
"Уходим в отладчик" - (как я понял) значит смотрим, как именно работают алгоритмы. Внутри. Как "черепашка" ходит. Что происходит в цикле, какие переменные, на что и почему меняются.
MrZee, 1. Про канвас - уже Вам ответили коментаторы выше. Это просто холст X*Y. Он может быть как и на JS (canvas-объект), так и на любом другом языке программирования.
2. Блок-схемы (и не только) - источник: википедия.
3. Чтобы разлиновать лист чёрной сеткой - нужно научиться чертить линии в канвасе. А чтобы сделать сетку из квадратов - нужны циклы.
4. Про уход в отладчик - Hemul GM уже ответил верно. Т.е. учим не догадываться что там и как происходит, а именно наблюдать за процессом: изменения переменных, работу условий и т.д.
Я вижу что вы довольно уверенно советуете, как двигаться, это ваше видение или есть какой-то бекграунд (личный опыт освоения, опыт преподавания или может быть что-то изучали, читали и т.п.)?
Разумеется. Это многолетний опыт работы в команде с людьми с различными уровнями к восприятию и осознанию нового материала: чем нативнее и понятнее объясняешь, тем выше КПД команды.
xmoonlight, спасибо, большое, пока все понятно, а нет ли у вас возможность сделать пример отслеживания происходящего в отладчике? Ну что-то совсем простое со скриншотом. Такой микро-кейс демонстрирующий то, как работа с отладчиком обнаружила какие-то аспекты до того момента не явные.
Заранее тысяча благодарностей!
действительно, некоторые школы в рекламе говорят о создании игр и даже об нейросетях и машинном обучении
тупо накидывают модных слов для родителей-лохов
а детям необходимо простейшее элементарное программирование в начале
вебкодер.рф - визуальный редактор кода для детей 12+
встроенный учебник, но недописан
Самое простое и сложное, банальное и непонятное - мотивировать на изучение.
Можно помогать с идеями, поощрять реализации чего-либо, помогать и принимать участие в его проектах.
Не делать за него, а или делать вместе или подсказывать куда копать.
Самое простое и сложное, банальное и непонятное - мотивировать на изучение.
Вот это - от ЛУКАВОГО!
Мотивировать - никого, никогда и ничем не нужно! Это не секта! Мотиватор для человека только один: свобода выбора и самостоятельного принятия решения.
Saboteur, разумеется, под мотивацией нельзя понимать только что-то искусственное, навязывание какое-то по принципу "Полюби программирование, а я тебе конфету дам".
Но определённо в силах родителя предложить материал так, чтобы ребёнок заинтересовался и не счёл его скучным. В силах родителя следить за количеством времени, которое ребенок проводит в гаджете. В силах родителя быть рядом и давать ребенку обратную связь, которая воодушевит и поддержит.
Saboteur, обычно, детям дают опции выбора рода занятий для подготовки к профессии или к тому, что им поможет полноценно существовать в данном окружении, а не навязывают "тележку с морковкой перед носом".
Я именно про это говорю...
Возможно, что не совсем ты понял меня в отличии от MrZee...
Он выразился, вот, чётко:
давать ребенку обратную связь, которая воодушевит и поддержит.
именно обратную связь, а не "тянуть" в свою сторону его волю.
xmoonlight, не бывает абсолютной свободы выбора и "самостоятельность" принятия решения всегда стоит под вопросом (на самом деле, она может быть вплоть до полной иллюзии того, что решение принято самостоятельно, а на самом деле его навязали, например, пропагандой).
Кроме того, нормально мотивироваться не только "свободой выбора", но и другими мотивами, в противном случае поведение может быть асоциальным, ущемляющим других людей и т.д. и даже вопреки собственным реальным, а не надуманным интересам. В норме это хорошо понимают взрослые люди, но плохо или недостаточно понимают в детском и раннем подростковом возрасте.