Здравствуйте, Privalov, Вы писали:
P>Здравствуйте, Sheridan, Вы писали:
S>>Неочевидное и сложное для понимания деление на блоки. P>Не понимаю, что там такого сложного.
Как ни странно — я тоже не понимаю. И у тебя и у меня за плечами обширный опыт различных языков программирования. Вплоть до не-участия мозга в парсинге кода для понимания что там творится.
Но речь идет про обучение ребенка азам программирования.
S>>Речь не столько про отступы, сколько про понимание деления кода на блоки в условиях, циклах, функциях итд. P>А как ты собираешься демончтрировать ребенку деление кода на блоки, не оформляя эти блоки должным образом?
{}, begin\end как раз для разделения кода на блоки и предназначены. Это более наглядно, чем табы.
P>Раньше важность оформления кода студентам объясняли очень легко. Им просто давали почитать исходник на каком-нибудь PL/1, без всякого форматирования. На бумаге, разумеется. После чего у большинства студентов пропадали всякие сомнения. Даже, набивая код на перфокартах, не ленились делать отступы.
Во всех языках отступы исключительно для читаемости кода. И только в питоне они имеют значение для интерпритатора. Лишние сущности, в общем то, для обучения. Нужно вставлять дополнительные триггеры в лекции: "там где один таб — блок, там где два — другой блок, но в других языках это не блоки, это просто для красоты..." и так далее. Ну ненужно это.
Matrix has you...
Re: Язык программирования для школьника 7-8 класса
Здравствуйте, Amethyst, Вы писали:
A>Хочу попробовать приобщить сына к IT. Но проблема в том, что я плохо представляю какой язык программирования выбрать для изучения. A>Нужно что-то лёгкое в изучении, дающее наглядный результат (UI, картинки, графики). Как раньше бейсик для ДВК
Про паскаль — есть сайт с веб-средой разработки на паскале с синтаксисом от TP 7.0
Регулярно используем для школьных домашних заданий с ребенком.
Никогда не бойся браться делать то, что делать не умеешь. Помни, ковчег был построен любителем. Профессионалы построили Титаник...
Здравствуйте, 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, Вы писали:
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>Слабо, очень слабо. Надо более наглядно, например это:
[...]
Пример как нельзя более подходит для объяснения школьнику преимущества непонятно чего перед отступами. Тем более, что там нет ни {}, ни begin/end. Что ты этим примером сказать хотел в контексте обсуждения —
Здравствуйте, Sheridan, Вы писали:
S>Здравствуйте, _NN_, Вы писали:
_NN>>Для вас придумали Python with braces: http://www.pythonb.org/
S>Вот это уже лучше. Этот питон можно для обучения использовать.
На самом деле, я с вами не полностью согласен.
Мой опыт говорит о том, что обучить питону с отступами намного проще, чем объяснять людям про правильное расположение скобок и отступов.
Но у каждого опыт свой
Здравствуйте, Privalov, Вы писали:
P>Пример как нельзя более подходит для объяснения школьнику преимущества непонятно чего перед отступами. Тем более, что там нет ни {}, ни begin/end. Что ты этим примером сказать хотел в контексте обсуждения —
Пример как нельзя более подходит на самом деле доведения до абсурда чего бы то ни было.
Здравствуйте, _NN_, Вы писали:
_NN>Мой опыт говорит о том, что обучить питону с отступами намного проще, чем объяснять людям про правильное расположение скобок и отступов. _NN>Но у каждого опыт свой
Вот насчет правильного расположения отступов как раз в точку — нифига нормально не объяснишь. А скобки можно располагать как хочется.
Здравствуйте, 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>В питоне с его отступами можно писать только в питон-стиле.
Конечно же, имеются в виду императивный, функциональный и ООП стили.