Re[5]: Вперед
От: Sheridan Россия  
Дата: 06.04.14 18:24
Оценка:
Здравствуйте, Alexey931, Вы писали:

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


S>>И как объяснять ребенку блоки кода?


A>Так ведь не синтаксис блока есть проблема. Надо просечь область видимости, не говоря уж о связи семантики с реализацией. Несравнимо дольше синтаксиса. С отступами же редакторы современных IDE справляются сами; даже выделяют блоки вертикальными пунктирами, если очень хочется.

Не обучай ребенка "программированию на питоне вот в этой ИДЕ", не стоит ограничивать рамки. Обучать надо не конкретным инструментам, а программированию в целом.

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

Мне надоело доказывать вам что обучение надо начинать с азов.
Matrix has you...
Re[6]: Вперед
От: Alexey931  
Дата: 07.04.14 01:49
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Мне надоело доказывать вам что обучение надо начинать с азов.


Если с азов, то C надо. Я, кстати, упомянул . Народ, однако, за мотивацию опасается, и справедливо. В Питоне же дорога до осязаемого результата может быть очень короткой. И если синтаксис блоков — единственная проблема — уж как-нибудь... По мне, так в Питоне есть куда более кислотные концепции, чем эти блоки. Их можно оставить на потом и привыкнуть не понимать, да.
Re[2]: Arduino?
От: Alexey931  
Дата: 07.04.14 02:16
Оценка:
Здравствуйте, qqqqq, Вы писали:

Q>Как вариант — платформа Arduino. Даже есть такие конструкторы как Arduino Starter Kit, где все необходимое: как само микропроцессорное устройство так и проводочки, платка, кнопочки, индикаторы а также подробные инструкции, как все соединить и программировать. После этого, он может и свои программы писать


Интересная мысль.
Re: А напишите бота мб?
От: Nuseraro Россия  
Дата: 07.04.14 03:39
Оценка: +1
Мне кажется вопрос про язык — вообще не вопрос для этого возраста. Вопрос — мотивация.

Если игрушки любит, то мб бота вместе написать. По-моему прикольное занятие и мотивация есть. Я в студенчестве писал — очень нравилось. Думаю, понравилось бы и в школьном.

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

Есть еще всякие пропедевтические программы, типа запрогай робота, чтобы он собрал яблочки по полю. Тоже лучше для школьника чем многое.
Homo Guglens
Re: Язык программирования для школьника 7-8 класса
От: mtnl  
Дата: 07.04.14 03:50
Оценка:
Здравствуйте, Amethyst, Вы писали:

A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК


A>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.


В ветке почему-то не прозвучал JavaScript.
Оно и наглядный результат и удобный инструментарий в наличии (Chrome Dev Tools, например, чтобы интерактивно), и вообще, веб — практичный, вездесущий и всё такое.
По поводу конкретного базового для учебы пособия подсказать сложно,
но если вдруг английский на бодром уровне — http://www.codecademy.com/tracks/javascript очень ок для старта, в т.ч., думаю, и в таком возрасте.
Re[7]: Вперед
От: Sheridan Россия  
Дата: 07.04.14 03:51
Оценка: -1
Здравствуйте, Alexey931, Вы писали:

A>Если с азов, то C надо. Я, кстати, упомянул . Народ, однако, за мотивацию опасается, и справедливо. В Питоне же дорога до осязаемого результата может быть очень короткой. И если синтаксис блоков — единственная проблема — уж как-нибудь... По мне, так в Питоне есть куда более кислотные концепции, чем эти блоки. Их можно оставить на потом и привыкнуть не понимать, да.


Я к тому всё это писал, что питон — не обучающий язык, не предназначен он для этого. Сначала алгоритмы, потом бэйсик, потом паскаль, потом всё остальное.
Matrix has you...
Re[2]: Язык программирования для школьника 7-8 класса
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.04.14 05:40
Оценка: 1 (1) +3
Здравствуйте, mtnl, Вы писали:

A>>Что посоветуете? Да, если тема уже поднималась на rsdn, киньте ссылку пжл.

M>В ветке почему-то не прозвучал JavaScript.
M>Оно и наглядный результат и удобный инструментарий в наличии (Chrome Dev Tools, например, чтобы интерактивно), и вообще, веб — практичный, вездесущий и всё такое.

После такого:
$ jsc-3                  
> []+[]

> []+{}
[object Object]
> {}+[]    
0
> {}+{}
NaN


или такой таблицы равенства: (источник)

я не решусь своему ребёнку такое предлагать. Вначале надо выработать привычки к нормальным языкам и хорошим принципам, и только после этого спихивать в помойную яму конкретной странной реальности.
The God is real, unless declared integer.
Re[8]: Вперед
От: Alexey931  
Дата: 07.04.14 05:57
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Я к тому всё это писал, что питон — не обучающий язык, не предназначен он для этого. Сначала алгоритмы, потом бэйсик, потом паскаль, потом всё остальное.


Не, питон лучше васика
Re[4]: Только не питон!!!
От: Privalov  
Дата: 07.04.14 06:01
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>В том то и дело, что они исключительно обязательны.


Что в отступах плохого-то?

S>Но можно и без отступов. Более того в паскале исключительно наглядное разделение блоков кода с begin/end, нагляднее даже чем в C++ с его {}


Писать — можно. Читать — нет. Без отступов нормально читается код на Фортране, записанный в фиксированном формате.
Re[9]: Язык программирования для школьника 7-8 класса
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.04.14 06:04
Оценка: +1 -1
Здравствуйте, 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: Язык программирования для школьника 7-8 класса
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 07.04.14 06:09
Оценка: +1
Здравствуйте, Amethyst, Вы писали:

A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК


Pure C — простой, близкий к железу язык. Сам в этом возрасте с него начинал. Чай, не детский сад уже, по картинкам учиться.
Ce n'est que pour vous dire ce que je vous dis.
Re[4]: Язык программирования для школьника 7-8 класса
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.04.14 06:13
Оценка: +1 -1
Здравствуйте, 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,
причём как минимум один ребёнок должен быть не твой.
Результаты — в студию.
The God is real, unless declared integer.
Re[7]: Питон (+)
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.04.14 06:14
Оценка:
Здравствуйте, Algebroid, Вы писали:

A>а турбо паскалю учить не пробовали?

A>начинать надо ведь с простого и потом переходить к сложному?
A>борланд сделал турбо паскаль фривэр можно легально бесплатно скачать.
A>http://edn.embarcadero.com/article/20803

И как это будет работать в графике под современными Windows?
The God is real, unless declared integer.
Re[5]: Питон (+)
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 07.04.14 06:15
Оценка:
Здравствуйте, Algebroid, Вы писали:

B>>Когда я обучал школьников на Питоне, первой программой они писали сетевой чат В принципе, там в полстраницы можно уложиться, на UDP по локалке.

A>сетевой они без сервера не напишут.

google://broadcast
The God is real, unless declared integer.
Re[9]: Вперед
От: Sheridan Россия  
Дата: 07.04.14 06:28
Оценка:
Здравствуйте, Alexey931, Вы писали:

S>>Я к тому всё это писал, что питон — не обучающий язык, не предназначен он для этого. Сначала алгоритмы, потом бэйсик, потом паскаль, потом всё остальное.


A>Не, питон лучше васика


Как язык программирования — да. Как язык программирования для обучения — нет.
Matrix has you...
Re[5]: Только не питон!!!
От: Sheridan Россия  
Дата: 07.04.14 06:30
Оценка:
Здравствуйте, Privalov, Вы писали:

S>>В том то и дело, что они исключительно обязательны.

P>Что в отступах плохого-то?
Неочевидное и сложное для понимания деление на блоки.

S>>Но можно и без отступов. Более того в паскале исключительно наглядное разделение блоков кода с begin/end, нагляднее даже чем в C++ с его {}

P>Писать — можно. Читать — нет. Без отступов нормально читается код на Фортране, записанный в фиксированном формате.
Речь не столько про отступы, сколько про понимание деления кода на блоки в условиях, циклах, функциях итд.
Matrix has you...
Re[5]: Язык программирования для школьника 7-8 класса
От: Sheridan Россия  
Дата: 07.04.14 06:34
Оценка:
Здравствуйте, netch80, Вы писали:

N>Зато твой подход ни капельки не объясняет проблему следующего варианта:


N>
N>  if x = 2 then
N>    y = y + 1;
N>    z = z + 1;
N>


N>и вот объяснение того, что "надо понимать, что если после then не стоит явного begin, ...

Это и есть блок кода. Он должен быть вписан в чтото более понятное, не просто отделен табами. После питона ребенок так и продолжит отделять табами и в паскале и в сях — в питоне же работало.
Matrix has you...
Re[4]: Только не питон!!!
От: Lazin Россия http://evgeny-lazin.blogspot.com
Дата: 07.04.14 07:01
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Худший из способов обучения. Нельзя объяснить таким способом ни алгоритм, ни блоки кода, ни линейность исполнения кода.

S>Приемлем только для разъяснения каждого конкретного оператора — как он работает и что делает.

С чего ты взял, что там можно вводить только по одному statement-у за раз? Ты ipython notebook хоть раз видел вообще? Если не видел, то вот хороший пример — http://nbviewer.ipython.org/github/ehmatthes/intro_programming/blob/master/notebooks/introducing_functions.ipynb В интерактивном режиме все эти блоки кода можно редактировать и они будут пересчитываться автоматически.
Re[6]: Только не питон!!!
От: Privalov  
Дата: 07.04.14 07:07
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Неочевидное и сложное для понимания деление на блоки.


Не понимаю, что там такого сложного.

S>Речь не столько про отступы, сколько про понимание деления кода на блоки в условиях, циклах, функциях итд.


А как ты собираешься демончтрировать ребенку деление кода на блоки, не оформляя эти блоки должным образом?
Раньше важность оформления кода студентам объясняли очень легко. Им просто давали почитать исходник на каком-нибудь PL/1, без всякого форматирования. На бумаге, разумеется. После чего у большинства студентов пропадали всякие сомнения. Даже, набивая код на перфокартах, не ленились делать отступы.
Re[5]: Только не питон!!!
От: Sheridan Россия  
Дата: 07.04.14 07:21
Оценка:
Здравствуйте, Lazin, Вы писали:

L>С чего ты взял, что там можно вводить только по одному statement-у за раз? Ты ipython notebook хоть раз видел вообще? Если не видел, то вот хороший пример — http://nbviewer.ipython.org/github/ehmatthes/intro_programming/blob/master/notebooks/introducing_functions.ipynb В интерактивном режиме все эти блоки кода можно редактировать и они будут пересчитываться автоматически.


Ну да, очень удобно писать код в консоли.
Matrix has you...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.