Pull to refresh

Comments 65

codecademy.com не на русском, а code.org поизучаю, спасибо!
Мне кажется, code.org рассчитан на младших школьников, но дам попробовать, посмотрим.
— простое, доступное объяснение основ программирования
— минимум теории

html, css, связь всего этого с js, кодировки. Кажется, вы не тем путем идете. Действительно хотите ребенка заинтересовать миром программирования и научить что-то программировать? Сложность и непонятность для ребенка этих разных технологий и связи между ними отобьет интерес, скорее всего.
Посмотрите в сторону:
— processing'а (есть такая online-книжка isocode.ru);
— Small Basic.
Игры… я бы посмотрел в сторону python или lua (если второе — на основе движка love).
Мне кажется, живой реальный язык с примерами лучше искусственных, оторванных от реальности. По сути, детям не важна технология, важен результат. Теория им до фени (пока что).
Поддерживаю! На курсере от университета Райс отличный курс по питону, в котором в течение 9 недель от простого к сложному учатся основы питона, причем написанный код сразу вставляется в заготовки и на выходе каждую неделю получается отдельная игра.
Если сделать такое на русском — детям будет очень интересно.
Как бы 12 летний человек уже должен соображать, что делать игры не тоже самое что играть. Так что теорию уже можно и даже нужно. Другой вопрос какого результата нужно добиться на финале курса, и какие технологии годятся именно для добивания этого результата. Если речь идет именно научить программировать в широком смысле этого слова, то имхо нужно начинать с самих азов. Взгляните в учебник математики 12летного, думаете он не поймет что такое ячейка памяти, указатели и массивы? А после изучения базовых основ можно скакнуть на крутые современные языки и фремворки и делать что-то заебацкое. Главное что в голове у человека уже будет осознание того, что вот эта классная трехмерная стреляющая пушка на самом деле является километром чисел в памяти и тонны функций их обработки. Если пойти обратным путем(как все пытаются) велика вероятность разочарования.
Дети способны понять вообще все. Только им не интересно. Телевизор, мультики и смартфоны вне конкуренции. Математику они могут понять, но не хотят. У нас по всей стране просел уровень образования. Главная проблема в мотивации — не понятно зафик учить эту скуку. Моя цель — показать зачем, а дальше он сам захочет (или нет) и сам разберется.
Вы же сами написали в статье, что ребенку интересно. То-есть какое-то желание уже есть, его не надо заставлять, нужно помочь, а имхо, процесс созидания чего-то из ничего, для технического склада ума, гораздо важнее чем «вау эффект от графона». В виду этого имеет смысл использовать языки программирования общего назначения, как раз чтобы не было вопросов «зачем мне это надо и как это можно использовать в реальной жизни»
1. Дизайн постов ужасен. Слишком резкие скачки размеров шрифтов, плюс «подсветка» синтаксиса случайным образом меняет цвета от статьи к статье. Воспринимать подобное достаточно тяжело. Особенно транслитерированные слова.
2. Ну и для начала было бы неплохо сильнее структурировать. Откройте любую книгу по JavaScript и посмотрите на структуру. Хотя бы на недавний перевод книги Выразительный JavaScript.
  • Как встраивать JS
  • Какие операторы имеются
  • Какие типы данных существуют
  • Что такое DOM и как его едят

3. Дайте сразу здоровенный кусок кода и постепенно поясняйте что к чему. Гораздо занимательнее сначала менять что-то в уже работающей программе и смотреть как оно меняется, а уже после разбирать как оно работает и как это можно улучшить, на мой взгляд.
1. Красным — логика, зеленым — html, желтым — стили. Размеры поправлю, спасибо!
2. Структура такая: от простого к сложному. Нет смысла сразу рассказывать обо всех типах данных.
3. Я так делал на уроках, возможно в учебнике добавлю в качестве дополнительных материалов. Надо обдумать.
Скриншотики вроде этого лучше делать на русском. Браузеры, к счастью, локализуются на ура.

А вот транслит вызывает двойственные чувства. Просто ребёнку всё равно придётся объяснить, что такое margin-left. Зачем при этом называть переменную otstupSleva?

Идея хорошая, но реализация бы не подкачала. Вот это что такое?

<button onclick="otstupSleva += 10; document.getElementById('mordochka').style.marginLeft = otstupSleva;"> Napravo </button>


Зачем приучать писать куски JavaScript внутри строковых литералов, смешивая логику и разметку? Зело некрасиво. Так можно в кавычечный ад попасть.
Транслит совсем не хочу использовать, но есть проблема с английским и есть проблема с кодировкой в мини-примерах.
Куски кода в строке — это пошаговое объяснение того, как из html вызываются программы. В следующей части будет onclick=«do()». А в первой мы пока не знаем что такое функции.
Вот в этом плане мне как раз Eloquent JavaScript понравился: он тоже учит программированию с нуля, но учит сразу нормально, а не так «сперва мы будем делать всё неправильно, а потом вам придётся всё это забыть и учиться заново».
Да, вначале учимся ползать) Главная проблема — в пороге вхождения. Я бы рад рассказать только про типы данных, но для живых примеров понадобятся средства визуализации. Так мы придем к некой оболочке для обучения, а я хочу показать, что можно открыть блокнот и написать игру. На меня когда-то именно это произвело впечатление.
«пошаговое объяснение того, как из html вызываются программы» — вы сами себе придумали проблему. На JS учить программированию нельзя.

Вы же не учите брать ответы в конце учебника, и подгонять под ответ, как «простое объяснение основ математики»? А откуда тогда в программировании желание научить писать код в HTML? в обучении правильный процесс всё же важнее результата.

Тоже самое с ООП — его придумали не ради сложной теории. Детям надо не теорию рассказывать, а на практике писать классы и подобрать примеры, чтоб готовые классы оказались полезны. «А в первой мы пока не знаем что такое функции.» ничем не лучше «А в первой мы пока не знаем что такое объект», и мало чем отличается от «мы пока не знаем что такое inline-код». Как объяснить — так и будет.
Кент Бэк свою 12 летнюю дочь учил TDD — «Она не умеет программировать иначе и абсолютно уверена в том, что добавлять в про­грамму новый функциональный код можно только в случае, если существует не срабатывающий тест»

Я бы взял нормальный промышленный язык, и к нему нашел (написал) простую библиотеку визуализации, или визуальным редактором.
Если бы моей целью было научить взрослого, хотя бы старшеклассника, я бы думал в эту сторону. Также есть ограничения, связанные с онлайном — есть вещи, которые легко показать в живом общениии и сложно передать словами. Пока ползаем, потом начнем ходить, потом бегать. Про ООП возможно (хз) буду рассказывать на примере CoffeeScript, но до этого еще далеко. Ксати, JS-HTML-игру легко превратить в приложение для смартфона — для ребенка это вау-эффект.
«Пока ползаем, потом начнем ходить, потом бегать.» — вы, конечно, вправе учить своих детей ползать и в 12, но в 12 можно этому уже и не учить.
Есть версия (Глена Домана), что многим взрослым полезно поползать. Все люди разные, каждому свое. Надеюсь, мой вариант кому-то поможет.
Чтоб не надеяться на помощь версий всяких странных личностей люди придумали доказательную медицину. В методах Домана пока доказан только вред.
Я своему семилетке давал codemonkey www.cm-studios.com/challenges/1 Простое программирование обезьянкой, вот что даст любовь к программированию.
60 уровней у них бесплатные. Переменные, циклы, методы, кнопки, помогающие писать код, подсказки тьютора и всё такое.
Спасибо, сделаю подборку таких обучалок для детей помладше!
Мне кажется, что для младших хорошо подходит Scratch. codemonkey отличная вещь, но на ней нельзя сделать свою собственную игру. Она очень хорошо подходит для первых шагов в программировании, но не более.
UFO just landed and posted this here
Возможно, поменяли политику. Мой сын все 60 прошёл до НГ, дальше не захотели платить, слишком уж доллар велик :)
UFO just landed and posted this here
Отличная идея сделать учебник по программированию для детей!
У меня тоже есть небольшой учебничек по программированию на Scratch, правда он для детей начальной школы. Я сделал его по опыту обучения детей в кружке юных программистов.
В Вашем учебнике я не нашел создания игр, а это именно то, чего хотят дети. Может надо показать им работающую игру, как написал domix32, и дать возможность «поковыряться» в коде. Изменяя скорость движения объектов, изменяя логику поведения и.т.д. дети поймут для чего вообще нужно программирование. Если заинтересуются, можно разбирать игру на части и подробно объяснять про каждый элемент.
Да, интересная идея, думаю над этим.
Я бы еще посоветовал посмотреть в сторону www.computercraft.info/. Это дополнение для minecraft, в котором можно программировать компьютеры (а так же роботов) на языке lua, который чем-то даже похож на JavaScript (он тоже по сути прототипно-ориетированный). Среди детей сейчас и так популярен Minecraft, а с этим аддоном можно реально пробудить интерес к программированию.

Кстати, и для взрослой аудитории с этим аддоном будет очень интересно поиграться, так как там есть проводные и беспроводные сети, и многое другое. В последней версии вон вообще можно HTTP запросы делать, так что можно хоть twitter-client написать (вот вики по API computercraft.info/wiki/Category:APIs). В общем, довольно занятная штука. Вот, например, человек написал нечто похожее на ОС с псевдографическим интерфейсом www.youtube.com/watch?v=3srk2fgXr4Q.

Для ознакомления точно советую!
В 12 лет уже хочется настоящий язык программирования, на котором можно создать любую игру.
Для нулевого уровня и 14ти лет отлично подходит qbasic, начинать с js — крайне неудачная идея.
На js можно сделать приложение для смартфона, можно вставить в игру любую картинку, короче лучше я не вижу. Dart может?
Для нулевого уровня и 14ти лет отлично подходит qbasic

Горите в аду вместе с любителями Турбо-паскаля. На дворе 2015 год, а вы предлагаете учиться программированию в приложении для MS-DOS. MS-DOS, ля! Вышло в 1991 году! Люди, родившиеся в 1991, уже полноценные члены общества, многие обзавелись семьями и детьми. А такие «преподаватели», как вы, застыли в 1991 году. Как там, Ельцин не сильно пьет еще?

Ни межплатформенности, ни вообще ничего, только программы для DOS. Вот захочет ребенок написать программу у себя дома, а у него дома Мак или 64-битная Винда. И чего ему делать? Медитировать на файлы с Qbasic до просветления?
Есть замечательный pascalabc.net/ как раз созданный для обучения, с учебником и примерами
Я не имею ничего против Паскаля, я категорически против применения устаревших компиляторов для MS-DOS в образовании. Турбо-паскаль — компилятор, а не язык.
Мне всего-навсего 22 года, я 8-9 классы осваивал qb, 10-11 паскаль. После этого в инсте без особых проблем освоились и С, С++ и Java (именно в таком порядке, а ява стала моим куском хлеба в виде связки J2EE+JS+PL/SQL), также довелось попутно потрогать G (labview), матлаб, асм, делфи и другие интересные штуки. Все равно вхождение для школьника через qb+tp мне видится оптимальным, ибо языки просты для понимания и не содержат потенциально мозговыворачивающих моментов (вы же не хотите приучать ребенка с нуля к нетипизированному языку с кучей скоупов, поднятием переменных, прототипным наследованием и другими «развлечениями»? Да, это камень в сторону js). У бейсика куча форков, а паскаль переродился в freepascal — со средами разработки нет проблем на современных операционках.
Нет, ладно, если бы вы написали, что считаете Basic, а чуть позже Паскаль подходящим языком для обучения программированию, я бы вас прекрасно понял. Но вы написали именно Qbasic. Зачем именно его, почему? Есть же куда более современные реализации, которые хорошо работают везде, вы сами об этом сказали. Я же не думал, что вы отождествляете язык и IDE:

Все равно вхождение для школьника через qb+tp


Для школьника идеально вхождение через Паскаль, согласен с вами абсолютно. Но на Паскале вон можно писать в дотнетовом ABC, можно настроить Фрипаскаль какой-нибудь там, вот это все. А Турбо-паскаль закопать пора уже давно. У нас в образовании беда с этим, очень любят несчастный Турбо-паскаль и не менее несчастный шестой Делфи.

Для тех, кто минусует мой комментарий выше, еще раз: я не против этих языков, я против древних сред разработки для MS-DOS.
Это мое субъективное видение — я в 96-98м годах сидел под досом частенько и хоть почти ничего серьезного там не мог провернуть в силу малых лет, но страх перед косолью виндовой (а равно и терминалом в unix`ах) обошел меня в отличии от многих моих сверстников стороной. Да и где еще как не в школе сейчас школьник познакомится с операционкой, отличной от винды, мака и современных дружелюбных линуксов? Не для работы, а просто ради «общего развития» и эдакой экскурсии в историю.
Но если времени в обрез или у учителя свое видение — ну ладно, пусть будут современные вариации на тему бейсика и паскаля, это уже вопрос не по части программирования, а общего ит развития.
Да и где еще как не в школе сейчас школьник познакомится с операционкой, отличной от винды, мака и современных дружелюбных линуксов?

Ну, например, дома, заинтересовавшись. Почему нет?
Лучше взять CoffeeScript. Он проще и скрывает лишние подробности, типа сколько '=' писать.
otstupSleva
— оно может и понятнее, но как по мне — медвежья услуга. Пусть учат английский сразу.
Первым моим языком программирования был Action Script 1.0 (за год до того научился делать домашние странички на HTML). Мне как раз было 12-13 лет. Macromedia Flash 5-7 были на редкость удачными на то время средами для обучения программированию и созданию 2D игр! Что может быть проще? Нарисовал все необходимые примитивы во встроенном редакторе, кликнул на них — и пиши код-обработчик клика (там были очень простые команды, навроде goToAndPlay(5)). Помню как за один урок сделал «тир» — мишени-кнопки, случайно меняющие свои координаты, клик по которым увеличивал очки.

К сожалению, не знаю какая среда сейчас может заменить тот флэш. Нынешний уже сильно перегружен и больше для профессионалов. Возможно, Unity?
natureofcode.com/book/ — Processing с основами физики, как первый заход вряд ли подойдёт, но заинтересовать однозначно можно. Все примеры тут же реализовываются в контексте главы
Как по мне, так идеально начинать обучаться программированию с какой-нибудь онлайн-системы на подобии codeforces.com/

Есть простые задачи, есть тесты, которые проверяют решение. Нет каких-либо требований к качеству кода. Сразу и базовые алгоритмы изучаются, и синтаксис языка.
В очередной раз напоминаю и в очередной раз удивлён, что никто не напомнил:

Colobot
Ceebot
Эх вы. Весь русскоговорящий интернет щас рассказывает, как это так — невозможно представить себе ИТ без котиков.

И даже не могут вспомнить, почему это происходит…

image

Кстати, с тех пор понятие байта и бита не устарели…
Автор прилетел с какой-то другой планеты, негуманоидной. Какой JS, HTML, вы чего?

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

Своему 9-летнему ребёнку сначала подсунул Scratch, а потом Ардуину и LEGO Mindstorms.

Понять, что такое программирование, куда как проще, если у тебя код представлен так, цветными «кирпичами»:

image

А когда ты ещё можешь в два клика выложить написанную тобой игру в интернет и дать её приятелям поиграть — это бешено стимулирует. А в процессе тебя аккуатно учат тому, что такое переменные, циклы — все эти абстрактные штуки становятся естественными и понятными.

P.S. www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code?language=ru
Это прекрасно для клубов, обучения в реальном общении, с наставником. В онлайн обучении это дорогостоящий входной билет. Ребенок сам себе купит Ардуино и Лего и разберется с ними? А насчет положить в интернет — js прекрасно подходит. И сбилдить приложение для планшета — похвастаться — очень легко с фонгапом. Правда, бешено стимулирует.
Какой наставник, вы чего?

Открываем ребёнку любой проект с scratch.mit.edu/explore/projects/games/?order_by=love_count — даём наиграться вдоволь.

Дальше спрашиваем «а хочешь её раскурочить?» Показываем кнопку «see inside». Отходим и не мешаемся.

Когда чадо приходит с вопросами, выдаём ему распечатку с scratch4russia.com/store/ Отходим и не мешаемся.

Для работы с Scratch наставник не нужен.
Еще со школы помню эту программу: вполне стимулирующая и интуитивно осваиваемая среда для обучения. Я на ней писал свой первый арканоид и небольшую аркаду (рыцарь на дракона охотился, что-то вроде того). Там куча «живых» примеров в самой программе. Что еще запомнилось: на каждый игровой объект можно было вешать различные методы, наподобие «если впереди стена, прекрати движение», либо «если тебя ударили, смени спрайт на мертвый» и т.д. и т.п.

Так что зря вы её отсеиваете. Для детей, по-моему, самое то
Подтверждаю сказанное bougakov и Beltoev. Наставник для Sratch не нужен. он требуется только на первом уроке, чтобы показать как двигать блоки, и, немного, при изучении сложных понятий. В таком коде может разобраться даже самый маленький.

Сколько строчек кода надо написать на JS чтобы получить такую программу?
Посмотрите в сторону "КуМир". Устанавливается в несколько кликов, команды на русском языке, есть встроенные «исполнители», интересные и понятные для детей.
Исполнители — это штуки, выполняющие какие-либо действия и предоставляющие API. Например, есть исоплнитель «Робот», который может ходить по полю из клеточек. Его API: команды движения, команды проверки наличия стены и команда «закрасить клетку».
Ничего лучшего для детей я не встречал. Сам начинал с него в школе, а сейчас вполне успешно (правда, довольно медленно) занимаемся программированием с дочкой 6 лет.
vk.com/wall135043336_361
Использование русского или транслита в программировании поставит ребенка на путь программиста 1С.
Если же постепенно объяснять смысл слов стандартного vocabulary программиста — с логикой будет проще и откроется skill читать документацию при последующем самостоятельном изучении.
Я такие вижу проблемы:

1. Если вы хотите написать учебник-блог, то представьте, что вы пишите книгу. Вы бы хотели читать ваш текст в виде книги? Я бы нет. Текст отформатирован жутчайше, картинок нет. Вы гляньте на любую документацию и туториалы к любой библиотеке, там и единство стиля, и типографика, и структура. У вас этого ничего нет.

2. Если вы хотите привлечь детей именно к обучающей платформе, я бы вам посоветовал прикрутить тут же поле для ввода кода с кнопкой. Читаем главу, сразу же смотрим примеры, вводим, смотрим результат, экспериментируем. Голый текст сейчас никого не заинтересует.

3. То, что вы начинаете с JS огромная ошибка. Вы уже в первой главе смешали вместе арифметику, диалоговые алерты и операции вывода в DOM. Тут же к этому примешиваются HTML. Я бы на первой же практике потерялся бы в этом винегрете. А в конце первой части (первой! еще даже примитивов языка не рассказали) вы уже рассказываете про css. Зачем? Почему бы не взять за основу любой другой скриптовый язык с минимальным интерфейсом (Perl, PHP, Ruby, Lua) и не дать возможность вводить программу в окно, показывая рядом результат по нажатию кнопки?

В целом отличное начинание, но реализации сводит ваши усилия на нет. Ваш ресурс был бы интересен в начале 2000-х, а сейчас сами судите, он выглядит как-то школьно, что ли… Обучать программированию сложно, обучать детей в квадрате сложнее. Я думаю, что формат обычного блога тут просто не сработает. Увы.
Думаете для обучения вождению нидфоспид лучше, чем старый запорожец?
Я думаю, что если у Запорожца нет колес, то учится, конечно, можно и на нем, но без интереса и особого толку. Тем более, если учиться хотя бы на Жигулях последних моделей, то даже это много приятнее.

Вы поймите меня правильно. Чтобы ребенок учился, ему должно быть не только интересно, но курс должен быть построен логично и понятно. Я имею опыт преподавания студентам и на своем горьком опыте знаю, как сложно построить действительно логичный курс и как сложно удержать аудиторию, мы первый курс успешно с коллегой провалили. Если курс — это просто набор фактов, то его никто не будет учить, даже если он полезный и нужный. А еще у меня есть дочка, хотя и маленькая, и я твердо знаю: если игра не понятна, она мгновенно теряет интерес к игре. Так вот в вашем курсе — нелогично и непонятно.

Если у вас нет опыта преподавания, я настоятельно рекомендую вам просмотреть несколько самоучителей и учебников, обязательно разных и по разным предметам, просто чтобы увидеть, как они построены. А если есть, то порасспрашивайте коллег, может у кого есть опыт преподавания детям, они могут рассказать много полезного. И помните, что современные дети избалованы играми и интерактивными сайтами и софтом, как их заинтересует всего лишь блог? Это же просто читать… И это не шутка, к сожалению.
Мы работает со школьниками. Младшим классам даем наш вариант Logo на js:

www.trtg.org/_t/

В принципе, не важно на каком языке вы учитесь циклам, условным операторам и т.д. Но младшим классам эти вещи необходимо объяснять максимально наглядно.

Со более взрослыми занимаемся на Си. Понятных и простых статей о том как писать программы на Си очень много. Решаем задачи от-сюда: acmp.ru/ codeforces.ru/

Участие в олимпиадах и сорревнованиях дает достаточно мотивации детям для того чтобы изучать «скучный Си».

На зимних каникулах у нас проводилась выездная школа где было две группы детей(старшие классы):
— «олимпиадники» — им про алгоритмы рассказывают и пр.
— «системщики» — изучают ассемблер.

Поэтому не надо бояться что будет скучно. Если ты сам понимаешь на сколько это все интересно, то дети это увидят и им тоже станет интересно.

А вообще спасибо за книжку, чем больше материалов, тем лучше.
Есть в спортивном туризме такая поговорка. Если турист правильно спланировал маршрут, подобрал снаряжение, необходимое именно на этом маршруте, а на маршруте правильно его использовал — это квалификация. Если он вместо невзятого нужного с тем же эффектом использовал взятое ненужное — это мастерство.
Использование в качестве учебной среды программирования консоли бразузера — это, по-моему, взятое ненужное снаряжение. Если удастся тем не менее написать такой учебник, с помощью которого другие люди смогут учить других детей — значит мы имеем дело с мастером. Я бы не рискнул. Я бы что-то типа jsfiddle.net использовал.
для подростков: isocode.ru

а вообще, это: программирование для детей и взрослых в среде Processing.
Sign up to leave a comment.

Articles