программирование для подростка
От: Antei США  
Дата: 10.07.17 03:35
Оценка:
Дочка (12ть лет) попросила научить кодить.
Посоветуйте, с чего начать?
Спасибо.
Отредактировано 10.07.2017 3:36 Antei . Предыдущая версия .
Re: программирование для подростка
От: LaptevVV Россия  
Дата: 10.07.17 04:20
Оценка: 9 (3) +1
A>Дочка (12ть лет) попросила научить кодить.
A>Посоветуйте, с чего начать?
Есть несколько книжек по Питону, специалоьно написанных для детей и родителей:
http://www.ozon.ru/context/detail/id/139934622/
http://www.ozon.ru/context/detail/id/140025249/
http://www.ozon.ru/context/detail/id/35202116/
Последняя написана папой совместно с сыном в процессе обучения.
Есть пара книжке по С++ — изучение на основе писания игрушек:
http://www.ozon.ru/context/detail/id/33558249/ — более свежая
Более старая — авторы Хенкеманс, Ли.
Она на Озоне уже только по заказу продается.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: программирование для подростка
От: Александр Кузнецов Россия  
Дата: 10.07.17 07:31
Оценка: 8 (3)
Здравствуйте, Antei, Вы писали:

A>Дочка (12ть лет) попросила научить кодить.

A>Посоветуйте, с чего начать?
A>Спасибо.

Корова не моя, подборку сделал и опубликовал в фейсбуке Дмитрий Карпов. В его сообщении указан возраст 6-9 лет, но как начальное обучение годится для любого возраста, плюс там много где есть и на более серьезный возраст задачки/курсы.

Собственно пост:

Налетай! Отличные новости, сел и собрал для родителей дюжину игр, которые учат ребенка 6-9 лет основам программирования и кодинга, есть пара хардкорных ветеранов игрового обучения и милые новинки. Шерим, лайкаем любовью, радуемся вместе. Платформы не указывал — все рабочее, все на пользу.

http://www.crayonphysics.com/ Игра просто шедевр, развивает у ребенка инженерное мышление, готовит к пониманию программирования поведения в физических условиях различных систем и физических движков, не столько про программирование, сколько про логику решения задач через итеративный процесс, что является важнейшей воспитательной дисциплиной.

http://code.org/ — приятный интерфейс и масса простых игр о базовых принципах работы языков программирования, вообще нужный, не коммерческий, образовательный проект для детей

http://lightbot.com/hocflash.html игра на старике Flash, но с приятной графикой и простым обучающим материалом по построению алгоритмов движения робота, вниманию к сценарию и воспитывающему пошаговую отладку поведения персонажа, развивает у школьника понимание принципиальных основ программируемого интерактивного взаимодействия.

http://codecombat.com/ — ветеран на рынке, развивающий игровое обучение настоящему коду Pythonчик, JavaScript, Lua, экзотику CoffeScript

http://www.playcodemonkey.com/ — простая игра в изучения принципов синтаксиса через игру с обезьянкой

http://www.ceebot.com/ceebot/index-e.php — старенький ветеран игрового обучения управлять персонажами используя команды C++

https://geo.itunes.apple.com/ru/app/cargo-bot/id519690804… — Простое приложение для дошкольников и их IPad

https://scratch.mit.edu/ — фактически классика для развития мышления будущего программиста, продуманная, с хорошим сообществом и массой примеров.

https://www.gethopscotch.com/ — обязательный инструмент на Ipad ребенка, приятный дизайн, базовое изучение основных понятий кодинга, вложенность, переменные, простые визуальные подсказки.

http://www.piktomir.ru/ стоит отметить и этот российский проект, причем разработанный по техзаданию РАН, но мне не нравится визуальный дизайн — достоинство приложения это русский язык, весьма спорное при изучении основ программирования в котором английский это 70% быстрого успеха. Но проект вызывает уважение и полезен для дошкольников и младших классов.

http://www.robozzle.com/ — приложение для составления алгоритма движения стрелки, обучает ребенка пониманию теории алгоритмов на практике

https://www.kodable.com/ — вероятно подойдет для малышей, которые смогут играя составлять простые сценарии поведения милых шарообразных персонажей, знакомясь с принципами интерактивного прототипирования поведения объекта.

UPD
для детей от 4х лет хороший вариант

https://itunes.apple.com/us/app/robo-logic/id300025550?mt=8
https://itunes.apple.com/…/lightbot-jr-4+-codin…/id858640629
https://itunes.apple.com/…/lightbot-programmin…/id924624572…

Естественно, это не все, есть и на приставки игры, есть еще десяток разных редакторов-игр, под разные платформы.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: программирование для подростка
От: Mihas  
Дата: 10.07.17 07:34
Оценка: 6 (2)
Здравствуйте, Antei, Вы писали:

A>Дочка (12ть лет) попросила научить кодить.

На моей памяти эта тема поднималась тут раза три. С ходу нашел только одну: http://rsdn.org/forum/life/6746391.1
Автор: Artem Korneev
Дата: 04.04.17


Ну, а если не прям кодить-кодить, а просто приобщить ребенка к умной технике, то всегда есть Lego Mindstom.
Re: программирование для подростка
От: MegaMozg Россия  
Дата: 10.07.17 16:02
Оценка: 3 (1)
Здравствуйте, Antei, Вы писали:

A>Дочка (12ть лет) попросила научить кодить.

A>Посоветуйте, с чего начать?
A>Спасибо.

я вот на уроках для 5-6 классов Scratch использую, потому как в этом возрасте визуализация процесса и результата важна
Re[2]: программирование для подростка
От: Pzz Россия http://pzz.livejournal.com/
Дата: 10.07.17 20:42
Оценка:
Здравствуйте, LaptevVV, Вы писали:

A>>Посоветуйте, с чего начать?

LVV>Есть несколько книжек по Питону, специалоьно написанных для детей и родителей:

Интересно, а если начать программировать на динамически типизованном языке, не будет ли нанесена неизлечимая травма нежной детской психике?
Re: программирование для подростка
От: velkin Россия  
Дата: 10.07.17 21:43
Оценка:
Здравствуйте, Antei, Вы писали:

A>Дочка (12ть лет) попросила научить кодить.

A>Посоветуйте, с чего начать?

С чего угодно, можно с этого Beginner Tutorial Intro, компиляторы и интерпретаторы брать отсюда.
Re[3]: программирование для подростка
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.07.17 05:08
Оценка: 2 (1) +2
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, LaptevVV, Вы писали:


A>>>Посоветуйте, с чего начать?

LVV>>Есть несколько книжек по Питону, специалоьно написанных для детей и родителей:

Pzz>Интересно, а если начать программировать на динамически типизованном языке, не будет ли нанесена неизлечимая травма нежной детской психике?


Насколько я вижу на реальных подростках — нет.

А вот что реально наносит — (disclaimer: речь только о процедурных языках) —

1. Слабые структуры данных. Для современных задач языки, где самое выдающееся в стандартном комплекте это массивы и структуры — это уже уровень ассемблера, не выше. Для нормальной работы обязательны как минимум словари.
Соответственно, Паскаль (без продвинутых версий типа последних Delphi) и Си — первые кандидаты на поход в лес.

2. Аналогично, отсутствие библиотеки стандартных алгоритмов и необходимость выполнять закат солнца вручную на каждый чих. Те же аутлаеры среди языков.

3. Чрезмерная низкоуровневость и/или громоздкость реализации высокоуровневости, в первую очередь для работы с динамической памятью, и прочим за пределами манипуляций с массивами. Случай C, C++, того же Паскаля. Не берусь 100% утверждать, что язык для первого обучения обязан быть с GC, но это достаточно близко к сути — следить за памятью в сколь-нибудь сложных действиях это примерно как заставлять обучаемого езде на машине одновременно готовить салат.

4. Слабая типизация. Это жуткий бич всяких Javascript, PHP, Perl — примеры общеизвестны (1, 2, 3 и т.п.) Но и в статически типизированных они встречаются. Это, например, проблемы типа "ну почему при делении 13 на 2 получается 6?" Объяснения, что для деления без отбрасывания остатка надо кого-то конвертировать в плавучее, понимаются не сразу. Этим особенно страдает весь клан потомков C, где сохраняют идиотское совмещение двух операций.

5. Проблемы типа "тут integer переменная переполнилась без предупреждения, и в результате бред".
Не надо говорить, что от динамичности это не зависит — сам знаю. Но почему-то в Python и Erlang одинаково "целые" это до 2**128, и можно не думать об ограниченности реализации.
Языки с исключениями на переполнении тут всяко лучше, но часто и это тяжело на первом уровне.
Стиль Си, когда от переполнения он может
Автор: netch80
Дата: 19.06.14
начать творить что угодно, категорически за пределами допустимого (грубо говоря, для начинающего компиляция без -fwrapv недопустима).

6. Любая громоздкость типа "вот тут надо записать 1000 волшебных слов, вы поймёте их смысл через пару лет, пока же просто учтите, что они нужны". Хотя тут палка о двух концах — если есть время и желание, можно, наоборот, дать поиграться с этими словами и посмотреть, что будет — если изменение в них приводит к интересным результатам, а не просто к syntax error.
Java, C# с громоздкими обёртками в виде класса и main() — хороший пример таких обёрток (хотя и не самых многословных).

7. Прочие странные нелогичности на ровном месте, нарушения POLA. Например, то, что в Pascal нельзя написать a<b and c=d, а надо (a<b) and (c=d), или в нём же запрет на ';' перед else. В нём же то, что сначала readln(x), а потом readln(f,x), где f — файл — это реально сбивает с толку.

8. Незакрытые структуры кода, необязательные скобки вокруг тел исполнений по if, while... — обязательные резко лучше, даже если много ситуаций по 1 оператору внутри. Тут в минус всем C-подобным и Паскалю. Синтаксис на отступах — как у Python — решает эти проблемы, хоть и другим методом. Пачка новых языков типа Go, Swift — решает явной обязательностью.

По сумме сказанного и по современному набору языков оптимальный вариант — Python. Где-то второй за ним, наверно, Java — ему в минус синтаксическая громоздкость и бо́льшая сложность втыкания в реальные (для подростка!!!) задачи. Хотя в моём случае игра под Android оказалась достаточной целью. C# где-то на том же уровне или чуть хуже. Следом Pascal в современных исполнениях — тут надо говорить о конкретном Delphi, конкретном Lazarus и т.п. — при возможности стерпеть пункты 7 и 8 (хотя линия Modula — Oberon была бы лучше). Остальные где-то за пределами нормального.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.