[identity profile] dimmik.livejournal.com posting in [community profile] useful_faq
Ситуация: Ребенок 10 лет хочет "научиться программировать".
Желание весьма похвальное. И хочется ему возможность научиться дать.
Я, в общем, и сам программист, но что-то придумать что-то "простое" и "интересное" так вот сразу не могу. Педагог из меня аховый.

Можете посоветовать что-нибудь, что поможет нормально понять ребенку что же это такое "программирование" в доступной и интересной форме? Чтобы не пропало желание через 20 минут после попытки научиться?

Во времена моего детства было что-то вида "pascal robots", где пишешь робота и он потом с другими на арене сражается.
Есть сейчас что-нибудь подобное?

Date: 2011-09-12 08:23 am (UTC)
From: [identity profile] gew36.livejournal.com
меня начинали учить асеемблеру в 9-10 лет. ИМХО самый лучший вариает тогда был. Как пример меня заинтересовал тогда програмируемый луноход, в встроеного терминала.
Поробуйте начать с асма, имхо он проще из-за примитивности пошаговости.

Date: 2011-09-12 08:30 am (UTC)
From: [identity profile] potan.livejournal.com
Лучше Форт. По этим критериям.

Date: 2011-09-12 08:28 am (UTC)
From: [identity profile] potan.livejournal.com
Такая игра (http://www.robozzle.com/js/index.aspx) подойдет.
Мне в детсве помог программируемый калькулятор с стековой нотацией, но где сейчас такой взять. Именно калькулятор - что бы в руках держать и кнопки нажимать.
Более современный стиль можно попробовать освоить по такой (http://users.livejournal.com/_darkus_/364113.html) настолькой игре.

Date: 2011-09-12 08:39 am (UTC)
From: [identity profile] silk-brush.livejournal.com
может, есть что-нибудь типа соверменного аналога logowriter'а?

Date: 2011-09-12 08:41 am (UTC)
From: [identity profile] silk-brush.livejournal.com
да, вики пишет, что есть современные версии, но что-то я не нашла, где их скачать

Date: 2011-09-12 08:57 am (UTC)
From: [identity profile] spacediver.livejournal.com
Думаю, в этом возрасте лучше как следует учиться математике. Программирование само из нее вырастет — те же абстрактные конструкции, подчиняющиеся формальным законам.

100 лет назад...

Date: 2011-09-12 09:04 am (UTC)
From: [identity profile] i-am-ivanova.livejournal.com
...Паскаль моей дочке объяснялся в четыре года.
Она слушала с интересом по той простой простой причине, что нам, её любимым родителям было это интересно. Все на личном отношении основано, и на добром уважительном отношении друг к другу.

А что объяснять не важно. Терпение в воспитании очень важно. Я думаю, у Вас получится.

Хорошего дня.

Date: 2011-09-12 09:12 am (UTC)

Date: 2011-09-12 09:34 am (UTC)
From: [identity profile] karma-coon.livejournal.com
Можно попробовать рисование.
Вот, смотрите, пара построений, для которых можно использовать только циклы, moveto и lineto:

Image

Плюс в том, что:

  • интересно;

  • виден результат;

  • математика;

  • подойдет любой язык, например: PascalABC.NET (http://ru.wikipedia.org/wiki/PascalABC.NET).


А когда справится - предложить раскрасить все это в шахматном порядке :)


Date: 2011-09-12 09:38 am (UTC)
From: [identity profile] ingakess.livejournal.com
Scratch
http://scratch.mit.edu/

Идеально как раз для такого возраста (можно использовать не все возможности среды).
Визуальный конструктор программы (перетаскиваем блоки, собирая их в программу).
Можно обойтись без переменных (на начальных этапах обучения программированию).
Создание анимации, мультфильмы, простые (или не очень простые ;)) игры.
Программа бесплатная, русифицированная.

Есть еще масса графических учебных исполнителей - Робот, Чертежник, Стрелочка, множество вариантов той же Черепашки (Logo), но, на мой взгляд, Scratch для начала - самое то.

Date: 2011-09-12 09:41 am (UTC)
From: [identity profile] ingakess.livejournal.com
Графический исполнитель "Стрелочка" (http://school-collection.edu.ru/catalog/rubr/a30a9550-6a62-11da-8cd6-0800200c9a66/63388/?interface=pupil&class[]=50&class[]=51&subject=19) (в более древней версии - "Кенгуренок"). Это материалы к учебнику информатики И.Г. Семакина за 9 класс, но, на мой взгляд, для 10 лет эта программа явно подходит больше, чем для 9 класса.

Date: 2011-09-12 09:49 am (UTC)
From: [identity profile] ingakess.livejournal.com
В Scratch, кстати, есть встроенный графический редактор (примитивнейший, правда, но можно загружать картинки из внешних источников, и есть коллекция изображений, которые можно использовать в своей программе). И возможность работы со звуком (как запись звука с микрофона и добавление в программу, так и конструирование мелодии с помощью специальных команд в разделе "Звук".


Скриншоты Scratch:

Image

Image

Image

(на фото - англоязычные варианты команд, но вообще на русский язык программа при запуске переходит автоматически - как я понимаю, берется просто системный язык по умолчанию)

Image

Дополнительная информация:
http://progopedia.ru/language/scratch/
http://setilab.ru/scratch/
http://letopisi.ru/index.php/Scratch

Date: 2011-09-12 09:58 am (UTC)
From: [identity profile] ingakess.livejournal.com
Да, и еще. В Scratch есть группа команд "Перо", с помощью которых реализуются возможности графического исполнителя типа "Черепашки" (можно поднимать/опускать перо и перемещаться по плоскости - при опущенном пере на плоскости будет появляться рисунок). При этом можно менять размер, цвет пера, реагировать на нажатие клавиш клавиатуры и кнопок мыши, и т.д.

Date: 2011-09-12 09:53 am (UTC)
From: [identity profile] ingakess.livejournal.com
Исполнитель "Паркетчик"
(к учебнику информатики А.Г. Гейна, 8 класс)

Image

Выкладывает узоры красными и зелеными плитками на клетчатом поле.

Страница программы на сайте издательства (там же можно скачать программу):
http://www.prosv.ru/info.aspx?ob_no=19088

Дополнительная информация:
http://www.inf777.narod.ru/parketchik.htm

Date: 2011-09-12 09:56 am (UTC)
From: [identity profile] ingakess.livejournal.com
Система "Исполнители" К. Полякова (Исполнители Робот, Чертёжник и Черепаха)
http://kpolyakov.narod.ru/school/robots/robots.htm

Date: 2011-09-12 09:44 am (UTC)
From: [identity profile] stetzen.livejournal.com
Пылесосик можно http://www.sch2.ru/gazeta/0.9/study/info1.htm

Ну или ЛОГО

Date: 2011-09-12 08:58 pm (UTC)
From: [identity profile] yaker.livejournal.com
О да, Пылесосик рулит! За полтора десятка лет, вроде, похорошел, но до сих пор вполне узнаваем.

Date: 2011-09-12 09:04 pm (UTC)
From: [identity profile] yaker.livejournal.com
Ссылки только битые. Что вообще со школьным сайтом такое? Безобразие...

Date: 2011-09-13 11:30 am (UTC)
From: [identity profile] stetzen.livejournal.com
Вот тут лежит http://homework.ucoz.ua/index/0-7

Школьный сайт да, полузаброшен, там за ним едва присматривают

Date: 2011-09-12 10:02 am (UTC)
From: [identity profile] mikser.livejournal.com
http://galyonkin.com/2011/06/24/programmirovanie-dlya-rebenka/

Date: 2011-09-12 10:04 am (UTC)
From: [identity profile] kray-zemli.livejournal.com
Кхе.. Я учился в 6 лет. По книжке "бейсик за скока-то часов". Кажется, она прилагалась к компьютеру. Ну а там и до ассемблера 8080 потихоньку дорос. Лет так к 9. А лет в 15 уже экспериментировал с приставкой SEGA.

Раньше компьютеры были проще. И изучить их было легче. Достаточно было умения читать документацию и мыслить по-программистски. И документация была. К компьютерам прилагались схемы. Даташиты на микросхемы можно было найти в журналах "Радио".

Программы тоже были простые. И изучать программистские трюки, вроде ШИМ на PC-Speaker'е, можно было просто отладчиком.

Потом появлялись более продвинутые компьютеры. На которые приходилось истерично разыскивать даташиты и документацию. Принтеры не справлялись её тиражировать.

Раньше "умение пользоваться компьютером" означало как минимум умение писать и понимать простейшие программы на бейсике. Даже просто чтобы загрузить программу с магнитофона, нужно было уметь всё правильно подключить и набрать в бейсике команду LOAD.

Раньше учились так. Как научить по-другому, я не знаю. В принципе, древнюю технику при желании вполне можно достать. Хотя бы тот же спектрум. Или начать с микроконтроллеров. Если у ребёнка есть способности -- то должно сработать.

Конечно, сейчас время фаст-фуда. В том числе и образовательного. Тут не знаю -- не моя стихия, сами выкручивайтесь.

Да и зачем засирать голову ребёнка хернёй?

Лучше учите его жизненно необходимым навыкам 21-го века. Как купить дешевле (например, тех же программистов) и продать дороже. Как жрать себе подобного и конкурировать с ним по Дарвину. Присмотритесь, именно носители этих навыков достигают успеха в современной России.

MS Small Basic

Date: 2011-09-12 10:13 am (UTC)
From: [identity profile] archaicos.livejournal.com
http://smallbasic.com/about.aspx

Date: 2011-09-12 10:40 am (UTC)
From: [identity profile] kray-zemli.livejournal.com
Я бы начал со смартфонов.

Date: 2011-09-12 10:51 am (UTC)
From: [identity profile] kray-zemli.livejournal.com
Как вариант. Накачать даташитов на какую-нибудь стиральную машинку. Лучше старую, без микропроцессора, со сложным командоаппаратом. Вместе разобрать и исследовать, как она работает.

Да даже с обычной микроволновки можно начать. Обратить его внимание на то, как она по программе выполняет определенные действия. Включает-выключает магнетрон. Отображает что-то на экране. и т.д.

Или с холодильника. Современные холодильники довольно мудрёные. Например, попробовать подействовать извне на датчики и посмотреть что будет.

Найти в интернете что-нибудь про вход в сервисное меню и показать.

Научить набирать номер ударами по телефону. ;)

Я понимаю, что опасно. Ребёнок потом "нахакерсвтует" так, что не рады будете. Но что делать. Опыт растёт пропорционально выведенному из строя оборудованию.

Потом можно перейти на простейшие конструкции на цифровых микросхемах-рассыпухе.

А когда ребёнок врубится, что такое нолики-единички, сумматоры-триггеры, тактирование и т.п., можно перехожить к логике программы, шинам адреса и данных. Ну и, наконец, к микроконтроллерам и ассемблеру.

Ведь это же круто -- сделать устройство и запрограммировать его. Да хотя бы мигалку светодиодами на велосипед. Пайки там по-минимуму. Собирать можно на макетке или даже на картоне. Главное выбирать правильную элементную базу. DIP-микросхемы, наверное, ещё делают.

Ну а компьютер можно изучать параллельно. Каких-нибудь ботов для Квейка писать.

Date: 2011-09-12 05:15 pm (UTC)
From: [identity profile] sam-buddy.livejournal.com
Вырастет не программист, а админ.

Date: 2011-09-12 08:32 pm (UTC)
From: [identity profile] haviras.livejournal.com
Вы так говорите, будто админ - это чтото плохое

Date: 2011-09-13 12:17 am (UTC)
From: [identity profile] sam-buddy.livejournal.com
Ничего против не имею. Тоже достойно. Лет в 25-ть станет начальником отдела IT.

Date: 2011-09-13 08:02 am (UTC)
From: [identity profile] haviras.livejournal.com
Ну я с 22 и что? Дурак дураком. Это плохо

Date: 2011-09-12 12:04 pm (UTC)
From: [identity profile] apashenko.livejournal.com
http://bankknig.com/knigi/59023-bejsik-yeto-prosto.html

Date: 2011-09-12 09:01 pm (UTC)
From: [identity profile] yaker.livejournal.com
Ааааааа!.. Моя первая книжка по программированию! Не возьмусь сейчас сказать, хороша она была или плоха, но для меня она стала первой ступенькой.

Date: 2011-09-13 05:06 am (UTC)
From: [identity profile] apashenko.livejournal.com
Хороша-хороша. Я компьютер живьём увидел года через три после того, как её прочитал — сразу начал писать.

Date: 2011-09-12 02:18 pm (UTC)
From: [identity profile] sir-i-alexis.livejournal.com
http://ru.wikipedia.org/wiki/LEGO_Mindstorms#.D0.9F.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D1.8B

Date: 2011-09-12 07:51 pm (UTC)
From: [identity profile] aterentiev.livejournal.com
для совсем начинающих (с 7-8 лет) могу посоветовать Lego WeDo - но уж жутко дорого... Mindstorms - логичное продолжение. Но это не только "чистое" программирование, это уже робототехника.

Date: 2011-09-12 04:00 pm (UTC)
From: [identity profile] nataein.livejournal.com
В сети очень много бесплатных (и платных) видеокурсов разного уровня. По ним стартовать гораздо легче, чем по книгам. На рутрекере есть целый раздел с видеокурсами: http://rutracker.org/forum/viewforum.php?f=1565
Выбирайте подходящий (по основам Java или С#, а ещё лучше C++) и пусть смотрит и пробует простые примеры из курса.
Затем ставите задачу, например создать игру, для начала подойдет текстовый квест. Затем простые игры с графикой, например Крестики-нолики или Lines (статичные) и Змейка или Тетрис (динамичные). По мере проб и ошибок он сам будет задавать вопросы.
Это один из самых эффективных способов обучения.

Date: 2011-09-19 11:25 am (UTC)
From: [identity profile] lynx-rousse.livejournal.com
Моя тётя детей в школе кенгурёнком учила:
http://school.dentro.ru/programming/roo.php