Комментарии 171
Не, ну а чо — правильное дело делают. Язык васик по прежнему хорош для обучения самым азам.
Каким азам и почему? Рекурсия? Loop-ы? Чем сложно на каком-нибудь другом языке, в котором IDE генерит код и показывает с какой строчки начать писать, чтобы программка получилась?
ОК, хорошо. Я начинал учить программирование с языка С. Да, с чистого Си, без плюсов, без IDE, без генерации кода и вообще без ничего. И теперь, спустя почти пятнадцать лет, я понимаю что это было нихрена не правильное решение, и надо было идти стандартным путем — Васик — Паскаль — и только потом Си.
Васик хорош тем, что он очень слабо навязывает программисту стиль и синтаксис. Точки с запятыми не нужны. Отступы делай как хочешь. Типов нет. Все предельно просто и позволяет гораздо легче преодолеть самый первый, самый высокий барьер — написание первой самостоятельной (i.e.: не по книжке) программы.
Васик хорош тем, что он очень слабо навязывает программисту стиль и синтаксис. Точки с запятыми не нужны. Отступы делай как хочешь. Типов нет. Все предельно просто и позволяет гораздо легче преодолеть самый первый, самый высокий барьер — написание первой самостоятельной (i.e.: не по книжке) программы.
Вот отставьте. Вы предлагаете людям использовать этот мини-IDE и приводите как довод, то, что у вас не было в свое время такой среды? Неубедительно. Свобода от стиля, синтаксиса только губит. Я начинал с Pascal->C->C++. И если често, Pascal мне не особо помог что-то освоить. Да, он за меня решал квадратные уравнения, чтоб домашку с экрана списывать. Но для этой цели уж лучше б я на C писал. Легко != хорошо. Наверное, такой язык подойдет тем, кто программистом не хочет становится и будет просто писать скрипты, для облегчения рутинной работы. Только, сколько таких людей? Все, кто готов что-то учить для облегчения своей жизни или просто поковырять программирование используют какой-нибудь Python. Он тоже легок, актуален и хорошо задокументирован. Не знаю, может во мне играет нелюбовь к Basic, Pascal, Delphi, но все же…
Совершенно не согласен. СмолБасик позволяет с минимумом знаний создать что-то работающее и красивое. Именно это и нужно ребенку, чтобы у него возник интерес к программированию. Если его это зацепит — со временем он будет копать глубже и дальше. А идти надо от простого к сложному. Я не вижу ничего плохого в том, чтобы в начале писать программы мало понимая, что происходит на низком уровне, а уже потом копать глубже. Кто-то скажет, что учиться надо сразу правильно — сразу понимая, что лежит «на дне» — на мой взгляд это полный бред. В начале должен быть ИНТЕРЕС. Для ребенка — увидеть, что он сумел сделать что-то работающее и (для него это так) большое — самый важный первый шаг.
Мелкософту — аплодирую. :) (Я не их фанат — просто пытаюсь быть беспристрастным)
Мелкософту — аплодирую. :) (Я не их фанат — просто пытаюсь быть беспристрастным)
Мне одному кажется, что этот язык придумали не для обучения программированию, а для понимания природы работы вычислительных систем и программ?
руки прочь от питона!
Вы не думаете что каждый язык хорош для решения определенного круга задач? Так, Small Basic, как уже сказали выше, хорош для обучения азам. Паскаль в своё время был очень даже хорошим языком, да и сейчас на нем пишут люди. Не так много, но пишут. Например, Hedge Wars. С\С++ любой здравомыслящий челове наврятли станет использовать для написания какой-нибудь программы, которая в 2 строчки реализуется bash скриптом или питоновским скриптом. Касательно питона — очень мощный язык. И только потому что вы его не щупали как полагается, не надо делать выводов.
Вы не думаете что каждый язык хорош для решения определенного круга задач? Так, Small Basic, как уже сказали выше, хорош для обучения азам. Паскаль в своё время был очень даже хорошим языком, да и сейчас на нем пишут люди. Не так много, но пишут. Например, Hedge Wars. С\С++ любой здравомыслящий челове наврятли станет использовать для написания какой-нибудь программы, которая в 2 строчки реализуется bash скриптом или питоновским скриптом. Касательно питона — очень мощный язык. И только потому что вы его не щупали как полагается, не надо делать выводов.
Каких выводов? Таких, что для постижения азов и написания чего-нибудь быстрого и легкого он(Python) вполне подойдет?
Никто не говорил, что питон не мощный язык. Читайте внимательнее. Особенно не нападайте видя заминованный(почему?) коммент.
Никто не говорил, что питон не мощный язык. Читайте внимательнее. Особенно не нападайте видя заминованный(почему?) коммент.
Только, сколько таких людей? Все, кто готов что-то учить для облегчения своей жизни или просто поковырять программирование используют какой-нибудь Python.
Вот это выглядит словно Вы питон считаете просто скриптовым языком с возможностями на уровне командной строки винды. По-крайней мере мне так это видится.
что для постижения азов и написания чего-нибудь быстрого и легкого он(Python) вполне подойдет?
Может, и подойдет, но никак не для детей. Представьте себе как Вы будете объяснять ребенку что его код не работает из-за того что у него на одной строке вместо пробела стоит таб, или не хватает одного пробела. Для ребенка пустое место на экране всё пробел. И именно это одна из основных причин почему детям для изучения основ этот язык не подойдет. Для людей постарше он вполне сгодится, я с этим не спорю. Но почитайте еще раз внимательнее про целевую аудиторию проекта Small Basic.
Особенно не нападайте видя заминованный(почему?) коммент.
Я не нападаю, а просто говорю о том, что некоторые Ваши утверждения ну чуть более чем неверны и объясняю почему.
Вот это выглядит словно Вы питон считаете просто скриптовым языком с возможностями на уровне командной строки винды. По-крайней мере мне так это видится.
что для постижения азов и написания чего-нибудь быстрого и легкого он(Python) вполне подойдет?
Может, и подойдет, но никак не для детей. Представьте себе как Вы будете объяснять ребенку что его код не работает из-за того что у него на одной строке вместо пробела стоит таб, или не хватает одного пробела. Для ребенка пустое место на экране всё пробел. И именно это одна из основных причин почему детям для изучения основ этот язык не подойдет. Для людей постарше он вполне сгодится, я с этим не спорю. Но почитайте еще раз внимательнее про целевую аудиторию проекта Small Basic.
Особенно не нападайте видя заминованный(почему?) коммент.
Я не нападаю, а просто говорю о том, что некоторые Ваши утверждения ну чуть более чем неверны и объясняю почему.
Сам начинал с QBasic, лучайно найдя его на своем компьютере и увидев в какой-то книге код на нем решил переписать его туда. В первого раза не получилось, но потом методом тыка проб и ошибок получилось запустить его. Программа была простейшая, сложение двух чисел, но в 12 лет это было для меня открытием. В комплекте шла документация на английском по всем структурам языка, даже переводил на русский со словарем и записывал в отдельную тетрадку, т.к. спросить было некого, а об существовании интернета даже не подозревал (1999 год где-то). Когда программки стали увеличиваться и их стало тяжело читать, понял что нужно форматировать код. Дальше узнал о модулях, пошло разбиение на отдельные части, и так далее. И все это в одной наипростейшей IDE. Далее увидел VBA -> VB6 (диск был раздобыл в питере в переходе, проездом там был). Далее было знакомство с PHP, С/С++, Ruby и пошло поехало. Но основной интерес и навык был заложен тем самым QBasic, переродившийся ныне в SmallBasic.
Если там еще и можно что-то графическое сделать, то вобще круто. Для ребенка сделать что-то, которое будет бегать по формачке, отскакивать от краев будет на порядок интересней, чем идеально оформленный код на C/C++, который даст ощущение того, что он может сделать САМ, а там уже потянется к книгам/интернету, когда возможности среды иссякнут.
Если там еще и можно что-то графическое сделать, то вобще круто. Для ребенка сделать что-то, которое будет бегать по формачке, отскакивать от краев будет на порядок интересней, чем идеально оформленный код на C/C++, который даст ощущение того, что он может сделать САМ, а там уже потянется к книгам/интернету, когда возможности среды иссякнут.
В 12 лет первая программа? Мне вас жаль… Я в 12 уже в олимпиаде по программированию занимал призовые места.
а я наоборот сидел зачем-то на алгоритмических языках, когда можно было что-то дельное изучать.
И эта халатность:
>> Точки с запятыми не нужны. Отступы делай как хочешь. Типов нет.
приводит к тому что каждый форматирует как хочешь, а потом в этом «индуском» коде ни чего не разберешь.
Обучать нужно сразу правильно и стиль оформления должен быть единым, а не «как хочешь».
Я бейсики начал изучать еще со спектрума и там было их куча, даже «Лазер бейсик» :) И бейсик на 386 компе тоже изучал
мое мнение это все зря потраченное время, это же касается и паскаля. В Паскале мне не нравилось что нельзя рисовать, а тупо алгоритм делать. Должен сказать что детям не интересно делать алгоритмы им хочет рисовать :)
Я бы обучение программированию начинал на Java, т.к. там хорошая структура и нет сложной работы с памятью, в тоже время это все похоже на С++.
Дальнейший переход очень легкий на РНР или С++, собственно почти все 1:1, только новые заморочки добавляются
И эта халатность:
>> Точки с запятыми не нужны. Отступы делай как хочешь. Типов нет.
приводит к тому что каждый форматирует как хочешь, а потом в этом «индуском» коде ни чего не разберешь.
Обучать нужно сразу правильно и стиль оформления должен быть единым, а не «как хочешь».
Я бейсики начал изучать еще со спектрума и там было их куча, даже «Лазер бейсик» :) И бейсик на 386 компе тоже изучал
мое мнение это все зря потраченное время, это же касается и паскаля. В Паскале мне не нравилось что нельзя рисовать, а тупо алгоритм делать. Должен сказать что детям не интересно делать алгоритмы им хочет рисовать :)
Я бы обучение программированию начинал на Java, т.к. там хорошая структура и нет сложной работы с памятью, в тоже время это все похоже на С++.
Дальнейший переход очень легкий на РНР или С++, собственно почти все 1:1, только новые заморочки добавляются
В паскале можно рисовать!!!
Мы на первом курсе рисовали графики :) И даже какой-то танк…
Мы на первом курсе рисовали графики :) И даже какой-то танк…
Рисовали, факт ;) и неплохо, попрошу заметить, рисовали!
Я вообще игры писал на паскале. В начале текстовые, потом граические. В старших классах.
Рисовать можно и в QBasic'е. Моя первая запомнившаяся программа: человечек бегущий по горе. Код был переписан с Basic'а для компьютера Yamaha на QBasic. Отладка длилась три дня, так как я тогда еще не знал даже, что такое синусоида, которую нужно было нарисовать, которая являлась горой :) Потом человечек почему-то бежал немного выше, потом шлейф от него тянулся… Ностальгия :)
И вот именно эта программа и породила интерес к программированию, который в последующем перерос во все остальные интересы, связанные со сферой ИТ.
И вот именно эта программа и породила интерес к программированию, который в последующем перерос во все остальные интересы, связанные со сферой ИТ.
Да бросьте, на спектруме как раз бейсик — один из самых крутых бейсиков. Одно «автодополнение» в 1982г. чего стоит =)
Хм, о каком форматировании может идти речь в 5-7 классе? Почему большинство из комментирующих приравнивают это на себя? Или вы забыли сколько даже в вузе было ребят, которые не могли написать программу просто потому, что не понимали как составить алгоритм, как заставить компьютер его выполнять.
Целевая аудитория этого — не профессиональные программисты, а просто дети, которым в простой форме дается возможность изучить, что такое циклы, ветвления, методы, переменные. И изучить в дружественной манере без вырвиглазного синтаксиса. Я в школе учил паскаль и до сих благодарен, что это был именно он, а не С++, хотя синтаксис паскаля уже и не помню и вспоминать не хочу.
Целевая аудитория этого — не профессиональные программисты, а просто дети, которым в простой форме дается возможность изучить, что такое циклы, ветвления, методы, переменные. И изучить в дружественной манере без вырвиглазного синтаксиса. Я в школе учил паскаль и до сих благодарен, что это был именно он, а не С++, хотя синтаксис паскаля уже и не помню и вспоминать не хочу.
Нет, форматирование — это просто аккуратное представление кода. Сродни разборчивому почерку. И если маленькие заметки для себя можно писать коряво, то сочинение или важную бумагу лучше писать аккуратно. Так и в плане обучения программированию — сначала дети пишут программы абы как, а аккуратное форматирование вырабатывается уже само по себе дальше, если человек не забросил занятие.
Это вы зря, когдя я после Питона решил таки выучить Си, для мня наачался ад, с синтаксисом и точками с запятыми.
Умея программировать, выучить новый императивный язык несложно. Сложно сделать первый шаг, и вот здесь точки с запятыми только мешают.
С другой стороны питон, с аго обязательным форматированием дисциплинировал меня в отношении форматирования и комментирования кода.
В таком возрасте ребенок (т.к. это еще ребенок!) просто может не понять, почему какие-то глупые отступы могут иметь значение. Он может это зазубрить, но не понять — а это гораздо хуже
Common Lisp — есть вообще ВСЁ + синтаксис проще некуда. А Python+C можно уже сейчас.
О божы, еще один. Ну а вот теперь объясните на пальцах, в чем преимущество того, что функция — это first-class object, и почему это хорошо. Так, чтобы тринадцатилетний пацан, который не знает что такое функция, это понял, и так, чтобы ему стало интересно. Слушаю вас внимательно, и даже где-то перенимаю опыт.
И зачем именно это объяснять в самом начале пути? Такие вещи объясняют позже, а начинают с выражений, присвоений и т.п.
Не надо проецировать на меня свои домыслы, пожалуйста.
Не надо проецировать на меня свои домыслы, пожалуйста.
Вот именно. Поэтому ничего лучше старого доброго
Dim a = 1
придумать для самого начала пути просто нельзя. Я не пишу на Лиспе, но могу читать (ну ОК, пишу на уровне достаточном чтобы хачить свой ~/.emacs но это конечно не то).
Dim a = 1
придумать для самого начала пути просто нельзя. Я не пишу на Лиспе, но могу читать (ну ОК, пишу на уровне достаточном чтобы хачить свой ~/.emacs но это конечно не то).
Вообще, сдаётся мне, ваше представление о Lisp'ах весьма шаблонно: ФП, скобочки. Я прав?
Тринадцатилетний пацан изучает СЛАУ и преобразования (растяжение, сжатие, ...) функций, но не знает, что это такое?
Видел я людей, которые после Васика начинают изучать С, кругом лезут всякие goto, про while никогда не слышали и т.д., часто такой ужас получается, хоть стой, хоть падай.
Да и всегда думал, что язык программирования надо учить по книгам, а не в среде разработки со скудной документацией.
Сам изучал с Васика и понял, что мозг он не в ту сторону у меня выравнял, потом дело пошло на Pascal, потом на z-80 asm, а потом только на С/С++. Asm приучил меня к порядку, C/C++ научил меня правильной работе с ресурсами. И я считаю, лучше сразу взять к примеру книжку Страуструпа и сесть за С/С++. А не тратить время на изучение одного языка, потом форматированию мозга и изучению другого.
Да и всегда думал, что язык программирования надо учить по книгам, а не в среде разработки со скудной документацией.
Сам изучал с Васика и понял, что мозг он не в ту сторону у меня выравнял, потом дело пошло на Pascal, потом на z-80 asm, а потом только на С/С++. Asm приучил меня к порядку, C/C++ научил меня правильной работе с ресурсами. И я считаю, лучше сразу взять к примеру книжку Страуструпа и сесть за С/С++. А не тратить время на изучение одного языка, потом форматированию мозга и изучению другого.
Уважаемый, вы сами-то хоть понимаете какой бред несете? Страуструпа в 12-13 лет?! Вам самому не смешно?
Нет, не понимаю и не смешно. Хотя если основываться на том, как к примеру нас в школе учили информатике и как сейчас. Когда поменялась учительница, до этого учила преподовательница физики, поменяли на выпускницу по профилю информатики и класс знал больше её, было довольно смешно. Кто захочет, тот выучит.
А мне смешно. Я готов посмотреть, как вы объясните своей тринадцатилетней сестре концепцию поток ввода-вывода, и почему std::cout << «Hello world!» << std::endl; нагляднее чем TextWindow.WriteLine(«Hello world!»)
Я не знаю как сестра, а у нас парень работает, который в 13 лет её читал, с ним ничего не случилось, программирует на ура сейчас. Я всегда считал, что сложность обучения обусловлена только одним фактором — желанием.
Уж не считаете ли вы, что в 18+ лет к примеру мозг человека лучше обучается, да, к этим годам он накопит больше опыта, но вот чем меньше годиков, тем лучше обучается и 12-13 лет вполне подходящий возраст.
Да, в данной книге очень много всего, но и изложено все довольно просто. Я в эти года читал книги и в более сложном изложении и уже изучал теорию программирования, а не только конкретный язык программирования, у меня просто было желание.
Уж не считаете ли вы, что в 18+ лет к примеру мозг человека лучше обучается, да, к этим годам он накопит больше опыта, но вот чем меньше годиков, тем лучше обучается и 12-13 лет вполне подходящий возраст.
Да, в данной книге очень много всего, но и изложено все довольно просто. Я в эти года читал книги и в более сложном изложении и уже изучал теорию программирования, а не только конкретный язык программирования, у меня просто было желание.
Экий вы умный, да и парень тот тоже не промах! Вы молодцы, и гении и вообще суперзвезды. А нам, простым смертным, надо б что попроще, чтоб разобраться сперва, стало быть. А вот уж если разберемся, то там и по Страуструпу пойдем, и глядишь, может и догоним гениев-то наших.
12-13, может, и подходящий возраст. Но наверняка у этого парня была до Страуструпа хоть какая-то подготовка?.. Я не представляю, как можно научить программировать по «Языку программирования C++». Эта книга не для начинающих предназначена. Ладно еще «Программирование. Принципы и практика использования C++» того же Бьярне.
А Small Basic предназначен, скорее, для тех, кто помладше, когда важно прежде всего заинтересовать ребенка.
А Small Basic предназначен, скорее, для тех, кто помладше, когда важно прежде всего заинтересовать ребенка.
> Сам изучал с Васика и понял, что мозг он не в ту сторону у меня выравнял
Так это проблема мозга, а не бейсика. Ваш комментарий целиком завязан на установке «мне изучение бейсика пошло во вред, значит это зло». Ваш опыт — всего лишь ваш опыт, это не значит что все будут себя чувствовать также. Вообще, ни одна технология не может навредить обучаемому, если обучаемый желает учиться постоянно. Тот кто не хочет учиться — сидит всю жизнь на бейсике, а потом, начинает жаловаться, мол вот он мне всю карьеру испортил, ах если бы я начал с Си, все было бы иначе. Да не было бы. Никто насильно не заставляет юзать бейсик, чувствуете что не ваше или уже выросли из его рамок, переходите на следующий уровень. Мы все разные и в обучении тоже. Лично я считаю Бейсик и Паскаль — идеальными языками. А конкретно Small Basic — сделан просто великолепно. Я бы очень хотел чтобы у меня был именно он, а не QBasic без документации (да еще в пору когда не было инета и книжки были редкостью по IT)
Так это проблема мозга, а не бейсика. Ваш комментарий целиком завязан на установке «мне изучение бейсика пошло во вред, значит это зло». Ваш опыт — всего лишь ваш опыт, это не значит что все будут себя чувствовать также. Вообще, ни одна технология не может навредить обучаемому, если обучаемый желает учиться постоянно. Тот кто не хочет учиться — сидит всю жизнь на бейсике, а потом, начинает жаловаться, мол вот он мне всю карьеру испортил, ах если бы я начал с Си, все было бы иначе. Да не было бы. Никто насильно не заставляет юзать бейсик, чувствуете что не ваше или уже выросли из его рамок, переходите на следующий уровень. Мы все разные и в обучении тоже. Лично я считаю Бейсик и Паскаль — идеальными языками. А конкретно Small Basic — сделан просто великолепно. Я бы очень хотел чтобы у меня был именно он, а не QBasic без документации (да еще в пору когда не было инета и книжки были редкостью по IT)
Императивный стиль он навязывает ещё как.
По поводу того, хорошо ли «отступы делай как хочешь» и «типов нет» — это ещё можно поспорить.
По поводу того, хорошо ли «отступы делай как хочешь» и «типов нет» — это ещё можно поспорить.
Императивный стиль — да. Но чтобы навязывать функциональный стиль, обучаемый должен понимать что такое функция, что такое аргументы функции, не говоря уже про концепции более высокого порядка. Это подразумевает знание математики, а именно этого в таком возрасте и нет.
Для меня, например, было адом понять что такое «функция» и что означает что функция «возвращает» значение, и нафига нужны функции которые возвращают «пустое» значение — это взрывало мой тринадцатилетний моск.
Для меня, например, было адом понять что такое «функция» и что означает что функция «возвращает» значение, и нафига нужны функции которые возвращают «пустое» значение — это взрывало мой тринадцатилетний моск.
Для меня, например, было адом понять что такое «функция» и что означает что функция «возвращает» значение, и нафига нужны функции которые возвращают «пустое» значение — это взрывало мой тринадцатилетний моск.
Вот именно, императивное понятие «функция» взрывает мозг.
А по алгебре в 13 лет вполне себе проходят преобразования математических функций. Т.е. понятие о функциях в ФП у них уже есть.
Сама среда разработки красивая. Игрался с ней с удовольствием. Но с другой стороны не уверен, что данный подход верен. Может детям лучше сразу осваивать, например, C#, Java и т.д.
Сначала бы блок-схемы алгоритмов порисовать, а потом уже можно любой высокоуровневый язык осваивать.
А то часто просто сперва не понимают какой алгоритм, например, у вычисления корней квадратного уравнения, а уже пытаются его закодить на паскале или C#.
А то часто просто сперва не понимают какой алгоритм, например, у вычисления корней квадратного уравнения, а уже пытаются его закодить на паскале или C#.
IMHO, детей надо учить не какому-то конкретному языку программирования.
у детей надо развивать «алгоритмический» образ мышления и умение «обёртывать» эти алгоритмы во что-то уже осязаемое. поэтому простой язык программирования подходит для этого больше всего.
а всякие языки более высогого уровня они, при желании, выучат позже. главное — научиться «правильно» мыслить.
у детей надо развивать «алгоритмический» образ мышления и умение «обёртывать» эти алгоритмы во что-то уже осязаемое. поэтому простой язык программирования подходит для этого больше всего.
а всякие языки более высогого уровня они, при желании, выучат позже. главное — научиться «правильно» мыслить.
Ничего не лучше. Во-первых чем больше языков выучишь, тем проще выучить новый (это верно и для естественных языков), во-вторых по кой фиг маленьким детям копаться в диких наворотах настроек реальных IDE если им надо просто научиться алгоритмически мыслить.
Угу. И преподавателям преподать java и c# ))) (на должном уровне)
Смотря с какого возраста начинать. Думаю, среднему пятикласснику не будут особо интересны Java или C#, все-таки нет такой яркой и простой среды разработки, пособий, языки слишком обширны и сложны, поскольку предназначены для реальной разработки. Их будет не просто этим заинтересовать. При этом, перейти со SmallBasic на C# будет уже гораздо проще. Ну а для более старших школьников C# или Java вполне подойдут. У Майкрософт вон есть книга «C# для школьников», которую можно свободно скачать с MSDN.
В Basic, насколько я понимаю, динамическая типизация. Там есть библиотеки для черепашьей графики и всяких других подобных вещей. Для начинающих это правильно. IMO, маленького ребенка не нужно учить всяким типам данных, алгоритмам. Его важно завлечь, а затем уже, после того, как ему это понравится, продолжать обучение на более серьезном уровне. И понятная среда разработки, всячески помогающая программировать, очень важна.
А затем, когда ребенок поймет, что ему это нравится, уже стоит начинать рассказывать про серьезные вещи.
А затем, когда ребенок поймет, что ему это нравится, уже стоит начинать рассказывать про серьезные вещи.
Эхх… А я как раз классе в 8м писал на ассемблере под Z-80. Славные были времена…
Вот я бы от такой штуки в Microsoft Office вместо стандартного VisualBasic не отказался… Так, чтобы просто и с подсказками.
VisualBasic не плох для автоматизации офиса, редактор бы ему подкрутили малясь. А то всегда норовит по одной строке интерпретировать.
Лучше бы вместо VB туда C# вкорячили…
я каждый раз заново начинаю VB учить, когда приходится что-то для office «подписать/подпилить». Каждый раз одно и тоже: Как там переменная то делается? Как там цикл for организовать? Чё; нету чтоли? А как же закрыть этот цикл } не катит…
Просто на всём спотыкаюсь.
я каждый раз заново начинаю VB учить, когда приходится что-то для office «подписать/подпилить». Каждый раз одно и тоже: Как там переменная то делается? Как там цикл for организовать? Чё; нету чтоли? А как же закрыть этот цикл } не катит…
Просто на всём спотыкаюсь.
Попробуйте вот так:
hello:
i = i + 10
GraphicsWindow.DrawText(100, i, "HELLO WORLD")
Goto hello
там метки в стиле ассемблера, смотри справа пример на твоем скриншоте.
Странно что так сделали, стандартный бейсик имел метки как у тебя.
Странно что так сделали, стандартный бейсик имел метки как у тебя.
вы б хоть тег «ирония» проставили, а то же не поймут :)
Хорошая тема для обсуждения, кстати.
Я в своё время начинал учиться на различных бейсиках советских компьютеров типа БК/ДВК/АГАТ, и затем на ZX Spectrum. На PC перешёл на паскаль, затем долго сидел под MS Visual Basic.
Сейчас моему сыну 8 лет, и я думаю, что уже самое время начать учиться программировать. Признаюсь, думал начать с питона, как с самого простого сегодня языка. У кого-то есть похожий опыт с детьми?
Я в своё время начинал учиться на различных бейсиках советских компьютеров типа БК/ДВК/АГАТ, и затем на ZX Spectrum. На PC перешёл на паскаль, затем долго сидел под MS Visual Basic.
Сейчас моему сыну 8 лет, и я думаю, что уже самое время начать учиться программировать. Признаюсь, думал начать с питона, как с самого простого сегодня языка. У кого-то есть похожий опыт с детьми?
детям главное хорошо составленная программа обучения ;)
что бы было интересно и понятно
что бы было интересно и понятно
Я работал год преподавателем программирования. Насчет Питона ничего не могу сказать, но вот Си очень тяжело идет. Причем ученики у меня были в основном 9-10 класс. Мне кажется, что и Питон не стоит.
Pascal идет лучше всего. Пока не было другого языка, столь популярного у школьников. Но из си-программистов выходят неплохие олимпиадники, не особо понимаю с чем это связано, может из-за сложности обучения и кучи томов документации и развиваются определенные навыки, которые полезны для спортивного программирования
Ну я и с Паскалем учавствовал в олимпиадах. Правда потом его запретили на олимпиадах всероссийского уровня.
Дело в том, что в спортивном программировании язык — всего лишь инструмент. В олимпиадах — главное алгоритмы и умение нестандартно решать стандартные ситуации.
Дело в том, что в спортивном программировании язык — всего лишь инструмент. В олимпиадах — главное алгоритмы и умение нестандартно решать стандартные ситуации.
не мучайте ребенка, в 8 лет пусть гуляет с друзьями и катается на велосипеде. я бы ненавидел программирование, если бы меня в 8 лет питону обучали. может уж с C + WinApi начать, чтобы настоящий программист вырос?
тогда уж C++ + QT, пусть постигает ООП и MVC
Я не собираюсь ему WinAPI преподавать.
Я другое хочу — чтобы у человека способ мышления постепенно нужный выстраивался, поэтому и ищу какой-нибудь простой язык. Не знаю, может с программируемой черепашки начать? :)))
Я другое хочу — чтобы у человека способ мышления постепенно нужный выстраивался, поэтому и ищу какой-нибудь простой язык. Не знаю, может с программируемой черепашки начать? :)))
Неплохая идея, а вообще, нужно научить ребенка в какой-нибудь игровой форме составлять простые алгоритмы. Думаю есть какая-нибудь игра, где, например надо drag-n-drop коммандами робота программировать
Вот есть замечательная вещь для детей от того же майкрософта. Как раз таки драг-н-дропом создавать игры, и ветвления там есть и циклы! Посмотрите, замечательная вещь: http://fuse.microsoft.com/page/kodu.aspx
То, что доктор прописал: habrahabr.ru/blogs/study/80832/
Черепашка эволюционировала в котика. Детей, видимо, правильно учить Scratch (вроде, в Стэнфорде вводный курс по CS начинается тоже с него).
Знаю людей, коорые преподают у нас в России это в школах.
Mcrosoft с его Small Basic'ом тоже можно понять. Ему не нужны программирующие дети, ему нужны дети, программирующие на .Net.
Знаю людей, коорые преподают у нас в России это в школах.
Mcrosoft с его Small Basic'ом тоже можно понять. Ему не нужны программирующие дети, ему нужны дети, программирующие на .Net.
Я начинал программировать в 6 лет как раз на Васике. Ну купили мне родители игрушку, Вектор-06Ц (типа спектрума), там еще игры с кассет. Ну и Бэйсик конечно, где еще метки цифрами и программу построчно вводить надо было, ибо IDE не было, а сразу консоль интерпретатора. Помню там был курс красочных уроков языку и основам ПК — программок на нем же. После их просмотра как раз и захотелось освоить.
Вот было интересно, сочинял простенькие программки, рисовал. По мере роста математического аппарата уже вещи поинтереснее делал. Паскаль впервые увидел уже в старших классах школы и он мне не понравился…
Ну а потом был x86 ассемблер, скриптовые языки, sql и прочее. Честно говоря C++ до сих пор не владею, только C :). Надо будет книжку почитать :)
Вот было интересно, сочинял простенькие программки, рисовал. По мере роста математического аппарата уже вещи поинтереснее делал. Паскаль впервые увидел уже в старших классах школы и он мне не понравился…
Ну а потом был x86 ассемблер, скриптовые языки, sql и прочее. Честно говоря C++ до сих пор не владею, только C :). Надо будет книжку почитать :)
это вы говорите с точки зрения программиста. вам это интересно было, вы этим занимались. поставьте себя на место любого нормального :) человека.
> Ну а потом был x86 ассемблер, скриптовые языки, sql
да никто даже из взрослых не знает что это такое! и ребенок 8 летний не знает. и отнимать у него детство, изучая с ним питон мне кажется неправильным. имею в виду, что своих детей точно обучать специально не буду, вот если подойдет и спросит «а что это папа делает», тогда другой разговор. значит, ему это тоже интересно и можно с ним позаниматься.
> Ну а потом был x86 ассемблер, скриптовые языки, sql
да никто даже из взрослых не знает что это такое! и ребенок 8 летний не знает. и отнимать у него детство, изучая с ним питон мне кажется неправильным. имею в виду, что своих детей точно обучать специально не буду, вот если подойдет и спросит «а что это папа делает», тогда другой разговор. значит, ему это тоже интересно и можно с ним позаниматься.
Тоже почему-то кажется, что есть смысл ребенка начинать учить с питона…
С первого взгляда синтаксис не сложнее чем у Small Basic, функциональный и объектный паттерны, вроде как используется при программировании Lego Mindstorms. И самое главное — сразу у малыша в руках оказывается вся прикладная мощь языка с блэкджеком и шлюхами ;-)
С первого взгляда синтаксис не сложнее чем у Small Basic, функциональный и объектный паттерны, вроде как используется при программировании Lego Mindstorms. И самое главное — сразу у малыша в руках оказывается вся прикладная мощь языка с блэкджеком и шлюхами ;-)
Мне кажется, что лучше начинать изучать программирование все таки с Паскаля. Там и компилятор хороший — на все ошибки укажет, да и язык более менее серьезный, даже указатели есть. По-моему Бейсик только развращает.
к тому же он бесплатен, ИМХО лучший вариант для школьников
Почему-то сразу же вспоминается одна всем известная компания фаст-фуда, которая «подсаживает» своих клиентов на свои продукты с раннего возраста.
P.S. Хотя, конечно же, Microsoft в отличии от той компании, занимается полезным делом! Молодцы! Я бы обязательно показал эту вещь своему ребенку.
P.S. Хотя, конечно же, Microsoft в отличии от той компании, занимается полезным делом! Молодцы! Я бы обязательно показал эту вещь своему ребенку.
«It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.»
Edsger Dijkstra
Edsger Dijkstra
О, испробую на дочке. :)
Начинать нужно с черепашки LOGO.
Пока ничего более привлекательного для детей не придумали.
Именно в такой последовательно
LOGO. Учит разбивать задачу на подзадачи т.е. в виде последовательностей команд.
BASIC. Учит логическим ветвлениям потока управления. Обычно учат блок схемы параллельно.
PASCAL. Учит строгой типизации, работе с памятью, и служит базой для обучению алгоритмам.
Дальше можно идти от задачи
С++ чтобы учить ООП.
LISP функциональному программированию
Perl скриптингу
GPSS моделированию СММ
итд.
Пока ничего более привлекательного для детей не придумали.
Именно в такой последовательно
LOGO. Учит разбивать задачу на подзадачи т.е. в виде последовательностей команд.
BASIC. Учит логическим ветвлениям потока управления. Обычно учат блок схемы параллельно.
PASCAL. Учит строгой типизации, работе с памятью, и служит базой для обучению алгоритмам.
Дальше можно идти от задачи
С++ чтобы учить ООП.
LISP функциональному программированию
Perl скриптингу
GPSS моделированию СММ
итд.
будет, наверное, сложновато подсадить на такую игру ребенка, но есть игра в которой нужно писать поведение танка на java и потом сражаться с помощью своего программируемого танка с танками, написанными другими программистами. Самая соль этой игры, что можно посоревноваться на одном поле с другом просто попросив файл с байт-кодом его танка
там не про ту игру вот сама игра
То о чем писал я — это обучить навыкам програмирования,
приблизительно в той же манере, что, например, математике.
Это педагогический подход, в основном за счет упражнений
(задач и так далее), где смысл в том чтобы заинтересовать ребенка
конкретной задачей.
Вы же пытаетесь навязать ребенку интерес к программированию, и это
немного другое. И с моей точки зрения с вашей стороны было ошибкой
связать игры и программирование, тем более если он видел современные игры.
Задача должна быть достижимой. Более того, чем младше ребенок, и
тем меньше у него время концентрации и разочарование наступает очень быстро.
приблизительно в той же манере, что, например, математике.
Это педагогический подход, в основном за счет упражнений
(задач и так далее), где смысл в том чтобы заинтересовать ребенка
конкретной задачей.
Вы же пытаетесь навязать ребенку интерес к программированию, и это
немного другое. И с моей точки зрения с вашей стороны было ошибкой
связать игры и программирование, тем более если он видел современные игры.
Задача должна быть достижимой. Более того, чем младше ребенок, и
тем меньше у него время концентрации и разочарование наступает очень быстро.
Смысл начального обучения в том чтобы у ребенка был бы базовый инструмент,
то есть базовые знания.
Вот если бы у вашего обучаемого уже были начальное понимание системного подхода, контекста исполнения и понимание ветвления потока управления я бы не волновался.
Именно в том что вы взяли язык высокого уровня абстракции, мне кажется ваша ошибка и заключается. Посмотрим что получится.
Чем меньше ребенок, понимает тем больше для него это выглядит магией, чем больший процент магии тем меньше шансов на успех.
то есть базовые знания.
Вот если бы у вашего обучаемого уже были начальное понимание системного подхода, контекста исполнения и понимание ветвления потока управления я бы не волновался.
Именно в том что вы взяли язык высокого уровня абстракции, мне кажется ваша ошибка и заключается. Посмотрим что получится.
Чем меньше ребенок, понимает тем больше для него это выглядит магией, чем больший процент магии тем меньше шансов на успех.
дальше нужно идти не от задачи, а от предпочтений ребенка(хотя, если он хорошо освоил паскаль, он уже не совсем ребенок)
В smallbasic есть черепашка
я неправильно изучал программирование %)
вначале Logo, а затем сразу C++
вначале Logo, а затем сразу C++
На смену лого уже давно пришел Scratch.
(сам был в шоке, когда узнал в 2008 году).
(сам был в шоке, когда узнал в 2008 году).
а про colobot почему никто не вспомнил? игра и программирование в одном флаконе
Интересно для второклассника подойдет? Немогу ничем заинтересовать… только игры :)
Первая ссылка ведёт на английскую версию 0.95. Надо бы поправить…
Visual Studio LightSwitch?
Класс, сначала WebMatrix, теперь Small Basic. Первый нашел отличное применение и во взрослых проектах. Интересно, найдет ли второй :)
удиваляют те, кто считают, что обучение нужно начинать с джавы, си шарпа или даже си.
поясню на примере:
#include <stdio.h> — тут говорим «ну просто ТАК НАДО»
int main() { — тут ок, «это наша программа»
char str[50]; — тут мы говорим «это будет строка, из 50 символов»
int num; — это число, тоже понятно
scanf("%s",str); — тут мы пытаемся объяснить, что это значит. допустим, объяснили
scanf("%d",&num); — а теперь попытайтесь объяснить этот амперсанд
return 0;
}
чтобы объяснить &num, нужна концепция «взятие адреса». нужно будет рассказать отличие значения и адреса. и почему в str это работает. и как выделяется память. и про нулевые указатели. потом встретится segmentation fault. нужно будет рассказать, почему программа «просто не выведет мне ошибку»
поясню на примере:
#include <stdio.h> — тут говорим «ну просто ТАК НАДО»
int main() { — тут ок, «это наша программа»
char str[50]; — тут мы говорим «это будет строка, из 50 символов»
int num; — это число, тоже понятно
scanf("%s",str); — тут мы пытаемся объяснить, что это значит. допустим, объяснили
scanf("%d",&num); — а теперь попытайтесь объяснить этот амперсанд
return 0;
}
чтобы объяснить &num, нужна концепция «взятие адреса». нужно будет рассказать отличие значения и адреса. и почему в str это работает. и как выделяется память. и про нулевые указатели. потом встретится segmentation fault. нужно будет рассказать, почему программа «просто не выведет мне ошибку»
Ява ещё хуже. одна магия:
import java.io.BufferedReader; — сложно объяснить, что значат эти строки, если этот язык программирования первый
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.ParseException;
public class InputHandler{ — что такое класс?
public static void main(String[] args) { — а теперь попробуйте объяснить, что значит static
System.out.println(«Reading from console.»);
double numberFromConsole; — отличие «строки» и «числа» довольно понятное. чем числа отличаются между собой, объяснить сложнее.
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
DecimalFormat df = new DecimalFormat();
Number n = df.parse(s);
numberFromConsole = n.doubleValue(); — тут нужно будет рассказывать про типы данных. долго и обстоятельно
} catch (IOException e) { — тут будет опять рассказ про классы и новый рассказ про исключения
numberFromConsole = 0;
} catch (ParseException e) {
numberFromConsole = 0;
}
System.out.println(numberFromConsole );
}
}
из всего этого человек поймёт в лучшем случае строчку с println. потому что это не язык, с которого нужно начинать обучение.
import java.io.BufferedReader; — сложно объяснить, что значат эти строки, если этот язык программирования первый
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.text.ParseException;
public class InputHandler{ — что такое класс?
public static void main(String[] args) { — а теперь попробуйте объяснить, что значит static
System.out.println(«Reading from console.»);
double numberFromConsole; — отличие «строки» и «числа» довольно понятное. чем числа отличаются между собой, объяснить сложнее.
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
DecimalFormat df = new DecimalFormat();
Number n = df.parse(s);
numberFromConsole = n.doubleValue(); — тут нужно будет рассказывать про типы данных. долго и обстоятельно
} catch (IOException e) { — тут будет опять рассказ про классы и новый рассказ про исключения
numberFromConsole = 0;
} catch (ParseException e) {
numberFromConsole = 0;
}
System.out.println(numberFromConsole );
}
}
из всего этого человек поймёт в лучшем случае строчку с println. потому что это не язык, с которого нужно начинать обучение.
Согласен с Вами. Несколько раз пытался объснить своим ученикам, что такое &num. Так и не поняли. Писали почти все вот так: scanf("%d", num). А потом вопрос: «А почему с клавиатуры не вводится???». Некоторые писали правильно, но все равно не понимали зачем это нужно. Поэтому Бейсик или Паскаль идеальный вариант. ReadLn() и WriteLn() — и никаких проблем.
Мда, сыровато пока что.
Например, набираю TextWindow.WriteLine(«Hello, World!»), запускаю — работает. Перехожу на следующую строчку, жму Alt+Space — вылет. (Win7ПрофSP1)
Например, набираю TextWindow.WriteLine(«Hello, World!»), запускаю — работает. Перехожу на следующую строчку, жму Alt+Space — вылет. (Win7ПрофSP1)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Выпущена финальная версия Small Basic 1.0!