Здравствуйте, Amethyst, Вы писали:
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Только не питон!!
У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову.
Классика — паскаль.
Здравствуйте, Basil2, Вы писали:
B>Паскаль, конечно, академичнее чем Питон. Может быть, будущего чистого программиста на нем и стоит учить. Но с прикладной/мотивационной/времязатратной точек зрения, Питон выгоднее.
Питон разовьёт рвотный рефлекс у ребенка своими отступами, необходимостью за ними следить и требованием к пониманию что таб и пробел это разные штуки и в табе может быть разное количество пробелов в зависимости от редактора и так далее. Ни в коем случае не питон. Надо начинать с паскаля, если для бэйсика уже поздно.
И вообще начинать надо с понятия алгоритмов. Рисовать схемы, циклы, условия квадратиками и прочими ромбиками. Потом показать как это переводится в код, желательно на бэйсике — там есть нумерация строк, что наглядно и в фоне покажет ребенку линейное, последовательное выполнение кода машиной. Потом — паскаль с его наглядным объявлением переменных (тут уже можно обучать типам — int, float...) и наглядными блоками кода.
А дальше пускай сам решает какой язык выбрать для прикладного программирования. не стоит решать за ребенка.
Matrix has you...
Re[2]: Язык программирования для школьника 7-8 класса
Здравствуйте, mtnl, Вы писали:
A>>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл. M>В ветке почему-то не прозвучал JavaScript. M>Оно и наглядный результат и удобный инструментарий в наличии (Chrome Dev Tools, например, чтобы интерактивно), и вообще, веб — практичный, вездесущий и всё такое.
я не решусь своему ребёнку такое предлагать. Вначале надо выработать привычки к нормальным языкам и хорошим принципам, и только после этого спихивать в помойную яму конкретной странной реальности.
The God is real, unless declared integer.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
Qt SDK 4.x, среда разработки QtCreator, язык C++, компиляторы MinGW, GCC. Как пример их Demo из пакета. QGraphicsView и QGraphicsScene это прямой путь к созданию 2D игр, звук и музыка тоже программируется. Можно подключать сторонние 3D движки, я подключал OpenSceneGraph, OpenCASCADE и другие.
7-8 класс это уже солидный возраст и в нём изучать детские технологии "западло", а долго и муторно учиться изящному программированию на той же Java, которая, кстати, не рекламируется как быстрый движок для игр, слишком рано.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
Про паскаль — есть сайт с веб-средой разработки на паскале с синтаксисом от TP 7.0
Регулярно используем для школьных домашних заданий с ребенком.
Никогда не бойся браться делать то, что делать не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник...
Здравствуйте, Algebroid, Вы писали:
A>говорите питон настолько абстрактен или включает такие классы что всё так коротко? A>а турбо паскалю учить не пробовали?
Вообще-то меня самого начинали учить на Turbo Pascal'е. Сперва 5.5, потом 6.0, потом 7.0.
Паскаль, конечно, академичнее чем Питон. Может быть, будущего чистого программиста на нем и стоит учить. Но с прикладной/мотивационной/времязатратной точек зрения, Питон выгоднее.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[9]: Язык программирования для школьника 7-8 класса
Здравствуйте, Sheridan, Вы писали:
B>>Паскаль, конечно, академичнее чем Питон. Может быть, будущего чистого программиста на нем и стоит учить. Но с прикладной/мотивационной/времязатратной точек зрения, Питон выгоднее. S>Питон разовьёт рвотный рефлекс у ребенка своими отступами,
Наблюдаю за своими детьми на практике. Никакого рвотного рефлекса, его ты высосал из пальца.
Ребёнку гораздо важнее консистентность и общая предсказуемость (хотя бы на уровне POLA) логики языка. На недавнем занятии на кружке программирования и робототехники был случай: ученица этого кружка (12 лет, как раз возраст из темы данного треда) упорно не понимала, что от неё хотят, в следующем варианте: она выбрала задачу — из потока чисел отобрать чётные. Проверку чётности ей предложили — разделить число на 2, умножить обратно и сравнить результат. Ответом было недоумение "так всегда будет то же самое!" Пришлось разъяснять, что есть две разных операции деления — нацело с частным, и с вещественным результатом — и в Си (а писали на нём) выбор операции зависит от типов операндов, и у неё за счёт того, что все целые, будет первая (нацело с отбрасыванием остатка). И заметь — из верхней майнстримовой группы языков все плюют на эту проблему, обозначая обе операции одинаково, так что ребёнку приходится запоминать дурные особенности реализации вместо сосредоточения на задаче. В случае Питона такой проблемы нет (в 3-м, где эти операции гарантированно обозначаются разными знаками). И множество других тонких особенностей в нём сделано так, чтобы дать решать собственно задачу, а не бороться с особенностями платформы.
S> Надо начинать с паскаля, если для бэйсика уже поздно.
И в Паскале те же грабли. А уж как школьники пишут на нём... у моей старшей вначале половина непонимания написанного ею же была вызвана кривыми отступами — она их вообще не делала. Я садился за комп, форматировал код до читаемого состояния и только после этого можно было начинать его разбирать по смыслу. А потом ещё и любимые грабельки Паскаля и Си от отсутствия обязательности {} (begin/end) и необходимости следить за этим программисту самостоятельно. В Питоне такой проблемы нет в принципе, как и в более новых языках паскалевской группы, вроде Modula.
Только, к сожалению, в production пошли эти мерзкие особенности ранних недоработок (и даже в рождённом много лет позже C# всё это лайно в полный рост!)
S>И вообще начинать надо с понятия алгоритмов. Рисовать схемы, циклы, условия квадратиками и прочими ромбиками.
Ребёнку надо всё пощупать руками и получить немедленный ответ. Начинать с ромбиков на доске можно только тогда, когда они рисуются на виртуальной доске, которая сама из этого делает код. (На упомянутом выше кружке есть среды для Lego'вского Robo-C с такими возможностями.) Даже несколько уроков, где вначале скучные ромбики на доске, отобьют охоту у 9 из 10 потенциальных интересующихся. И это у 12-летних. А в меньшем возрасте надо вообще начинать с готовых шаблонов решений, позволяя выбрать и затем расширить по вкусу.
S> Потом показать как это переводится в код, желательно на бэйсике — там есть нумерация строк, что наглядно и в фоне покажет ребенку линейное, последовательное выполнение кода машиной. Потом — паскаль с его наглядным объявлением переменных (тут уже можно обучать типам — int, float...) и наглядными блоками кода.
Такое впечатление, что ты просто повторяешь свой персональный путь развития, без анализа и корректировки.
The God is real, unless declared integer.
Re[4]: Язык программирования для школьника 7-8 класса
Здравствуйте, Sheridan, Вы писали:
S>Вдогонку P>>И что там такого своеобразного. Ты, когда на С++ или С# пишешь, отступов не делаешь? А в Питоне их сделали обязательными к применению, всего-то и делов. S>И как объяснять ребенку блоки кода? "Вот смотри, тут два таба. И везде в следующих строчках где два таба это будет код в одном блоке. Да, вот тут три таба, но потом видишь — опять два таба, это вс еще лдин блок. Да и после четырех табов. Да, и тут после 20 строк в 3-5 табов возврат к двум табам...". Так? У ребенка мозг взорвется.
Правильно, объяснять надо иначе: "видишь, эти строки начинаются правее? значит, они под теми, которая ближайшая левее их". Всё. А так, как ты объясняешь — мозг взорвётся у всех вокруг, которые будут тебя слушать, а потом и у тебя — на генерации этого
S>Куда проще "Всё что между begin и end — блок кода, включая вложенные begin/end"
Повторю соседнее письмо — нет, ни капельки не проще. Потому что, чтобы увидеть, что же реально между begin и end, надо вначале правильно отформатировать весь код между ними и вокруг. А после этого разница между языками с явными begin/end и отступами практически уходит.
Зато твой подход ни капельки не объясняет проблему следующего варианта:
if x = 2 then
y = y + 1;
z = z + 1;
и вот объяснение того, что "надо понимать, что если после then не стоит явного begin, то надо понимать, что подразумевается, что begin и end как бы стоят вокруг единственного оператора" — точно взрывает мозг неподготовленному, и типичная реакция на это — начинать ставить begin-end вокруг любого, даже самого одиночного оператора. После чего приходим к вопросу, а какого лешего кривой синтаксис в основных современных языках.
И если ты считаешь себя разбирающимся в теме — проверь на практике, как адекватно объяснить ребёнку
1) что надо форматировать отступами всегда,
2) как логически следить в языках типа Си или Паскаля, как следить за тем, правильно используются или не используются begin-end,
причём как минимум один ребёнок должен быть не твой.
Результаты — в студию.
Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, Sheridan, Вы писали:
S>>Неочевидное и сложное для понимания деление на блоки. P>Не понимаю, что там такого сложного.
Как ни странно — я тоже не понимаю. И у тебя и у меня за плечами обширный опыт различных языков программирования. Вплоть до не-участия мозга в парсинге кода для понимания что там творится.
Но речь идет про обучение ребенка азам программирования.
S>>Речь не столько про отступы, сколько про понимание деления кода на блоки в условиях, циклах, функциях итд. P>А как ты собираешься демончтрировать ребенку деление кода на блоки, не оформляя эти блоки должным образом?
{}, begin\end как раз для разделения кода на блоки и предназначены. Это более наглядно, чем табы.
P>Раньше важность оформления кода студентам объясняли очень легко. Им просто давали почитать исходник на каком-нибудь PL/1, без всякого форматирования. На бумаге, разумеется. После чего у большинства студентов пропадали всякие сомнения. Даже, набивая код на перфокартах, не ленились делать отступы.
Во всех языках отступы исключительно для читаемости кода. И только в питоне они имеют значение для интерпритатора. Лишние сущности, в общем то, для обучения. Нужно вставлять дополнительные триггеры в лекции: "там где один таб — блок, там где два — другой блок, но в других языках это не блоки, это просто для красоты..." и так далее. Ну ненужно это.
Matrix has you...
Re[6]: Язык программирования для школьника 7-8 класса
Здравствуйте, Sheridan, Вы писали:
N>>Зато твой подход ни капельки не объясняет проблему следующего варианта:
N>>
N>> if x = 2 then
N>> y = y + 1;
N>> z = z + 1;
N>>
N>>и вот объяснение того, что "надо понимать, что если после then не стоит явного begin, ... S>Это и есть блок кода.
И как я это объясню ребёнку? "Это блок, хотя и выглядит как не блок"? Тогда это будет прямо противоречить описанию в языке.
Паскалевский, сишный, Java, C# синтаксис в этом смысле дурной на всю голову. Хорошее исправление сделали, например, во внутреннем языке SIP Express Router:
индентацию я тут не делал. Обрати внимание: финальная ';' обязательна и закрывает всю конструкцию, а между клаузами её нет. {} вокруг реализации условий обязательны, даже если один оператор.
Вот это — надёжный синтаксис, ценой крошечного увеличения количества символов.
Было бы такое — я бы агитировал за него. Но без него — синтаксис Питона лучше, нежели Pascal с компанией.
S> Он должен быть вписан в чтото более понятное, не просто отделен табами.
Кому должен?
S> После питона ребенок так и продолжит отделять табами и в паскале и в сях — в питоне же работало.
Это ты сказки в вакууме рассказываешь. А у меня практический опыт — две дочки, одна уже выпускница и целится на "информатику", вторая ходит в кружок программирования и робототехники.
Обе спокойно воспринимают Питон для обучения. А вот с Паскалем, как я уже рассказывал, пришлось явно учить тому, что отступы нужны для чтения кода, несмотря на питоновый опыт до того(!)
Здравствуйте, Sheridan, Вы писали:
S>Только не питон!!
Лучше давайте без категоричных заявлений.
S>У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову.
Использование отступов, это правильный и прививающий с самого начала хороший стиль оформления кода.
S>Классика — паскаль.
Здравствуйте, Cicero, Вы писали:
C>У меня тоже иногда возникают мысли. Но пока попыток правда не было. C>Ограничился покупкой книжки про работу на компьютере(автора не помню). C>Начиная с того из чего состоит, как устроен, что как называется. C>Ну дальше как работать в каких то программах.
Здравствуйте, Amethyst, Вы писали:
A>Коллеги, доброго дня.
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Здравствуйте, Amethyst, Вы писали:
V>>7-8 класс это уже солидный возраст и в нём изучать детские технологии "западло", а долго и муторно учиться изящному программированию на той же Java, которая, кстати, не рекламируется как быстрый движок для игр, слишком рано.
A>Тут важно сначала попробовать, чтобы человек понял -- это вообще его или нет. Так что видимо Питон или Лого. A>Касаемо С++, имхо этот язык ещё сложнее Java. Помню что у меня, несмотря на приличное знание чистого С, ушёл примерно год на нормальное освоение плюсов.
Делое не в языке, дело в мотивации. Чаще всего люди в этом возрасте хотят делать игры. А С++ под тот же Qt уже не требует высокого порога вхождения.
У меня в этом возрасте был недавно выпущенный Visual C++ 6.0, а продукты от Borland даже рассматривались как рабочий инструмент. Что касается мотивации, то можно отвести ребёнка на платные курсы программирования, в университет или частную контору. Пусть себе ходит обучается.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Basil2, Вы писали:
B>Здравствуйте, Algebroid, Вы писали:
A>>говорите питон настолько абстрактен или включает такие классы что всё так коротко? A>>а турбо паскалю учить не пробовали? B>Вообще-то меня самого начинали учить на Turbo Pascal'е. Сперва 5.5, потом 6.0, потом 7.0.
B>Паскаль, конечно, академичнее чем Питон. Может быть, будущего чистого программиста на нем и стоит учить. Но с прикладной/мотивационной/времязатратной точек зрения, Питон выгоднее.
моё дело предложить а вы уж набивайте свои шишки сами.
паскаль создавался специально как учебный язык и многие решения в нём очень изящны.
или учите сразу си.
Здравствуйте, Sheridan, Вы писали:
S>У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову.
Правильно, не python а IPython! Лучше всего обучать программированию в интерактивном режиме, и не терминале, а в браузере
Ну и все эти отступы в интерактивном режиме в ipython не очень актуальны.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Коллеги, доброго дня.
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
Ноутбук IPython открытый в барузере, графика, matplotlib и все такое. Не нужно париться с настройками редактора, не нужно заморачиваться с созданием проекта, файлами, сборкой.
Здравствуйте, Sheridan, Вы писали:
S>И как объяснять ребенку блоки кода?
Так ведь не синтаксис блока есть проблема. Надо просечь область видимости, не говоря уж о связи семантики с реализацией. Несравнимо дольше синтаксиса. С отступами же редакторы современных IDE справляются сами; даже выделяют блоки вертикальными пунктирами, если очень хочется.
Мне кажется вопрос про язык — вообще не вопрос для этого возраста. Вопрос — мотивация.
Если игрушки любит, то мб бота вместе написать. По-моему прикольное занятие и мотивация есть. Я в студенчестве писал — очень нравилось. Думаю, понравилось бы и в школьном.
Правда это занятие на двоих и при этом нельзя скатываться в то, чтобы самому делать.
Есть еще всякие пропедевтические программы, типа запрогай робота, чтобы он собрал яблочки по полю. Тоже лучше для школьника чем многое.
Здравствуйте, Alexey931, Вы писали:
A>Если с азов, то C надо. Я, кстати, упомянул . Народ, однако, за мотивацию опасается, и справедливо. В Питоне же дорога до осязаемого результата может быть очень короткой. И если синтаксис блоков — единственная проблема — уж как-нибудь... По мне, так в Питоне есть куда более кислотные концепции, чем эти блоки. Их можно оставить на потом и привыкнуть не понимать, да.
Я к тому всё это писал, что питон — не обучающий язык, не предназначен он для этого. Сначала алгоритмы, потом бэйсик, потом паскаль, потом всё остальное.
Matrix has you...
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, _NN_, Вы писали:
_NN>Мой опыт говорит о том, что обучить питону с отступами намного проще, чем объяснять людям про правильное расположение скобок и отступов. _NN>Но у каждого опыт свой
Вот насчет правильного расположения отступов как раз в точку — нифига нормально не объяснишь. А скобки можно располагать как хочется.
Matrix has you...
Re[3]: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Любопытно, вот прямо с чистого С ты и начинал учиться будучи школьником? Сильно если так. A>С другой стороны, если интерес был именно к железу ... то наверное вариантов немного.
С концептуально очень простой язык. А ООП, функциональщину и сборку мусора лучше не трогать пока не созреешь для понимания того, какие проблемы они решают.
Ce n'est que pour vous dire ce que je vous dis.
Re: Язык программирования для школьника 7-8 класса
Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения.
Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух.
Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re[2]: Язык программирования для школьника 7-8 класса
Здравствуйте, Basil2, Вы писали:
B>Простой B>Удобный B>Современный B>Прикладной
Спасибо, ещё один голос за Питон.
B>Имхо в таком возрасте ребенок уже может его освоить.
Было бы оч хорошо. Критически важно чтобы начало получаться, и был наглядный результат на выходе.
Лично я на питоне никогда не писал, так что придётся вначале изучить самому
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Коллеги, доброго дня.
A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Здравствуйте, Amethyst, Вы писали:
B>>Имхо в таком возрасте ребенок уже может его освоить.
A>Было бы оч хорошо. Критически важно чтобы начало получаться, и был наглядный результат на выходе. A>Лично я на питоне никогда не писал, так что придётся вначале изучить самому
Когда я обучал школьников на Питоне, первой программой они писали сетевой чат В принципе, там в полстраницы можно уложиться, на UDP по локалке.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, velkin, Вы писали:
V>Qt SDK 4.x, среда разработки QtCreator, язык C++, компиляторы MinGW, GCC. Как пример их Demo из пакета. QGraphicsView и QGraphicsScene это прямой путь к созданию 2D игр, звук и музыка тоже программируется. Можно подключать сторонние 3D движки, я подключал OpenSceneGraph, OpenCASCADE и другие.
V>7-8 класс это уже солидный возраст и в нём изучать детские технологии "западло", а долго и муторно учиться изящному программированию на той же Java, которая, кстати, не рекламируется как быстрый движок для игр, слишком рано.
Тут важно сначала попробовать, чтобы человек понял -- это вообще его или нет. Так что видимо Питон или Лого.
Касаемо С++, имхо этот язык ещё сложнее Java. Помню что у меня, несмотря на приличное знание чистого С, ушёл примерно год на нормальное освоение плюсов.
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re[3]: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>А есть личный опыт изучения Лого? Как он в сравнении с тем же Питоном, плюсы-минусы?
Я детям ставил MSWLogo и показывал, как в сроке ввода команд можно команды вводить и рисовать. Потом распечатал списочек команд.
Даже кое-что сами рисовали (однострочники с циклами), хотя и недолго.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Коллеги, доброго дня.
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Питон уже неоднократно советовали, и это, наверное, правильно. Вряд ли есть еще язык, на котором можно писать в любом стиле. Есть только одно сомнение: не вышло бы так, что через пару лет малому будет не объяснить, что такое указатель. Программисту опасно не чувствовать это дело. Может rust, если не C, попробовать?
Помню, видел документальное про пацана, плававшего с младенчества. Поразило, что и в десять лет он по-прежнему плавал по-собачьи.
Re[2]: Язык программирования для школьника 7-8 класса
A>Питон уже неоднократно советовали, и это, наверное, правильно. Вряд ли есть еще язык, на котором можно писать в любом стиле. Есть только одно сомнение: не вышло бы так, что через пару лет малому будет не объяснить, что такое указатель. Программисту опасно не чувствовать это дело. Может rust, если не C, попробовать?
Я всё-таки сторонник развития по схеме "от простого к сложному", сам когда-то с бейсика начинал. Единственное, выше по ветке velkin правильно заметил про мотивацию. Мой школьник компьютерными игрушками очень увлечён, и было бы здорово эту тягу направить в нужное русло.
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re[4]: Язык программирования для школьника 7-8 класса
Здравствуйте, velkin, Вы писали:
V>Делое не в языке, дело в мотивации. Чаще всего люди в этом возрасте хотят делать игры. А С++ под тот же Qt уже не требует высокого порога вхождения.
Насчёт мотивации согласен. Для геймдева мне ещё unity3d порекомендовали, как лёгкую для освоения вещь. Сценарии там можно писать на шарпе.
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Коллеги, доброго дня.
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Здравствуйте, Basil2, Вы писали:
B>Здравствуйте, Amethyst, Вы писали:
B>>>Имхо в таком возрасте ребенок уже может его освоить.
A>>Было бы оч хорошо. Критически важно чтобы начало получаться, и был наглядный результат на выходе. A>>Лично я на питоне никогда не писал, так что придётся вначале изучить самому
B>Когда я обучал школьников на Питоне, первой программой они писали сетевой чат В принципе, там в полстраницы можно уложиться, на UDP по локалке.
Здравствуйте, Algebroid, Вы писали:
B>>Когда я обучал школьников на Питоне, первой программой они писали сетевой чат В принципе, там в полстраницы можно уложиться, на UDP по локалке.
A>сетевой они без сервера не напишут.
Так сервер это еще меньше, чем пол-страницы, там даже сообщения вводнить не надо.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Здравствуйте, Basil2, Вы писали:
B>Так сервер это еще меньше, чем пол-страницы, там даже сообщения вводнить не надо.
говорите питон настолько абстрактен или включает такие классы что всё так коротко?
а турбо паскалю учить не пробовали?
начинать надо ведь с простого и потом переходить к сложному?
борланд сделал турбо паскаль фривэр можно легально бесплатно скачать. http://edn.embarcadero.com/article/20803
Здравствуйте, Sheridan, Вы писали:
S>Только не питон!! S>У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову.
И что там такого своеобразного. Ты, когда на С++ или С# пишешь, отступов не делаешь? А в Питоне их сделали обязательными к применению, всего-то и делов. Или ты из-за отступов в свое время выступил с этим лозунгом
Здравствуйте, Amethyst, Вы писали: A>Что посоветуете?
imho главное привить желание, а оно не появится при банальном обучении какому-либо языку,
нужно разбудить интерес ,неважно как — через книги или рассказы,
если обучать ,то обязательно должна быть хотя бы призрачная цель, которая по ходу обучения примет очертания
и осязаемость , и в ходе обучения должно прийти понимание как именно этой цели достичь,
только цели надо ставить более приземлённые, тренировать постепенно
Здравствуйте, Privalov, Вы писали:
P>И что там такого своеобразного. Ты, когда на С++ или С# пишешь, отступов не делаешь? А в Питоне их сделали обязательными к применению, всего-то и делов.
В том то и дело, что они исключительно обязательны.
S>>Классика — паскаль. P>В нем тоже принять писать с отступами. Иначе код просто не читается.
Но можно и без отступов. Более того в паскале исключительно наглядное разделение блоков кода с begin/end, нагляднее даже чем в C++ с его {}
Вдогонку P>И что там такого своеобразного. Ты, когда на С++ или С# пишешь, отступов не делаешь? А в Питоне их сделали обязательными к применению, всего-то и делов.
И как объяснять ребенку блоки кода? "Вот смотри, тут два таба. И везде в следующих строчках где два таба это будет код в одном блоке. Да, вот тут три таба, но потом видишь — опять два таба, это вс еще лдин блок. Да и после четырех табов. Да, и тут после 20 строк в 3-5 табов возврат к двум табам...". Так? У ребенка мозг взорвется.
Куда проще "Всё что между begin и end — блок кода, включая вложенные begin/end"
Здравствуйте, Lazin, Вы писали:
S>>У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову. L>Правильно, не python а IPython! Лучше всего обучать программированию в интерактивном режиме, и не терминале, а в браузере L>Ну и все эти отступы в интерактивном режиме в ipython не очень актуальны.
Худший из способов обучения. Нельзя объяснить таким способом ни алгоритм, ни блоки кода, ни линейность исполнения кода.
Приемлем только для разъяснения каждого конкретного оператора — как он работает и что делает.
Matrix has you...
Re[2]: Язык программирования для школьника 7-8 класса
L>Ноутбук IPython открытый в барузере, графика, matplotlib и все такое. Не нужно париться с настройками редактора, не нужно заморачиваться с созданием проекта, файлами, сборкой. http://www.rsdn.ru/forum/education/5547381.1
По моему для детей очень важно — чтобы было интересно. Врядли они будут грызть мануалы, чтобы понять как сделать то или другое. Язык программирования так уж важен для начального знакомства, главное — заинтересовать в самом процессе программирования. Когда это появится, то можно будет относительно легко перейти на другой
В какой системе, есть большое количество документатции типа пошаговых инструкций? Есть ли возможноть более менее легкого программирования для смартфонов? К примеру: как написать будильник для айфона? Что для этого надо? Есть места где описано типа: делай раз, делай 2, делай 3. Конечно такие места есть, но есть ли понятные для ребенка, что он сам мог сделать все?
Как вариант — платформа Arduino. Даже есть такие конструкторы как Arduino Starter Kit, где все необходимое: как само микропроцессорное устройство так и проводочки, платка, кнопочки, индикаторы а также подробные инструкции, как все соединить и программировать. После этого, он может и свои программы писать
Здравствуйте, Alexey931, Вы писали:
A>Здравствуйте, Sheridan, Вы писали:
S>>И как объяснять ребенку блоки кода?
A>Так ведь не синтаксис блока есть проблема. Надо просечь область видимости, не говоря уж о связи семантики с реализацией. Несравнимо дольше синтаксиса. С отступами же редакторы современных IDE справляются сами; даже выделяют блоки вертикальными пунктирами, если очень хочется.
Не обучай ребенка "программированию на питоне вот в этой ИДЕ", не стоит ограничивать рамки. Обучать надо не конкретным инструментам, а программированию в целом.
Давай определимся: тебе надо обучить ребенка программированию или питону? Если программированию — то алгоритмы, рисование схем алгоритмов, понятие программы, линейность исполнения кода итд.
Если питону — вперед.
Но сдается мне, пойдешь ты всетаки по озвученному мной пути и столкнешся с озвученными мной проблемами.
Мне надоело доказывать вам что обучение надо начинать с азов.
Здравствуйте, Sheridan, Вы писали:
S>Мне надоело доказывать вам что обучение надо начинать с азов.
Если с азов, то C надо. Я, кстати, упомянул . Народ, однако, за мотивацию опасается, и справедливо. В Питоне же дорога до осязаемого результата может быть очень короткой. И если синтаксис блоков — единственная проблема — уж как-нибудь... По мне, так в Питоне есть куда более кислотные концепции, чем эти блоки. Их можно оставить на потом и привыкнуть не понимать, да.
Здравствуйте, qqqqq, Вы писали:
Q>Как вариант — платформа Arduino. Даже есть такие конструкторы как Arduino Starter Kit, где все необходимое: как само микропроцессорное устройство так и проводочки, платка, кнопочки, индикаторы а также подробные инструкции, как все соединить и программировать. После этого, он может и свои программы писать
Интересная мысль.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
В ветке почему-то не прозвучал JavaScript.
Оно и наглядный результат и удобный инструментарий в наличии (Chrome Dev Tools, например, чтобы интерактивно), и вообще, веб — практичный, вездесущий и всё такое.
По поводу конкретного базового для учебы пособия подсказать сложно,
но если вдруг английский на бодром уровне — http://www.codecademy.com/tracks/javascript очень ок для старта, в т.ч., думаю, и в таком возрасте.
Здравствуйте, Sheridan, Вы писали:
S>Я к тому всё это писал, что питон — не обучающий язык, не предназначен он для этого. Сначала алгоритмы, потом бэйсик, потом паскаль, потом всё остальное.
Здравствуйте, Sheridan, Вы писали:
S>В том то и дело, что они исключительно обязательны.
Что в отступах плохого-то?
S>Но можно и без отступов. Более того в паскале исключительно наглядное разделение блоков кода с begin/end, нагляднее даже чем в C++ с его {}
Писать — можно. Читать — нет. Без отступов нормально читается код на Фортране, записанный в фиксированном формате.
Здравствуйте, Algebroid, Вы писали:
A>а турбо паскалю учить не пробовали? A>начинать надо ведь с простого и потом переходить к сложному? A>борланд сделал турбо паскаль фривэр можно легально бесплатно скачать. A>http://edn.embarcadero.com/article/20803
И как это будет работать в графике под современными Windows?
Здравствуйте, Algebroid, Вы писали:
B>>Когда я обучал школьников на Питоне, первой программой они писали сетевой чат В принципе, там в полстраницы можно уложиться, на UDP по локалке. A>сетевой они без сервера не напишут.
Здравствуйте, Alexey931, Вы писали:
S>>Я к тому всё это писал, что питон — не обучающий язык, не предназначен он для этого. Сначала алгоритмы, потом бэйсик, потом паскаль, потом всё остальное.
A>Не, питон лучше васика
Как язык программирования — да. Как язык программирования для обучения — нет.
Здравствуйте, Privalov, Вы писали:
S>>В том то и дело, что они исключительно обязательны. P>Что в отступах плохого-то?
Неочевидное и сложное для понимания деление на блоки.
S>>Но можно и без отступов. Более того в паскале исключительно наглядное разделение блоков кода с begin/end, нагляднее даже чем в C++ с его {} P>Писать — можно. Читать — нет. Без отступов нормально читается код на Фортране, записанный в фиксированном формате.
Речь не столько про отступы, сколько про понимание деления кода на блоки в условиях, циклах, функциях итд.
Matrix has you...
Re[5]: Язык программирования для школьника 7-8 класса
Здравствуйте, netch80, Вы писали:
N>Зато твой подход ни капельки не объясняет проблему следующего варианта:
N>
N> if x = 2 then
N> y = y + 1;
N> z = z + 1;
N>
N>и вот объяснение того, что "надо понимать, что если после then не стоит явного begin, ...
Это и есть блок кода. Он должен быть вписан в чтото более понятное, не просто отделен табами. После питона ребенок так и продолжит отделять табами и в паскале и в сях — в питоне же работало.
Здравствуйте, Sheridan, Вы писали:
S>Худший из способов обучения. Нельзя объяснить таким способом ни алгоритм, ни блоки кода, ни линейность исполнения кода. S>Приемлем только для разъяснения каждого конкретного оператора — как он работает и что делает.
Здравствуйте, Sheridan, Вы писали:
S>Неочевидное и сложное для понимания деление на блоки.
Не понимаю, что там такого сложного.
S>Речь не столько про отступы, сколько про понимание деления кода на блоки в условиях, циклах, функциях итд.
А как ты собираешься демончтрировать ребенку деление кода на блоки, не оформляя эти блоки должным образом?
Раньше важность оформления кода студентам объясняли очень легко. Им просто давали почитать исходник на каком-нибудь PL/1, без всякого форматирования. На бумаге, разумеется. После чего у большинства студентов пропадали всякие сомнения. Даже, набивая код на перфокартах, не ленились делать отступы.
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, Amethyst, Вы писали:
A>>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
S>Только не питон!! S>У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову. S>Классика — паскаль.
Здравствуйте, Sheridan, Вы писали:
S>>>Неочевидное и сложное для понимания деление на блоки. P>>Не понимаю, что там такого сложного. S>Как ни странно — я тоже не понимаю.
Так в чем проблема-то?
S>{}, begin\end как раз для разделения кода на блоки и предназначены. Это более наглядно, чем табы.
Да, конечно.
int push(){
int tmp=TOP,i,j,k;
x=S[TOP-S[TOP]+1];
for(i=1;i<=FO[AO[x]];i++){y=FO[AO[x]+i];
if(!test(y)){
k=max(y/8+1,S[TOP]-2);
S[++tmp]=y;
for(j=0;j<k;j++,S[++tmp]=0);
S[++tmp]=k+2;
for(j=1;j<=S[TOP]-2;j++) S[tmp-j]=S[TOP-j];
S[tmp-(y/8+1)]|=mask[y-(y/8)*8];
}
Здравствуйте, Sheridan, Вы писали:
S>Слабо, очень слабо. Надо более наглядно, например это:
[...]
Пример как нельзя более подходит для объяснения школьнику преимущества непонятно чего перед отступами. Тем более, что там нет ни {}, ни begin/end. Что ты этим примером сказать хотел в контексте обсуждения —
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, _NN_, Вы писали:
_NN>>Для вас придумали Python with braces: http://www.pythonb.org/
S>Вот это уже лучше. Этот питон можно для обучения использовать.
На самом деле, я с вами не полностью согласен.
Мой опыт говорит о том, что обучить питону с отступами намного проще, чем объяснять людям про правильное расположение скобок и отступов.
Но у каждого опыт свой
Здравствуйте, Privalov, Вы писали:
P>Пример как нельзя более подходит для объяснения школьнику преимущества непонятно чего перед отступами. Тем более, что там нет ни {}, ни begin/end. Что ты этим примером сказать хотел в контексте обсуждения —
Пример как нельзя более подходит на самом деле доведения до абсурда чего бы то ни было.
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, _NN_, Вы писали:
_NN>>Мой опыт говорит о том, что обучить питону с отступами намного проще, чем объяснять людям про правильное расположение скобок и отступов. _NN>>Но у каждого опыт свой
S>Вот насчет правильного расположения отступов как раз в точку — нифига нормально не объяснишь. А скобки можно располагать как хочется.
А чего там объяснять нажал "таб" — открыл блок.
Вот как раз скобки нужно не забыть закрыть.
А если где-то забыл, то пол дня новички искать будут.
Здравствуйте, Privalov, Вы писали:
S>>Пример как нельзя более подходит на самом деле доведения до абсурда чего бы то ни было. P>И что ты этим примером довел до абсурда?
Я показал как правильно доводить до абсурда. У тебя не очень получилось
S>>Вот насчет правильного расположения отступов как раз в точку — нифига нормально не объяснишь. А скобки можно располагать как хочется.
_NN>А чего там объяснять нажал "таб" — открыл блок.
"Ох, две страницы ветвящегося кода класса... В каком же я блоке?..."
Даже mcedit подсвечивает смежную скобку с ц++, если поставить курсор на скобку.
Питон — только глазами отслеживать.
_NN>Вот как раз скобки нужно не забыть закрыть. _NN>А если где-то забыл, то пол дня новички искать будут.
Не будут. Компилятор быстро укажет на ошибку.
Matrix has you...
Re[2]: Язык программирования для школьника 7-8 класса
Здравствуйте, Alexey931, Вы писали:
A>Питон уже неоднократно советовали, и это, наверное, правильно. Вряд ли есть еще язык, на котором можно писать в любом стиле.
В питоне с его отступами можно писать только в питон-стиле.
Здравствуйте, Sheridan, Вы писали:
S>Ну да, очень удобно писать код в консоли.
Зачем в консоли? Еще раз — интерактивный ipython ноутбук в браузере, позволяет редактировать большие фрагменты кода, как в редакторе. Я даже ссылку с примером приложил, ты ее даже открыть не потрудился, видимо.
Здравствуйте, Don Reba, Вы писали:
DR>Pure C — простой, близкий к железу язык. Сам в этом возрасте с него начинал. Чай, не детский сад уже, по картинкам учиться.
Любопытно, вот прямо с чистого С ты и начинал учиться будучи школьником? Сильно если так.
С другой стороны, если интерес был именно к железу ... то наверное вариантов немного.
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Re[3]: Язык программирования для школьника 7-8 класса
Здравствуйте, Sheridan, Вы писали:
A>>Питон уже неоднократно советовали, и это, наверное, правильно. Вряд ли есть еще язык, на котором можно писать в любом стиле. S>В питоне с его отступами можно писать только в питон-стиле.
Конечно же, имеются в виду императивный, функциональный и ООП стили.
Re[2]: Язык программирования для школьника 7-8 класса
Здравствуйте, VVP, Вы писали:
VVP>Про паскаль — есть сайт с веб-средой разработки на паскале с синтаксисом от TP 7.0 VVP>Регулярно используем для школьных домашних заданий с ребенком.
Спасибо. А какой смысл "вебности" паскаля?
Как-то привычнее работать с установленным на компе компилятором/IDE
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Здравствуйте, Nuseraro, Вы писали:
N>Мне кажется вопрос про язык — вообще не вопрос для этого возраста. Вопрос — мотивация.
Вот я с подачи velkin'а всё больше об этом думаю. Есть тут большой резон.
N>Если игрушки любит, то мб бота вместе написать. По-моему прикольное занятие и мотивация есть. Я в студенчестве писал — очень нравилось. Думаю, понравилось бы и в школьном.
Да, что-то такое. Я unity3d сыну показал, говорит что интересно. Теперь надо мне самому с этой штукой разобраться.
А язык для скрипта-сценария там можно выбрать: C#, JS, Boo (разновидность Питона, как я понял).
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Здравствуйте, Sheridan, Вы писали:
S>Я показал как правильно доводить до абсурда. У тебя не очень получилось
Не очень получилось, потому что я и не пытался ничего довести до абсурда. Ты сказал, что скобки или begin/end нагляднее отступов, я это оспорил. Взял первое, что попало под руку на говнокоде.ру и привел в качестве опровержения твоему аргументу. Ты же сразу съехал в сторону.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения.
Поделюсь своим опытом, как вариант к размышлению. Я часто использую такой подход. Ставится какая-нибудь интересная задача, и для решения ее необходимо что-либо запрограммировать. Это и будет настоящей мотивацией к изучению программирования. Например, мы игрались с Arduino и там есть довольно простой язык со своей средой программирования, сильно урезанная версия C/C++. Буквально за пару дней, ребята учились программировать простые алгоритмы на этом языке.
Тут правда есть такая проблема, что научиться программировать, само по себе является довольно обширной и сложной задачей.
A>Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух.
Да, я думаю начинать с языка типа Java, это плохая идея для ученика 7-8 класса. Тут лучше подойдет Python. Язык довольно прост, код на нем выглядит как псевдокод. На базе него, можно обучить началам алгоритмизации, основным структурам данных. Можно даже опционально рассмотреть ФП и ООП. Для него есть куча готовых библиотек практически для всего (веб, роботы, графика итд). Много хороших книг и туториалов.
Есть язык еще проще, Scheme. Мне кажется, языка проще не придумаешь. Есть отличная среда Racket. Есть очень качественные учебники, типа SICP & HTDP.
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Сложно так, что-то на обум советовать. Очень много зависит от самого ребенка. Есть такие, которым можно сразу C++ давать и они за счет природной любознательности, упорства и трудолюбия смогут его осилить без проблем.
Re[3]: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали: VVP>>Про паскаль — есть сайт с веб-средой разработки на паскале с синтаксисом от TP 7.0
A>Спасибо. А какой смысл "вебности" паскаля?
В первую очередь доступность везде, включая любимый ребенкой планшет или мой смарт, с которого в дороге можно подсказать ребенку тот или иной код, когда она сама делает домашку.
A>Как-то привычнее работать с установленным на компе компилятором/IDE
Досовость турбо-паскаля и проблемы с кодировками текста, его принципиальная нелицензируемость, необходимость развернуть среду на нескольких вычислительных устройствах.
Вот тут какое дело с лицензируемостью. У них в школе установлен BP/TP 7.0, который не продается и не лицензируется уже лет двадцать, а у них школе всего 10 лет. Де-факто найти турбо-паскаль можно без проблем, но вот его нелицензионность доставляет моральные неудобства.
Вкрячиваться во фрипаскаль, лазаурус и прочие современные дельфы не очень хочется, поскольку ребенка не страдает тягой к программированию.
А тут оказывается такая штука на вебе есть — код всяко получается 100% совместимый со школьной средой, какой бы она не была, а универсальность среды получается недостижимой. Возможностей же этой штуки оказывается достаточно даже для неплохих проектов.
Никогда не бойся браться делать то, что делать не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник...
Здравствуйте, iLikeCookies, Вы писали:
S>>У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову. LC>Использование отступов, это правильный и прививающий с самого начала хороший стиль оформления кода.
Оформление кода не должно влиять на работу кода. Это должно быть ясно.
S>>Классика — паскаль. LC>Паскаль — мертв.
Как язык для разработки — мертв. Как язык для обучения — живее всех живых, для того и разрабатывался.
Здравствуйте, Privalov, Вы писали:
S>>Я показал как правильно доводить до абсурда. У тебя не очень получилось P>Не очень получилось, потому что я и не пытался ничего довести до абсурда. Ты сказал, что скобки или begin/end нагляднее отступов, я это оспорил. Взял первое, что попало под руку на говнокоде.ру и привел в качестве опровержения твоему аргументу.
Иными словами — довёл до абсурда мнение "скобки не влияют на читабельность". Но у тебя получилось это хуже, чем у меня
Matrix has you...
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Коллеги, доброго дня.
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Здравствуйте, Sheridan, Вы писали:
S>>>У него исключительно своеобразные правила написания кода, в частности все зациклено на использовании отступов. Не ломай ребенку голову. LC>>Использование отступов, это правильный и прививающий с самого начала хороший стиль оформления кода. S>Оформление кода не должно влиять на работу кода. Это должно быть ясно.
Давайте не балансировать скобки, не закрывать кавычки, делать ошибки в именах переменных — программа всё равно должна работать. Это твой тезис, только чуть-чуть утрированный.
Если смотреть шире, чем только на Си и Паскаль, можно увидеть множество примеров ещё менее паскалеподобных решений — и всё равно обоснованных.
S>>>Классика — паскаль. LC>>Паскаль — мертв. S>Как язык для разработки — мертв. Как язык для обучения — живее всех живых, для того и разрабатывался.
Даже в пределах паскалевской группы лучше учить на Модуле, чем на Паскале. Паскаль только потому закрепился, что за железный занавес не проникло альтернативы.
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, _NN_, Вы писали:
S>>>Вот насчет правильного расположения отступов как раз в точку — нифига нормально не объяснишь. А скобки можно располагать как хочется.
_NN>>А чего там объяснять нажал "таб" — открыл блок. S>"Ох, две страницы ветвящегося кода класса... В каком же я блоке?..."
Это справедливо и для скобок:
{
{
100 строк кода
- в каком я блоке ?
Поэтому даже со скобками отбивают отступы
{
{
// я здесь - 2 отступа скобок
S>Даже mcedit подсвечивает смежную скобку с ц++, если поставить курсор на скобку. S>Питон — только глазами отслеживать.
Как и любимый редактор подсвечивает скобки, также он может и подсвечивать отступы.
Вот пожалуйста:
И аналог для Pyhon:
_NN>>Вот как раз скобки нужно не забыть закрыть. _NN>>А если где-то забыл, то пол дня новички искать будут. S>Не будут. Компилятор быстро укажет на ошибку.
На ошибку то укажет, но искать ее бывает еще то удовольствие.
Здравствуйте, Sheridan, Вы писали:
S>Иными словами — довёл до абсурда мнение "скобки не влияют на читабельность". Но у тебя получилось это хуже, чем у меня
Помнится, раньше в некоторых обсуждениях ты просто ставил эксперимент, который сразу расставлял все по местам. Почему бы тебе не сделать то же самое здесь? Покажи код, не доведенный, по твоему мнению до абсурда, без отступов, но читабельный.
Здравствуйте, Amethyst, Вы писали:
A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
У меня тоже иногда возникают мысли. Но пока попыток правда не было.
Ограничился покупкой книжки про работу на компьютере(автора не помню).
Начиная с того из чего состоит, как устроен, что как называется.
Ну дальше как работать в каких то программах.
Здравствуйте, Privalov, Вы писали:
P>Помнится, раньше в некоторых обсуждениях ты просто ставил эксперимент, который сразу расставлял все по местам. Почему бы тебе не сделать то же самое здесь? Покажи код, не доведенный, по твоему мнению до абсурда, без отступов, но читабельный.
Ты опять пытаешься довести до абсурда. Я не утверждал что отступы — зло. Я утверждаю что отступы нужны для оформления кода, но никак не для управления работой программы.
Если так нравится программировать в языке, где отступы и пробелы имеют значение, то почему не программируете на whitespace?
Matrix has you...
Re[3]: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Я всё-таки сторонник развития по схеме "от простого к сложному", сам когда-то с бейсика начинал. Единственное, выше по ветке velkin правильно заметил про мотивацию. Мой школьник компьютерными игрушками очень увлечён, и было бы здорово эту тягу направить в нужное русло.
Пусть возьмет игровой движок Unity (бесплатной версии за глаза) и пробует что-нибудь делать сам. Писать там можно на стандартном C#, Boo (аналог Питона, но его мало кто использует) и UnityScript (что-то типа C# с синтаксисом JavaScript).
Я тут познакомился с языком Wolfram — http://www.youtube.com/watch?v=gPVhz1cPA70. Честно говоря, впечатлён. Всегда мечтал о большей базе знаний и экспертной системе уже интегрированных в язык. И, на первый взгляд, начать использовать довольно легко. Даже школьнику. А главное — можно моментально получать впечатляющие результаты.
Но с другой стороны, научит ли это программировать? Не уверен.
Я начинал с машинных кодов примерно в таком же возрасте. Было захватывающе интересно!
A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
Вот, попалась книжка: Марк Льюис, "Введение в искусство программирования с использованием языка Scala, 2013. Полный английский оригинал ищется и скачивается. Перевода на русский язык пока не обнаружил. Книжка, однако, вполне себе для начинающих, вплоть до двоичной арифметики. Очень, очень хорошо и полезно. Но английский пока.
Было бы любопытно узнать, как реализуется сабжевый проект .
Re[2]: Язык программирования для школьника 7-8 класса
Здравствуйте, Alexey931, Вы писали:
A>Питон уже неоднократно советовали, и это, наверное, правильно. Вряд ли есть еще язык, на котором можно писать в любом стиле. Есть только одно сомнение: не вышло бы так, что через пару лет малому будет не объяснить, что такое указатель. Программисту опасно не чувствовать это дело. Может rust, если не C, попробовать?
А что, в Питоне нет указателей? Не чистых естественно, к которым там можно 1 прибавлять? Мне вот кажется что все таки есть там такая концепция. Ибо я вообще не знаю языка без указателей, даже в ужаснейшем бейсике есть зачатки на указатели в виде массивов. А если концепция есть — какие проблемы?
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Думаю в таком возрасте язык не главное, главное мотивация. Чем увлекается ребенок? Например у меня ребенок (чуть помладше 7-8 класса) очень любит Minecraft. Он уже научился запускать сервер, ставить туда свои моды. В общем кастомизировать. Вот думаю следующим логическим шагом будет научить его писать свои простые моды для игры (там Java).
Как вариант есть ещё роботы Лего, которые можно программировать. Там очень простой язык диаграм. Типа ехать вперед, повернуться, записать звук, проиграть мелодию и т.д. Тоже как мне кажется достойный старт.
То есть в целом мне кажется важнее мотивировать ребенка на самостоятельное изучение нежели учить какой то абстрактный питон или java script. Если у него будет мотивация он сам научится и гуглом пользоваться, и по туториалам что-то делать сам.
Здравствуйте, Cicero, Вы писали:
C>У меня тоже иногда возникают мысли. Но пока попыток правда не было. C>Ограничился покупкой книжки про работу на компьютере(автора не помню). C>Начиная с того из чего состоит, как устроен, что как называется. C>Ну дальше как работать в каких то программах.
Здравствуйте, netch80, Вы писали:
N>Ребёнку гораздо важнее консистентность и общая предсказуемость (хотя бы на уровне POLA) логики языка. На недавнем занятии на кружке программирования и робототехники был случай: ученица этого кружка (12 лет, как раз возраст из темы данного треда) упорно не понимала, что от неё хотят, в следующем варианте: она выбрала задачу — из потока чисел отобрать чётные. Проверку чётности ей предложили — разделить число на 2, умножить обратно и сравнить результат. Ответом было недоумение "так всегда будет то же самое!" Пришлось разъяснять, что есть две разных операции деления — нацело с частным, и с вещественным результатом — и в Си (а писали на нём) выбор операции зависит от типов операндов, и у неё за счёт того, что все целые, будет первая (нацело с отбрасыванием остатка). И заметь — из верхней майнстримовой группы языков все плюют на эту проблему, обозначая обе операции одинаково, так что ребёнку приходится запоминать дурные особенности реализации вместо сосредоточения на задаче. В случае Питона такой проблемы нет (в 3-м, где эти операции гарантированно обозначаются разными знаками). И множество других тонких особенностей в нём сделано так, чтобы дать решать собственно задачу, а не бороться с особенностями платформы.
Странная проверка чётности. Взять остаток не проще ли было, чем выносить мозг нарушением обратимости? Если только у препода не было цели показать, что в мире есть два разных деления.
S>> Надо начинать с паскаля, если для бэйсика уже поздно.
N>И в Паскале те же грабли.
/ против div
S>> А уж как школьники пишут на нём... у моей старшей вначале половина непонимания написанного ею же была вызвана кривыми отступами — она их вообще не делала. Я садился за комп, форматировал код до читаемого состояния и только после этого можно было начинать его разбирать по смыслу. А потом ещё и любимые грабельки Паскаля и Си от отсутствия обязательности {} (begin/end) и необходимости следить за этим программисту самостоятельно. В Питоне такой проблемы нет в принципе, как и в более новых языках паскалевской группы, вроде Modula. N>Только, к сожалению, в production пошли эти мерзкие особенности ранних недоработок (и даже в рождённом много лет позже C# всё это лайно в полный рост!)
S>>И вообще начинать надо с понятия алгоритмов. Рисовать схемы, циклы, условия квадратиками и прочими ромбиками.
N>Ребёнку надо всё пощупать руками и получить немедленный ответ. Начинать с ромбиков на доске можно только тогда, когда они рисуются на виртуальной доске, которая сама из этого делает код. (На упомянутом выше кружке есть среды для Lego'вского Robo-C с такими возможностями.) Даже несколько уроков, где вначале скучные ромбики на доске, отобьют охоту у 9 из 10 потенциальных интересующихся. И это у 12-летних. А в меньшем возрасте надо вообще начинать с готовых шаблонов решений, позволяя выбрать и затем расширить по вкусу.
Если немедленно пощупать, то, конечно же, LOGO
S>> Потом показать как это переводится в код, желательно на бэйсике — там есть нумерация строк, что наглядно и в фоне покажет ребенку линейное, последовательное выполнение кода машиной. Потом — паскаль с его наглядным объявлением переменных (тут уже можно обучать типам — int, float...) и наглядными блоками кода.
N>Такое впечатление, что ты просто повторяешь свой персональный путь развития, без анализа и корректировки.
Памяти всех студентов, искалеченных оппонентами Дейкстры
Перекуём баги на фичи!
Re[4]: Язык программирования для школьника 7-8 класса
Здравствуйте, Хреннос, Вы писали:
A>>А есть личный опыт изучения Лого? Как он в сравнении с тем же Питоном, плюсы-минусы?
Х>Я детям ставил MSWLogo и показывал, как в сроке ввода команд можно команды вводить и рисовать. Потом распечатал списочек команд. Х>Даже кое-что сами рисовали (однострочники с циклами), хотя и недолго.
В лого самый кайф — рисовать фракталы. Хотя сам язык так себе.
Перекуём баги на фичи!
Re[3]: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Любопытно, вот прямо с чистого С ты и начинал учиться будучи школьником? Сильно если так.
Лично я начинал с МК-52. Потом изучал BASIC по книгам без компьютера. А в 9-м классе в школе начал преподаваться BASIC (Yamaha MSX-2), одновременно пошел на факультатив по C, где мы сидели на 286-х (Turbo C 1.5). Ну и программировал где были свободные машинки
A>С другой стороны, если интерес был именно к железу ... то наверное вариантов немного.
Тогда был на дворе 1991-й год, так что вариантов вообще было не много.
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Коллеги, доброго дня.
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Была попытка разобраться с Java, однако это оказалось тяжеловато и, как следствие, интерес у человека потух. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.
Дельфи = Паскаль + RAD => легко в изучении, быстрый практический результат.
Здравствуйте, Sheridan, Вы писали:
S>Оформление кода не должно влиять на работу кода. Это должно быть ясно.
Для профессионалов может быть и не должно. А вот для новичков — должно. Ибо заставить форматировать нормально — задача еще та. Даже опытный если не привык форматировать, хрен его научишь. Только валидатор если ставить, чтоб билд падал в случае нессответствия правил оформления кода.
S>Как язык для разработки — мертв. Как язык для обучения — живее всех живых, для того и разрабатывался.
Он живее всех живых только в России. Ибо весьма многие преподаватели упорно не хотят учиться, и считают, что за 20 лет ничего в индустрии не поменялось. В буржундиях уже даже от Lisp подобных языков начинают уходить, даже курс SICP читать стали на примере Python. Издеваться сейчас паскалем над программистами — это сразу же портить им стиль. Издеваться паскалем просто над технарями, которые профессиональными программистами быть не должны, но базовые навыки программирования иметь обязаны — это тратить понапрасну их время.
Лет 30 назад Паскаль был весьма неплохим языком для обучения школьников и технарей. Сейчас для обучения и развития навыков программирования появились гораздо более подходящие для этого языки. Сейчас стандарт для обучения — это Питон, а не Паскаль. Как мультипарадигменный язык с очень хорошим синтаксисом, приучающим сразу к хорошему стилю, при этом являющимся не только учебным языком, но и вполне промышленным. Для совсем маленьких есть другие языки, неплохо подходящими для обучения, но не являющимися промышленными. Стоит ли на них тратить время — хз. Как по мне, программировать на них сложнее, чем на нормальных, слишком много ограничений, графический стиль, а не привычный текстовый. Но лет эдак для восьми — весьма хороший выбор. Ну в 7-8 класс, тут лучше, чем Питон придумать трудно. В 7 классе мозгов достаточно, если есть склонности то и Хаскель осилишь без проблем.
Здравствуйте, Sheridan, Вы писали:
S>Я к тому всё это писал, что питон — не обучающий язык, не предназначен он для этого. Сначала алгоритмы, потом бэйсик, потом паскаль, потом всё остальное.
Какой бейсик? Какой паскаль? Сейчас про тот бейсик даже вспоминать не хочется, я на него еще в 90-е годы плевался, причем в начале 90-х. Программы на бейсике вообще читать невозможно. Вспоминаю всякие номера строк с ужасом. А современный бейсик, даже уровня VB — это совсем не бейсик, там вообще нет ничего общего с эталонным бейсиком.
Эти бейсики и паскали сломали жизнь очень многим людям, навсегда привив отвращение к программированию. А многие из тех, кому не сломали, так и не смогли после него переучиться на нормальный стиль программирования. Как привыкли с самого начала в спагетти стиле хреначить, так до сих пор и хреначат. Ты еще блок-схемы вспомни, это покруче бейсика будет.
Просто на статистику посмотри. Большинство тех, кого учили сначала алгоритмам, потом бейсику, потом паскалю — они в результате вообще боятся техники сейчас. 99 процентов не смогли научить таким образом ничего, попутно привив боязнь техники. Аналогичная ситуация со школьной литературой — после школьного обучения большинство взрослых вообще не читают ничего кроме желтой прессы до конца жизни.
Соответственно если что то не дает результата, а особенно если что то дает полностью обратный результат — надо методику обучения менять, а не говорить, что все вокруг тупые. А методика обучения с алгоритмами, бейсиками и паскалями неудачная однозначно.
Re[11]: Язык программирования для школьника 7-8 класса
Кстати, сын сейчас в 8 классе как раз, в школе у них последний год началось программирование.
Кто догадается на чем? Старый добрый Borland Pascal запускаемый из под DosBox.
Причем школа не абы какая, а питерская гимназия входящая в 10ку рейтинга по городу.
Re[2]: Язык программирования для школьника 7-8 класса
Здравствуйте, DmitrySpb79, Вы писали:
DS>Кстати, сын сейчас в 8 классе как раз, в школе у них последний год началось программирование. DS>Кто догадается на чем? Старый добрый Borland Pascal запускаемый из под DosBox.
DS>Причем школа не абы какая, а питерская гимназия входящая в 10ку рейтинга по городу.
Это очень хорошо.
Я в свое время начинал со школьного алгоритмического языка.
Программы писали в тетради.
Турбо Паскаль потом осваивается на раз.
А вот Бейсик как то не очень был понятен.
O tempora! O mores!
Re[3]: Язык программирования для школьника 7-8 класса
Здравствуйте, Cicero, Вы писали:
C>Это очень хорошо. C>Я в свое время начинал со школьного алгоритмического языка. C>Программы писали в тетради.
Что хорошего? Когда ты начинал, там компы были черти какой редкостью. И естественно при отсутствии компа тетрадь рулит. Я в свое время тоже до черта на бумажке напрограммировал. Черти сколько времени кодишь в тетради (которая очень быстро кончается), а потом на компе вбиваешь и отлаживаешь. Вот только какой сейчас год? В наше время турбо паскаль выглядит издевательством. Это было нормально еще 15 лет назад, но с тех пор много воды утекло. Даже VBA в офисе — и то является более походящим языком для обучения, чем турбо паскаль запускаемый в DosBox.
Более того, по современным меркам паскаль — это язык слишком низкого уровня. Непонятно какого черта нужен этот низкий уровень школьникам. Ведь научат паскалю на свою голову — потом хрен отучишь переменные выделять как можно ближе к использованию. Я конечно согласен, что паскаль по сравнению с бейсиком — это просто суперязык с супервозможностями, но с тех пор появилось довольно большое количество гораздо более удобных языков. Тот же питон для обучения — супер. И синтаксис приятный, и выразительный при необходимости, и библиотек до черта. И основные структуры данных встроены в язык.
Re: Язык программирования для школьника 7-8 класса