Как стать автором
Обновить

Комментарии 114

для 8го класса подойдёт думаю.
Я учусь на преподователя информатики, у нас в университете есть предмет «логомиры» там учат тому как научить пятиклассников программировать незабвенных черепашек.
И спасибо что написали, думаю что когданибудь мне это пригодится.
НЛО прилетело и опубликовало эту надпись здесь
К сожалению, далеко не во всех школах информатика со 2 и даже с 5 класса.
В нашей школе, к сожалению, только с восьмого. Мешает специализация…
я — последня буква в алфавите. И вообще нужно было в футбол играть и в бассейн ходить.
НЛО прилетело и опубликовало эту надпись здесь
мы за вас рады.
А СИ для большинства школьников будет не более очередной ненужной занозы в одном месте… А для спецшкол — бога ради
НЛО прилетело и опубликовало эту надпись здесь
для спецшкол? Это в качестве наказания чтоли :)
ну школьника родители засунут программистскую спецшколу, когда тот хочет стать литературоведом, то да, наказание)
а есть разве спецшколы программерские?
Хотя если даже и есть, то наврядли есть смысл начинать учить в ней бейсик. Разве что вместо азбуки чтоли? :)
в качестве наказания шалунам)
А Онотолей в 5 лет вел блог на ассемблере! )))
Ну да, на словах ты Лев Толстой… ну и дальше по тексту.
НЛО прилетело и опубликовало эту надпись здесь
Переместите в блог Small Basic
Увы маловато ;)
Спасибо всем! Перенёс…
learning BASIC causes permanent brain damage, %username%
Паскаль чем удручает? Тем что специально для обучения создавался?
Нет. Возникает много «соглашений», например о том, что если в условии или теле цикла содержится более двух строк неплохо бы поставить Begin End. Достаточно простая программа превращается для некорепших мозгов в кучу неоправданных Begin… End.
В бытность свою школяром мне потребовалось минут 20, чтобы понять, что else if в бейсике работает только при наличии табулятора. Это гораздо, гораздо хуже, чем паскалевские операторные скобки.
Это правило давно кануло в лету.
Неоправданных? begin..end, для «неокрепших» мозгов, воспринимается намного проще, чем {} или i = i++ >> z
Вот в бейсике и нет скобок ;)
А как-же if..end if, function..end function и т.д.? ;)
Это естественный язык в отличии от фигурных скобок.
Так речь шла о неоправданности begin..end ;)
Поверьте мне… Уже не первый раз наблюдаю, как на первых порах изучения ветвлений и циклов возникает куча вопросов, которые рассеиваются только через два-три урока.
А жалко времени.

Может Вы предложите как доступно объяснить особенность использования begin… end в Паскале…
гм… для учебной программы — ставить их везде.
или все же объяснить что такое оператор, и что он может быть составным.
поверьте, не так это сложно ученики воспринимают.
Может Вы предложите как доступно объяснить особенность использования begin… end в Паскале…
Очень просто. Скажем if:

if условие then begin
  оператор;
  оператор;

  оператор;
end
else begin
  оператор;
  оператор;

  оператор;
end;

Для продвинутых: некоторые части этой конструкции можно опустить. Хотите узнать больше — почитайте описание языка. Вот и всё. Усваивается — на раз. Никаких проблем ни с «висячим else» ни с «точкой с запятой, которая разделяет операторы, а не оканчивает их» — нету. Продвинутые — могут сами почитать, 90% этого не нужно.
на басике проще и выходит
if… then

else

endif
и без двоеточей перед равно и без точек с запятой… и без непонятной точки после end.
тогда может Python? никаких begin end
и черепашка там тоже есть docs.python.org/library/turtle.html.
у питона нет гламурной DE, плюс он слишком удобный :) А детям нужна абстракция — не программистов же из них поголовно делать стоит задача, а дать представление об общих принципах и правилах.
Абстракция, умение думать логично, воспитание правильного стиля, это как раз о Питоне.
Вспомним что на него повлиял тот же язык ABC который разарабоатывался для обучения программированию.
А стиль я считаю это очень важно, это должно быть на уровне рэфлекса.
К тому же немаловажное добавление Python заработает даже на Windows 98 и 2000, у меня в школе стоит ещё 98-ая. Linux, FreeBSD, Solaris нет проблем есть и там. Нужно показать ребёнку что мир не заключён в стекляном шаре Майкрософт, Сан или кого либо.

А вообще боюсь у нас разные подходы к образованию, я преподавал только в ВУЗе, но в школе считаю что задача не столько обучить программированию, а научить мыслить логически, аристотелевой логики, Питон как нельзя лучше подходит для этой цели. Но кроме того его применение не ограничевается рамками обучения, что подталкивает фантазию, можно давать творческие задания, показывать разные «трюки» именно это побуждает интерес. Черепашка ну да может первое время интересно, но потом унываеш, а что мешает добавить двигающиеся препятствия, аля Пакман, исходник доступен.

А насчёт гламурности, она нивелируется отсутствием динамичности. Я можу на ходу трансформировать объект в интерактивном режиме, что в плане наглядности на порядки полезнее гламурной дополнялки. Когда азы освоены, SmallBasic остаётся красивой игрушкой, а с Питоном можно продолжать решать реальные задачи.
Та же математика, вроде бы есть Math, но нет способа просто изобразить график, а с matplotlib.sourceforge.net/ можна от сложных поверхностей до простых прямых изображать.
я-то был бы счастлив, если бы мне вместо бейсика-паскаля питон преподавали…
Недавно открыл для себя этот язык, читал мануалы просто с восторгом! Тут я больше контр-доводы противников приводил :)
Паскаль плох хотя бы тем, что для него не существует лёгких и удобных сред, пригодных в школе. Допотопный турбо-паскаль просьба не называть.

А здесь мы видим действительно современную разработку. Очень рад, что наконец такое появилось!
Исключительно согласен с Вами, уж если учить детей в школе программированию — то точно не на BASIC. Си думаю перебор, а паскаль — то что нужно
почему паскаль, а не бейсик? Си явно перебор… может лучше учить perl?
НЛО прилетело и опубликовало эту надпись здесь
яростно плюсую. Питон вот есть, например, зачем детей мучать :(
И черепашка там тоже есть ^_^
как раз таки питон для детской психики опасен, после него на другом языке писать будет очень сложно
Ну не всем же быть программистами. Язык только средство для решения алгоритмических задачек… Чем меньше при решении задач мы отвлекаемся на особенности синтаксиса — тем лучше.

Тот кто будет учиться по ИТ-направлению — познакомится с другими языками. А вы предлагаете начать с Си?
НЛО прилетело и опубликовало эту надпись здесь
Лично на конференции (как раз об Обероне) от Никлауса Вирта слышал призыв забыть о Паскале, как об устаревшем языке ;)
Вы бы спросили у него что он думает на тему использования Бейсика вместо Паскаля — услышали бы другие песни. Ему и в голову, наверное, не может придти что кто-то будет переходить с Паскаля на Бейсик.

А конкретно Small Basic просто на уровне FAQ убивает: Unlike QBASIC, Small Basic is based on .Net and can consume (not produce) «Objects». Just like the early variants of BASIC, Small Basic is imperative and doesn't use or expose beginners to concepts like scopes, types, object orientation, etc.

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

Да, далеко не всем нужно уметь программировать — ну так и расскажите им как быстро рассчитать разные полезные вещи с помощью электронных таблиц! По крайней мере ну будет возникать иллюзий. А для тех кто таки хочит учиться программировать — есть нормальные языки. С системой типов, областями видимости и прочим.
и бубнами)
лучший язык — типизированный язык — спорное утвержение.
Сферический конь в вакууме класная штука, но только в теории. Без определения что такое «лучший» это как говорить о током не реализированном Евересте, вроде рвёт Пентиум, но Пентиум вот он со всеми его недостатками, а Эверест в серию не пошёл, поэтому и сравнять несчем.
Вы же не учите детей «албанскому», хотя на нем тоже можно говорить и писать и не надо знать никаких правил.
В литературных текстах сразу стоят в нужных местах запятые и прочие знаки препинания, никто ж не ждет, когда дети выучат правила их расстановки.
Чтобы в голове изначально были правильные шаблоны, надо сразу учить правильному кодированию. А научиться сокращать лишние операторы — это действительно уже следующий шаг для «немного продвинутых».
НЛО прилетело и опубликовало эту надпись здесь
Тем не менее, в своё время дважды взял первое место на областной олимпиаде, программируя на этом самом Бейсике.
Олимпиады по программированию имеют столь же много общего с программированием как олимпиады по литературе — с написанием романов и повестей.

Каждый пинает тот язык и ту технологию, которую не умеет использовать. А все остальные доводы — не более чем оправдания.
Почему же — есть вполне объективные критерии. Типа времени потребного для обучения человека хорошему стилю. Для фанатов Бейсика это время, как правило, больше, чем для фанатов Паскаля а зачастую и вообще стремится к бесконечности.
Скринов побольше нету?
Могу сделать… Чуть попозже прикреплю.
У нас в универе пошла тенденция не привязываться к MS. О чем нам сообщают преподователи. Пишем на cpp + qt
Тоже, кстати, хороший довод: зачем учить человека технологиям, за которые ему потом придётся платить? Если есть разумная открытая и бесплатная альтернатива — нужно учить именно ей, а платный вариант он всегда освоить успеет.
А зачем вообще тогда кого-то учить, чтобы платить потом им зарплату? Кому надо — сами научаться.
Идиотская точка зрения. Обучать надо тому, что будет необходимо человеку, а не тому, что бесплатно. К сожалению или к счастью, но с MS пока конкурировать тут сложно — их продукты занимают лидирующие позиции. Я считаю, что это хорошо, когда есть лидер. Например, на рынке линукса, лидера, как такового нет. В результате — пакеты одной сборки не совместимы с другой.
Обучать надо тому, что будет необходимо человеку, а не тому, что бесплатно.
Назовите хоть один продукт, который можно было бы изучить 10 лет назад и сейчас придти с тем багажом знаний и работать. В любом случае придётся переучиваться — будь то MS Office или Eclipse. За 10 лет (срок между началом обуучения в школе и выходом на работу) интерфейс всех продуктов успевает сильно измениться.

Учить нужно базовым принципам. Ну а если человек с может с собой на диске забрать именно ту версию, которой он учился — у него и практически полезные навыки будут. А попробуйте сейчас легально купить MS Office 2000 или Windows 98!
>Назовите хоть один продукт, который можно было бы изучить 10 лет назад и сейчас придти с тем багажом знаний и работать.

C++, Delphi? Что десять лет назад применял, то и сегодня применяю. А багаж знаний не зависит от того, что преподают в школе/институте — зависит только от направления развития самого человека.

К тому-же, я отвечал на комментарий о том, что необходимо обучать бесплатным альтернативам — это не всегда полезно. Для примера, если 10 лет назад очень популярны были Pascal и Basic (и обучатся им можно было абсолютно бесплатно + сами компиляторы, часто, были бесплатны), то сейчас они бесполезны.

Обучать надо, точнее надо обучаться тому, что человеку искренне интересно. Для кого-то, это бесплатный и открытый php, а для кого-то дорого Oracle. Все зависит от интересов. В школе-же, необходимо преподавать то, что не заставит человека изучить все «внутренности» (в том числе и лицензирование), но даст шанс «быстро стартовать», т.е как можно раньше применять инструменты. Только после этого, если у человека останется интерес, можно помогать(!!!) в обучении других систем и технологий.
В школе-же, необходимо преподавать то, что не заставит человека изучить все «внутренности» (в том числе и лицензирование)
А куда вы денетесь от этого? Что вы будете делать если к вам придёт существо с дискеткой (сегодня — с флешкой) и попросит переписать всё чем вы тут пользуетесь чтобы он мог дома с этим поработать и с друзьями поделиться?
Тут разницы нет — отдал офф.пакет и нет проблем.
Ась? Вы уверены что вот эти дистрибутивы, входящие в пресловутый пакет «Скорая Помощь» можно вот так вот запросто распространять? Я как-то сомневаюсь.
Я уверен, что дистрибутивы, скачанные с офф.сайтов, можно свободно распостранять. Будь то триал BDS или QT.
А вот нифига подобного:
1. Огромное количество вещей нельзя распространять. На распространение бесплатного триала нужна отдельная лицензия. Как пример — но это вообще скорее правило, чем исключение.
2. Урезанная функциональность — вы вынуждаете человека начинать разбираться с лицензированием только чтобы понять почему у него дома всё работате не так, как в школе.

Короче если вы используете проприетарное ПО, то вы вынуждены учить детей отказывать другим в их просьбах о помощи — хорошо ли это? Конечно же нет. В редких случаях его приходится использовать из-за отсутствия приемлемой альтернативы, но это никогда не должно делать с лёгким сердцем просто потому, что в проприетарной версии кнопочки красивее.
Распостранять можно, но есть ограничения. Как и везде. В вашем примере, кстати, это бесплатная версия ;)

>Короче если вы используете проприетарное ПО, то вы вынуждены учить детей отказывать другим в их просьбах о помощи — хорошо ли это? Конечно же нет.

Да прекратите… И я, и многие мои знакомые, обучались на закрытом ПО. И что? Никто не стал жлобом из-за этого. Доказывать подобное — бред и наивность. Не надо переворачивать с ног на голову.

Я предпочитаю проприетарное ПО не из-за красоты кнопок, а из-за надлежащей тех.поддержки, более быстрому развитию и еще по куче других причин. Обучать же бесплатному, но убогому — это заранее загонять обучаемых в самое дно.

P.S.: давайте прекратим диалог. Я противник OpenSource и GPL, т.ч. переубедить меня будет сложно, а мне переубедить вас будет сложно.
Распостранять можно, но есть ограничения. Как и везде. В вашем примере, кстати, это бесплатная версия ;)
Абсолютно бесплатная, но даже при этом распространять её нельзя.

Да прекратите… И я, и многие мои знакомые, обучались на закрытом ПО. И что? Никто не стал жлобом из-за этого. Доказывать подобное — бред и наивность. Не надо переворачивать с ног на голову.
Зачем же доказывать очевидное? Всё и так прекрасно видно.

Я предпочитаю проприетарное ПО не из-за красоты кнопок, а из-за надлежащей тех.поддержки, более быстрому развитию и еще по куче других причин. Обучать же бесплатному, но убогому — это заранее загонять обучаемых в самое дно.
А обучать продукции Adobe, Microsft, Corel и т.п. — это совершать преступление. Либо разбазаривание госсредств (если с них перейти на свободное ПО и ПО созданное в России быстро и быстро, но при этом куча денег тратится на закупку ПО «в стране вероятного противника»), либо просто диверсия (если, как любят говорить фанаты проприетарного ПО, оно настолько далеко впереди что перейти на свободное ПО проблематично — в этом случае можно говорить о снижении обороноспособности за счёт привязывания к ПО, контролируемому «вероятным противником») — выбирайте за что будете сидеть по вкусу.

P.S.: давайте прекратим диалог. Я противник OpenSource и GPL, т.ч. переубедить меня будет сложно, а мне переубедить вас будет сложно.
Я боюсь что ни то, ни другое невозможно — отчасти потому что вы обучались на закрытом ПО, а я — нет. И вы поступаете в строго соответствии с давней истиной (раб мечтает не о свободе, а о собственных рабах).

P.S. Насчёт уголовоной ответственности из-за использования продукции Microsoft в школах: понятно что в современной России за использование проприетарного ПО никого не посадят ибо «распил» со свободного ПО не такой богатый получается, но формально — это таки преступление…
Я немного вмешаюсь, ладно?
Главная задача государства в области образования, это обучить таких людей, которых требует рынок труда.

Если рынок труда требует ms, значит ms, если linux значит linux. Убеждайте бизнесменов, которые выбирают платные технологии взамен бесплатных, а не учителей, которые лишь следуют спросу.

Почему они предпочитают _свои_ средства тратить на ms, а не на линукс? Наверно потому что линукс их чем-то не устраивает. Свои деньги все умеют считать, я вас уверяю.

И государство тоже имеет право выбирать те технологии, которые более удобны и эффективны. Те кто вопят об откатах — сильно упрощают картину.

Все остальные разговоры, про «преступление» и т.д. — в пользу бедных.

Я своего ребенка 6 лет учу именно на Small Basic, сам в 10 лет начинал с quick basic, что не мешает мне сейчас работать в IT и создавать успешные работающие системы для пользы моего работодателя.
Главная задача государства в области образования, это обучить таких людей, которых требует рынок труда.
Если государство ставит цели образования именно так — то это не государство, а так, колония.

Если рынок труда требует ms, значит ms, если linux значит linux.
Если рынок труда требует ms, значит люди выучат ms — или за свои деньги или их обучат работодатели. Почему государство должно тратить деньги налогоплательщиков чтобы спонсировать бизнесменов?

Почему они предпочитают _свои_ средства тратить на ms, а не на линукс? Наверно потому что линукс их чем-то не устраивает.
Известно чем: за обучение продуктам ms платят налогоплательщики, а изучать linux придётся за свои деньги.

И государство тоже имеет право выбирать те технологии, которые более удобны и эффективны.
Не должно государство лезть не в свою тарелку! Эффективность обеспечивает рынок — и весьма эффективно обеспечивает. Лучше чем государство. Государство должно вмешиваться тогда, когда стремление рынка к эффективности создаёт угрозу безопасности людей. Прямую (когда, например, ради эффективности в котельных не оставляют запасы топлива ибо эффективнее людей заморозить, чем тратить деньги на резервное топливо) или косвенную (когда использовании продукции ms на почте создаёт ситуацию при которой в случае войны товары элементарно не смогут доставляться в регионы). Со своей обязанность в случае России государство справляется отвратительно — уж не знаю почему: откаты виноваты или что другое. И да, использование американского ПО в школа при наличии альтернативы — это невыполнение государством своих обязательств.

Я своего ребенка 6 лет учу именно на Small Basic, сам в 10 лет начинал с quick basic, что не мешает мне сейчас работать в IT и создавать успешные работающие системы для пользы моего работодателя.
Да ради бога! За ваши деньги — любые капризы. Но вот обучение ms в государственных школах — это преступление.
Если государство ставит цели образования именно так — то это не государство, а так, колония.

Я честно говоря не понял утверждения. Доказывать как-то будете? Так я вам не поверю.
Если рынок труда требует ms, значит люди выучат ms — или за свои деньги или их обучат работодатели. Почему государство должно тратить деньги налогоплательщиков чтобы спонсировать бизнесменов?
пардон, нажал на ентер
Если рынок труда требует ms, значит люди выучат ms — или за свои деньги или их обучат работодатели. Почему государство должно тратить деньги налогоплательщиков чтобы спонсировать бизнесменов?

Вы как-нибудь определитесь. Скажу вам по секрету, налогоплательщики=бизнесмены. Других налогоплательщиков пока не придумали. Поэтому если государство хочет жить и успешно конкурировать с другими государствами, оно должно в первую очередь должно заботится о снижении затрат бизнесменов. Путем подготовки правильных кадров. И если работодателям на 95% требуется знания винды и офиса, значит нужно в школе изучать винду и офис. Если вам, как сторонникам «свободного» ПО, это не нравится, уменьшайте эти 95%, ваше право, а не отрывайтесь на бедных школьниках. Сделаете продукт лучше винды-отлично, все будут только рады.
когда использовании продукции ms на почте создаёт ситуацию при которой в случае войны товары элементарно не смогут доставляться в регионы)

Ну, предположим вариант, война с США. Забудем, для чистоты эксперимента, что MS это транснациональная компания, доходы которой вне США больше, чем внутри США. То есть интересы MS!= интересы США.
Итак война. И что, все компьютеры почты россии тут же перестанут работать? Скорее всего нет, они спокойно доработают до своей физической смерти. Ну, не будут получат апдейты, и что? При таком форс-мажоре можно было бы действительно перейти на линукс. Но поскольку вероятность это крайне мала, выбор винды может быть оправдан не только откатами. Не забудем также, что все заинтересованные спецслужбы (в том числе ФСБ) имеют полный доступ к исходникам виндовс.

Гораздо сильнее на вашем месте я бы озаботился тем что это ПО работает на камнях интел/амд.

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

Опять говорю — сделаете продукт, который добровольно выбирать не 2%, как щас, а хотя бы 30% — тогда можно об это говорить. Пока изучение линукса для обычного школьника (который не собирается делать IT своей професией) — пустая трата денег налогоплательщиков.
>Если рынок труда требует ms, значит люди выучат ms — или за свои деньги или их обучат работодатели. Почему государство должно тратить деньги налогоплательщиков чтобы спонсировать бизнесменов?

Даже не знаю что ответить =). Со стороны — пишет 13-летний мальчик, ярый последователь линукса, но не имеющий представления о структуре государственного управления. По вашему — если государство перестанет обучать математике, то предприятия сами начнут обучать? Или дети начнут учить? =)

Задача государства — подготовить рабочую силу, необходимую на рынке труда. А рынок труда, как не странно, создают мелкие и средние компании. Откажется государство обучать MS — компании начнут нанимать сотрудников-«гастарбайтеров» + на рынке образуется нехватка персонала, отсюда подъем зарплат + появление компаний, которые обучают тому, чему не обучает государство => государство тратит деньги налогоплательщиков не правильно, что вызывает недовольство. Это в кратце.

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

Вы знаете операционнки, полностью написанные и используемые в России? =)))) Тот-же линукс, куда больше создает угрозы нац.безопасности (и не надо говорить про открытый код — вы его сами полностью просматривали?). Использование того-же линукса, отъедает куда больше денег, чем проприетарный windows — как за счет нехватки софта и обучающего персонала, так и за счет платной (тоже не знали?) тех.поддержки. И это не говоря о лицензировании, которое часто просто перекрывает кислород.
>выбирайте за что будете сидеть по вкусу

ну в таком случае, использование и обучению линуксу — кражи в особо крупных размерах. деньги тратятся на ПО (да-да, тот же линукс ЗАКУПАЮТ для «блага родины»), но нет никого, кто могбы обучить пользоваться данной системой, ни желания ей обучаться, т.к. дома все-равно винда с играми.

OpenSource — банальное выманивание денег у работодателя, т.к. надо поддерживать разработку самому, в итоге + отдавать на сторону. Про школы, гос.предприятия и т.д. можно долго говорить, но это не поможет — вы за флагом опенсорса не видите проблем.

P.S.: вот не понятно, почему люди, которые пиарят опенсорс, не хотят работать бесплатно? Точнее — готовы бесплатно отдать свой труд кому-то на сторону, но при этом за тоже самое требуют денег у работодателя? Если вы такой приверженнец опенсорса — ответьте, готовы работать на GPL условиях (т.е. вы работаете, пишете код, а компания будет скидывать вам баги вашего кода, иногда даже багфиксы, но все бесплатно)? Как нет? =)
«вы можете публиковать свои разработки… На одном из» what?
Хотел написать, что на одном из скринов видно как импортируются программы из онлайн-базы… =)
Хотя скрин есть этот… если пройти по ссылочке.
Имхо Си тоже ужасен. Вернее располагает к написанию ужасающего кода.
Вижу смысл в обучению программированию детей при помощи Питона.
Чтобы понять что такое программирование — достаточно.
Более того; те, кому понравится программировать, уже смогут это делать. Язык мощный и актуальный.

А учить детей Бейсику сейчас не вижу смысла… SmallBasic не катит, потому что, как уже было сказано выше, там все в кучу и объекты, и обычный ситнаксис.

Паскаль, единственный язык на котором я написал более менее приличные программы за всю свою жизнь, уже давно и безнадежно устарел. О чем тоже уже говорилось выше. Все эти неоднородности вроде лишних begin..end, to/downto, и необходимости; после конца строки удручают.

Питон, питон и еще раз Питон. :)
Да бросьте… Учить язык, в котором табы имеют большее значение, чем операторы — бред. Да, читается легко, но когда пробел имеет больший вес, чем сама операция — это не язык, а клетка.

По поводу begin..end и т.д. — можно конечно объяснять, что IDE уже сами ставят, но зачем? Судя по комменту, последний раз вы на Pascal (или, тем более, Delphi) смотрели лет 10 назад. Так зачем что-то об этом говорить?
Да бросьте… Учить язык, в котором табы имеют большее значение, чем операторы — бред. Да, читается легко, но когда пробел имеет больший вес, чем сама операция — это не язык, а клетка.
Вообще-то так были устроены все «псевдоязыки» в разных книжках типа вот этой уже давно. Для чтения (и, стало быть, для написания простых программ) это удобно, а в сложных — да, бывают проблемы, но редко. В конце-концов так ли велика разница между дополнительным отступом и begin/eng, {/}, case/esac и т.п.? Причём отступы-то обычно всё равно есть!

По поводу begin..end и т.д. — можно конечно объяснять, что IDE уже сами ставят, но зачем?
А читает их за вас тоже IDE сама? Эмпирически установленно: количество отлаженных строк кода, которое человек может выдать «на гора» слабо зависит от языка. Разница примерно в два раза от самого многословного (Assembler) до самых «плотных» (Haskell, Prolog, Ocaml, etc). Потому что IDE может ускорить написание программы, но никак не её чтение! В частности многословие — самая большая моя претензия к такому языку как Java.

Причём это ещё программист с опытом может «пропускать взглядом» на экране лишние конструкции — новичёк (а школьник — по определению новичёк; те кто не новички с любым языком справятся) будет долго и тщательно прочитывать все эти лишние слова и по втором разу и по десятому.

В общем — не могу сказать что Python идеален для обучения (сложноват он), но такой вариант вполне имеет право на существование…
Мне кажется ничего сложного нет…

Даже проще бейсика…

Приучить человека к аккуратности, в написании кода — это да…
Я видал как мой друг, во время обучения в Лицее писал код… операторы были где попало по строке, в некоторых строках было несколько операторов. Все налеплено. Работало конечно, но отлаживать невозможно.

А в остальном, что нужно знать школьнику? :) Базовые операторы: присваивание, условие, цикл, ввод-вывод, арифметика, да вызов функций. Пожалуй всё.

Представьте как учили бы школьника Си… они бы вечно забывали выделить или освободить память.
Путались в областях видимости переменных, и неочевидности присваиваний/сравнений. А понятие об оперировании памятью… что есть ссылки, есть указатели, а есть сами значения… Школьнику оно абсолютно не надо.

Я не говорю что язык плох… просто обычно учат ему отвратно. И потом такие программисты пишут отвратный код, который без ИДЕ вообще читать невозможно.

>самая большая моя претензия к такому языку как Java.
«немногословная» java — это groovy, имхо вполне даже ничего для обучения.

>Эмпирически установленно: количество отлаженных строк кода, которое человек может выдать «на гора» слабо зависит от языка.
однако сам процесс отладки может быть весьма и весьма зависим от языка, особенно если брать новичков и, скажем, (VS + C++) vs (IDEA + Java)
Я серьезно. И как раз разравнивание кода пробелами и табами считаю огромным приемуществом Питона. Он не дает писать ужасный код.
По одному оператору на строке — это же замечательно в плане понимания.
Вот например ассемблерный код читается просто отлично! Также и с Питоном.
А выравнивание — это же просто песня. Даже с первого взгляда видно что к чему относится.

Как то, еще до того, как я решил поучить Питон, мне понадобилось поставить NNTP-сервер. Всякие страшные юниксовые поделия вроде inn меня просто убили. А тут попался довольно простенький (в конфигурировании), модульные сервер Papercut. И он был написан на Питоне.
Да вот беда… попалась мне бета, и работать у меня ни в какую не желала.
Безо всякого знания RFC на NNTP, без знания Питона, я за вечер смог понять вообще всю логику работы как протокола NNTP, таки самого сервера, поправить что мне нужно, и запустить его. :)
За плечами правда были Basic,Pascal,C,Perl и немного других языков.
Но они мне совершенно не помогали, когда я пытался править код драйверов мультипортовой карты под Линукс, и в недавней ситуации, когда я пытался понять как работает FreeRADIUS…

В общем я считаю что программистов полезно бы усадить в некоторые клетки.
Ведь усадили же в клетку «пишем без goto», усадили в «оформляем все в процедуры и функции, делим программу на кусочки», и в «инкапсулируем все в объекты». И ниче… пишет народ в этих парадигмах и радуется, как все удобно стало… А раньше такие простыни были — ужас.
>А выравнивание — это же просто песня.
Какой… поставил по Ctrl+Enter отправку коммента? Хоть в настройках дайте отключить!!!

По комментарию:

>А выравнивание — это же просто песня.

Кому как… Да, я тоже пишу с отступами и по одному оператору в строке, но очень не люблю, когда меня заставляют писать по какому-то одному шаблону. Именно эти и оттолкнул питон, в свое время. Для примера, в php кто-то, после if, фигурную скобку ставит с новой строки, а я оставляю в той-же — мне так читать и понимать код легче.

>В общем я считаю что программистов полезно бы усадить в некоторые клетки.

Полезно давать полезные привычки, а не металлические клетки. По поводу того-же goto — за последние пару лет применял пару раз. И не считаю это плохим — наоборот, позволило сделать код более читабельным и понятным.

А питон не только в клетку загоняет, но и навязывает свой шаблон оформления кода, что не всегда удобно.

P.S.: сам питон, говорят, очень мощный язык — этого я не касаюсь. Меня оттолкнуло именно форматирование.
Да, может быть.
Я вообще чаще пишу то, что мне нужно на Перле. Там как раз полная свобода. Я бы даже сказал Анархия…
Но и программы бывают… голову сломаешь, пока поймешь что делает.
Полезно давать полезные привычки, а не металлические клетки.
Металлические клетки гораздо практичнее. Ещё раз: point212 — не так важно как удобно писать код на том или ином языке — важно как его читать. Ибо пишется код один раз, а читается — от десятков раз (если с ним работает один человек) до десятков и сотен тысяч (если это популярный проект). Клетка очень эффективна в упрощении чтения и уже поэтому имеет право на жизнь.

P.S.: сам питон, говорят, очень мощный язык — этого я не касаюсь. Меня оттолкнуло именно форматирование.
Ну это уже совсем детский сад.
Нет, не детский сад, а практичность. Писать/читать то, что неприятно, бессмыслено.

>Металлические клетки гораздо практичнее.

У меня противоположная точка зрения — «металлические клетки» менее практичны, чем хорошие привычки. Клетки заставляют думать только в одном направлении, что очень плохо для любого человека.

>Ещё раз: point212 — не так важно как удобно писать код на том или ином языке — важно как его читать.

Верно, поэтому ОЧЕНЬ важно иметь хорошие привычки ПРИ НАПИСАНИИ кода, а не загонять программера в определенные, жестко установленные, рамки. В первом случае он сам напишет хорошо оформленный код, который будет легко читать, во втором — код будет легко читать, но программеру будет очень тяжело перейти на другую платформу, в которой используется совершенно другое форматирование. Что мы и видим — перейти с бейсика/php на питон сложнее, чем с питона на бейсик/пхп.
Что мы и видим — перейти с бейсика/php на питон сложнее, чем с питона на бейсик/пхп.
Да, это одно из важных достоинств языка Python. Если человек на него переходит, то он вынужден изучать и использовать общий стиль. За это я готов многое простить этому языку.

Вот в этом главный, для меня, минус питона. Пример с php давал выше, поэтому нет смысла повторяться. Но, мы друг друга поняли — это главное.
Ну кто сделал отсылку по Ctrl-Enter при невозможности редактировать сообщения? Гррр…

У меня противоположная точка зрения — «металлические клетки» менее практичны, чем хорошие привычки. Клетки заставляют думать только в одном направлении, что очень плохо для любого человека.
Клетки приводят к тому, что стиль имеется у языка, а не у проекта. Посмотрите на языки со «свободным стилем»: C++, PHP, Perl. Приходится изучать новый стиль при переходе от проекта к проекту, либо, что ещё хуже в одной программе оказывается десяток разных стилей.

А насчёт «заставляет думать только в одном напревлении» — покажите что ваше «напревление» правильное и Гвидо язык изменит (хороший пример — операторы with и раздел else в for/while/try). Если же «что-то этакое» вам что-то приходится делать раз в год и вы не можете ждать — можно и как-нибудь криво запрограммировать.
Отсылать форму по Ctrl Enter — стандартное поведение браузера ;)
Доброе утро, страна!
Да ну??? С каких это пор? =)
Вообще — это JS, если кто-то не знал ;)
Не поленился — проверил в Mosaic, так практически c самого становления World Wide Web ;)
Ну так написано «стандартное поведение браузера», что не верно для IE, FF, Opera и т.д. ;)
Чтобы писать на питоне надо хорошо знать ООП, а чтобы знать ООП надо немного понять структурное программирование.
Совсем необязательно. Опять же, тем же детишкам, чтобы строить простейшие алгоритмы достаточно будет базовых конструкций языка.
На крайняк, все необходимые им функции можно импортировать.

Мы же говорим сечайс о применении SmallBasic как простую альтернативу в освоении и обучении? И в частности о том, что питон, пожалуй, больше подходит.

Конечно, чтобы сделать серьезное приложение, прийдеться поучиться.
А импорты детишки должны заучить как мантру или священую истину, не понимая что она делает?

Я не понимаю чем плох обычный ANSI C, без каких либо извратов. Конечно, свой пример плох, но я писал простенькие программы на C когда мне было 6-7 лет, ничего мозг не сломал :)
а include у вас с потолка возмётся. Python класный тем что уже есть абстракции списков, словарей, черепашка и куча готовых модулей, а ГЛАВНОЕ, это интерактивность, никакой компиляции, хочу прямо в динамике с интреактивной консоли чвет объекта поменял, сделал волку 10 глаз. Это очень важно.
Вы Питон в глаза видели?
Ruby, С#, Java, Smalltalk — это ООП язык, где каждая функия должна быть членом класа.
Python язык мультипарадигменный, подджерживает структурный, объектноориентированый и функциональный(функциональный с многими ограничениями) стили програмирования.
Он не навязывает вам своего стиля, хотите пишете операторы последовательно и они в том же порядке будут исполнятся и их не обязательно запихивать в функции.
Кому пайтон, а кому Руби ;)

Посмотрите Hackety Hack. Эдакое алгоритмирование на самом высоком уровне :) Не знаю, насколько полезно детям (я далеко не педагог), но жутко увлекательно
Ну вот, минусы (мне не жалко, просто видимо не до конца меня поняли ;)

Конечно, здорово учить детей детей Бейсику, Паскалю и Си — мы все такие умные, учим детей алгоритмированию, пусть они знают, как сортировать массивы, объявлять переменные и т.д. Я сам недавно из школы — нас тоже пытались чему-то учить. Поверьте мне, если два-три человека из класса что-то поняли, то остальные лишь переписывали задания (я и в вузе поучился на ИТ-специальности — там ровно то же).

На хабре уже затрагивалась тема, что ЯП стоит учить «сверху», начиная с высокоуровневых.

Так вот о том самом Hackety Hack. Давайте с детьми напишем записную книжку, TO-DO, блог, плейер, текстовый и графический редактор — это будем интересно и доступно всем! Затем каждый начнет предлагать идеи о том, что хотелось бы усовершенствовать, какие возможности добавить. Тут мы опускаемся до Ruby + Shoes, например, затем с Shoes переходим на GTK. А потом ставим вопрос — а как все это работает? И вводим новый язык. И транслируя методы Руби в Си, например, переписывая написанные ранее программки — покоряем следующий язык.

Или я ошибаюсь?
Я считаю, что Вы правы… Так будет интереснее. Но Вы сами сказали, что два-три человека… с плеерами, блогами, записными книжками будет всё тоже самое.
Хотя имело бы смысл попробовать.
Стоит брать интересом. Да, среди школьников много гуманитариев, для которых и экзамен по математике сдать на три — большая задача, им еще паскаля не хватало. Зато у абсолютного большинства учеников дома есть компьютер. Они любят играть, копаться в винде, смотрят фильмы, пишут в ЖЖ и соцсетях. И тут оказывается, что они и сами могут сварганить что-то свое, что это не так и сложно. Это, наверное, должно быть каким-то открытием для ученика. Программиста школа все равно из него не сделает, как бы преподаватели не старались (банально не хватит времени), да и не стоит этого делать. Тут главное заинтересовать, показать, что такое программирование и как оно может помочь, и тогда начнут открываться таланты, которые пойдут по этой тропе дальше
Полностью согласнен. Интерес. Ruby, Python — на них можно делать что-то реальное, а SmallBasic гламурная игрушка ограниченная рамками намеченіми их создателями.
Те же графики для решения матфукций matplotlib.sourceforge.net/
Хотя лично меня решение математических задач удручало, но вот PyGame думаю очень бы заинтересовало, взять простую OpenSource игрушку, помодифицировать геймплей это интересно.
Черепашка есть?

Ну и для меня главный минус, это обязательный ООП, функция член класа.
В Python можно просто операторы последовательно исполнять.
Ой, в Руби тоже можно обойтись без ООП. В том смысле, что не концентрировать внимание, откуда взялись методы. В Hackety Hack, насколько я помню, ООП в туториалах и не встречалось. А ООП можно вводить как следующий этап («смотрите, дети, вот мы так часть делаем одно и то же в программе, давайте сделаем наш собственный метод» и показать def, а к классам переходить уже только по самой необходимости)

А вот о черепашке не знаю :(
Нативная черепашка на Tk есть здесь

А здесь полноценная среда на JRuby
Пусть лучше бейсик учат, чем паскаль. Бейсик хоть в среде администрирования, скриптования офиса и 1С пригождается.

Хотя ИМХО лучше давать сразу что-нибудь .NET-ное после бейсика и беглого разбора программ на функциях
Потом будет легко на VBA переключиться и решать сложные задачи в Excel'е, например.
Сложные задачи лучше решать не в VBA.
сложные задачи вообще решать не хочется:-(
Посмотрел на скрин, посмотрел на название и нахлынули воспоминания… Эх… ностальгия… может накопать где на компе старый добрый QBasic и понастольгировать :)…
Я вот тоже заинтересовался Small Basic -вчера весь вечер игрался: сырой он — рано его ещё детям показывать. Синтаксис очень неоднородный. Например, массивы там только ассоциативные (словари) с чудовищным синтаксисом: запись значения в массив — Array.SetValue(имя_массива, индекс, значение)
Может, к релизу его у «вылижут» до вменяемого состояния, а пока это чудовище какое-то. Головоломка для гика.
Какой Python? Какой Ruby?
Не в языке же счастье! Учить нужно принципам. Формировать алгоритмический склад ума. Пока маленький человек не поймет, что каждое действие можно разложить на последовательность шагов, что всё сложное состоит из простого и т.д. все языки для него будут для него только правилами расстановки закорючек.
Учите на псевдокоде!

А если хотите, чтобы компилировалось вот вам боярское программирование. ;)
Даёшь Erlang в 8-й класс :) Нет, ну серьезно. Дело ведь не в языке, а в программисте. CCleaner написан на VB, но программа-то хорошая.
Ну лично я бы предпочел Pascal, не согласен насчет неоправданных begin...end. Паскаль учит аккуратности, не дает скатиться в пучину вседозволенности и быдлокодерства аки PHP. Хочешь использовать переменную? Изволь её объявить. Сложить «12» и 5? Ни в коем разе — это разные типы данных. Учить надо именно этому, а не Small Basic'у.
З.Ы. Насчет Erlang не шутка. Он безумно простой и логичный. В отличие от.
Завяжите мне глаза, не верю! Холивар на Хабре: питон против бейсика! О чем можна тут спорить? )
Информатика, программирование, язык — хоть на китайском.
Алгоритмическое мышление.
Если ребятенку не объяснить цикл, массивы, то и черепашка не поможет.
Ок. появился (появился ли новый язык). Информатика!!!
Все остальное — суета.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории