Здравствуйте, FreshMeat, Вы писали:
FM>Пару лет назад встречал игру, для начинающих изучать программирование — с помощью простейших команд на с++ надо было программировать робота, чтобы он собирал ресурсы на карте. Как называется не помню, но гугл говорит, что подобных игрушек достаточно много http://www.cs.mcgill.ca/~stever/games/
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Павел Кузнецов, Вы писали:
>>> Один наш мужик на западе живущий, написал книжку для изучения С++ как раз малышами типа до 10 лет... <...> Если интересно, могу найти координаты — у него даже сайт есть, на английском...
ПК>>Конечно, интересно LVV>Постараюсь найти. Фамилия его, если не ошибаюсь, Самойлов...
Сайт: www.samojlov.be
Из план-проспекта:
"Дата: 4 декабря 2003 года.
Рабочее название: <Анимационный метод обучения языку С++ >. Модуль 1.
Автор: Самойлов Аркадий.
Тема книги: Обучение программированию на языке С++ для начинающих.
Сопровождается компакт диском с анимацией. "
Электронный адрес, указанный на сайте:
doubleplus@samojlov.be
Электронный адрес c одного из писем моей с ним переписки: pomogu2003@mail.ru
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, bestix, Вы писали:
B>Доброе время суток! B>Собственно сабж. Сам программист, вот думаю сына начать обучать. С какого языка посоветуете? B>С уважением.
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>Конечно, интересно
Сайт: www.samojlov.be
Из план-проспекта:
"Дата: 4 декабря 2003 года.
Рабочее название: <Анимационный метод обучения языку С++ >. Модуль 1.
Автор: Самойлов Аркадий.
Тема книги: Обучение программированию на языке С++ для начинающих.
Сопровождается компакт диском с анимацией. "
Электронный адрес, указанный на сайте:
doubleplus@samojlov.be
Электронный адрес c одного из писем моей с ним переписки: pomogu2003@mail.ru
Сообщил Адаменко Анатолий Николаевич из из-ва Питер
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Трурль, Вы писали:
Т>На бейсике не станет, однозначно.
На этот вопрос ответил Норвежмкий Лесной:
10. Q: "Когда я был в первом классе, ко мне подошел старшеклассник и предложил писать с ним программу на Бейсике. Я стал отказываться, но он меня заставил. С тех пор я пишу программы только на Бейсике. Иногда, когда родители уходят, мы собираемся группой по 6-8 ребят и пишем программы на Бейсике вместе.
Год назад я познакомился с девушкой, и она предложила мне писать программу на Паскале. У меня ничего не вышло: меня стошнило и потом долго болела голова.
Зовут меня Валерий Павлович, в сентябре мне исполнится 47 лет. Моя жизнь сломана".
A: Я обращаюсь в первую очередь к взрослым: объясните своим детям, какие опасности подстерегают их в школе, на улице, в гостях. Расскажите, что с ними могут сделать взрослые дяди с нарушенной психикой. Только не нужно слишком запугивать — дети очень впечатлительны, у них могут сложиться комплексы, которые будут потом мешать в их взрослой жизни.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
B>Собственно сабж. Сам программист, вот думаю сына начать обучать. С какого языка посоветуете?
ИМХО сначало стоит оценить матаппарат и степень развития абстрактного мышления. Может и не с какого. А для прикола и для себя, предварительно рассказав про блок-схемы (для начала достаточно блоков условного и безусловного перехода), попросите изобразить алгоритм переправы через реку, или кипячения воды(первое поинтереснее). Если Вы этого еще не практиковали, результат может быть для Вас важным.
Don't crash the ambulance, whatever you do!
ICQ#327823673
In her dealings with man Destiny never closed her accounts. (c) Oscar Wilde
Алан Кей по этому поводу прочитал лекцию Doing with Images Makes Symbols.
Суть в том, что Smalltalk предоставляет отличную среду обучения программированию.
В основе ее лежит чистая объектная концепция — есть объекты и они обмениваются сообщениями. Графическая среда Morphic визуализирует эту концепцию. Объекты представляются визуальными элементами, которыми можно непосредственно манипулировать, создавать, помещать один в другой, изменять атрибуты, добавлять поведение и т.д.
Именно такой стиль — exploratory programming — максимально соответствует способу обучения у детей. Они все предметы берут в руки, ощупывают, пробуют на вкус, бросают и т.д.
А после того, как получен некоторый экспириенс, постепенно можно вводить концепции, объясняющие что и как работает.
Как говорит Алан Кей, от манипулирования образами идет переход к математическим символам.
Кроме того есть деятельность, которая непосредственно не связана с математикой — прототипирование интерфейса, рисование, сочинение музыки. Короче все, что связано с воображением (см. скриншоты Squeak-а).
Стоит отметить, что этот способ изучения нового верен не только для детей. Надо лишь вспомнить как студентам объясняют производные, интегралы, скорость, энергию, импульс и т.д. Сначала подается некоторый образ, после чего к нему привязываются некоторые теоретические выкладки. Если опустить эти образы, то теория будет воприниматься "потому что так надо", у мозга не будет никаких шансов связать ее с реальным миром, а значит не будет никакого воображения.
Если детям сразу дать теорию групп, теорию графов, лямбда-счисление, то они просто загнутся от обилия неинтуитивных знаний. Сразу потеряется весь интерес. Это должно быть похоже на игру, а не на зазубривание. Языки вроде Ocalm, ML, Haskell можно изучать будучи постарше, когда проявляется интерес к теоретическим вещям. Тогда это действительно будет эффективно, особенно параллельно с изучением высшей математике.
Также поражают люди, соведующие в качестве первого языка C++/Delphi/Java/whatever. Зачем так сразу учить плохому? Эти языки годятся только лишь для вечерних курсов переквалификации для устройства на работу.
В качестве хорошей теоретической основы или эффективного персонального инструмента они ну никак не годятся...
Здравствуйте, _vovin, Вы писали:
_>В основе ее лежит чистая объектная концепция — есть объекты и они обмениваются сообщениями.
Я вот одного не пойму — зачем объектная-то?
Думаю, абсолютное большинство здесь присутствующих начинало совсем не с неё. И я тоже начинал не с неё, хотя когда я начинал, объектных языков было пруд пруди. И я очень даже рад, что всякие нехорошие люди не начали кормить меня разнообрасными Java и Smalltalk, иначе я в программирование мог бы так и не въехать.
Astaroth wrote:
> Здравствуйте, _vovin, Вы писали: > > _>В основе ее лежит чистая объектная концепция — есть объекты и они обмениваются сообщениями. > > Я вот одного не пойму — зачем объектная-то? > Думаю, абсолютное большинство здесь присутствующих начинало совсем не с неё. И я тоже начинал не с неё, хотя когда я начинал, объектных языков было пруд пруди. И я очень даже рад, что всякие нехорошие люди не начали кормить меня разнообрасными Java и Smalltalk, иначе я в программирование мог бы так и не въехать.
И зря начинало не с нее. Тут логика в другую сторону — детям больше
всего подходит обучение в виде игры — на уровне манипуляции какими-то
объектами, напоминающее что-то в реальном мире. Например, могут
нарисовать машинку и управлять ею. Или нарисовать модель солнечной
системы и запустить вращение.
А какая концепция больше всего подходит такому способу обучения? При
отсутствии больших познаний в математике?
Предикативная логика, лямбда-счисление, структурная декомпозиция?
Скорее всего именно объект-сообщение, т.е. объектная среда, где все
делается непосредственным манипулированием.
Напомню как разрабатывался сам Smalltalk.
Конечной целью было получить систему со следующими возможностями:
1) Малые части обладают теми же возможностями, что и система в целом
(рекурсивный дизайн)
2) Система развивается с помощью последовательного изменения своего
состояния (итеративность)
3) Части системы обмениваются сообщениями и инкапсулируют свое состояние
В качестве метафоры был выбран биологический организм, в котором
отдельные клетки содержат в себе всю необходимую информацию (днк) и
обмениваются с другими клетками информацией только посредством сообщений
(электро-химических).
Отсюда появился объектный подход — объект-состояние-сообщение.
Реализовывался он так же итеративным способом с двухлетним циклом:
1) Сначала появлялась идея, как все это можно реализовать.
2) Делалась первоначальная имплементация
3) Системой начинали пользоваться прикладные разработчики, создающие
оконную систему, среду разработки, редакторы, и т.д.
4) Параллельно с этим велось обучение групп детей для определения
насколько эффективна система в первоначальном компьютерном образовании
5) После этого вся эта информация собиралась и анализировалась для
внесения корректив на следующей итерации
Таким образом были созданы Smalltalk-72, Smalltalk-74, Smalltalk-76,
Smalltalk-78, Smalltalk-80.
Современные реализации поддерживают совместимость с Smalltalk-80.
Как нетрудно заметить объектный подход фактически является
непосредственным родоначальником agile development, а разработка
Smalltalk является первым его применением.
Объектный язык разрабатывается объектным подходом. Опять рекурсивный
дизайн.
Какой язык может еще похвастаться тем, что был разработан на основе
фактических данных, полученных в ходе нескольких итераций разработки
прикладного ПО и обучения?
Я думаю немного, на ум сразу приходят такие специализированные вещи как
Erlang. Кстати Erlang имеет концепции очень близкие к Smalltalk-72 —
каждый объект был процессом (что такое поток исполнения в биологическом
организме?), а сообщения могли обрабатываться как синхронно, так и
асинхронно.
Теперь по поводу обучения и Smalltalk.
Видел я как-то презентацию года 76-ого. В ней, в числе прочего, было
рассказано, как 16-летний школьник-радиолюбитель создал редактор
электрических схем. Выглядело это как привычный CAD, была и библиотека
элементов, и перетаскивание мышкой, и соединение контактов.
Как было сказано, в последствии и за более простые программы
аналогичного профиля (вспоминаем какой был год, и Smalltalk-а в public
domain еще не было) получали докторскую степень.
Также слышал отзывы современных родителей, как их дети приходят в
восторг от Squeak (возраст 4-10 лет). После того, как они самостоятельно
делают что-то нетривиальное, типа вращения планет, PowerPoint ими
воспринимается как убогая поделка, сделанная на коленке.
В общем, покажите своим детям как работать со Squeak-ом (и самому
придется что-то изучать , чтобы развить в них фантазию и креатив.
Нечего им замусоривать мозги всякой маркетинговой ерундой.
А как дорастут до серьезной математики, покажите Prolog и Haskell.
_>В общем, покажите своим детям как работать со Squeak-ом (и самому _>придется что-то изучать , чтобы развить в них фантазию и креатив. _>Нечего им замусоривать мозги всякой маркетинговой ерундой. _>А как дорастут до серьезной математики, покажите Prolog и Haskell.
понимаете-ли, перед тем как чему либо обучать надо вообще-то задаться вопросом с какой целью мы обучаем
1. хотим дать ребенку азы профессии, позволяющей ему через неск лет, когда он закончит школу (а может и немного раньше) сразу же войти в профессиональный мир и начать зарабатывать для себя деньги
(а 12 лет — это уже тот возраст, когда вопрос наличия в кармане денег заработанных самостоятельно встает очень остро)
или же
2. просто обучаем еще одному виду искусства и науки, развивая его всесторонне (12 лет — это возраст когда такие знание еще не просто кладутся на полочку в голове, а могут изменить структуру личности)
надо просто найти оптимальное сочетание между 1 и 2
Здравствуйте, Astaroth, Вы писали:
A>Здравствуйте, _vovin, Вы писали:
_>>Предикативная логика, лямбда-счисление, структурная декомпозиция?
A>"Чего-чего?" (с) анекдот про философов и Иисуса...
Здравствуйте, anonymous_user, Вы писали:
_>расскажи
... И сказал им Иисус:" Кто, вы говорите, есть я? "
... И ответили они:" Ты — эсхатологическая манифестация основы нашего
бытия, явленное нам онтологическое основание контекста самой нашей
сущности".
... И ответствовал им Иисус: "Чего-чего? "
По своему опыту посоветую АСМ. Я тоже с него начинал и примерно в таком же возрасте. Многие говорят что язык сложный, но это только со стороны человека который пишет на Java А так и в архитектуре коипа разобраться поможет и простые веши типа циклов и условий получатся сами собой, далее логическим продолжением является С, я просто прыгал от восторга когда за него взялся, все мои низкоуровневые паттерны превратились в логичные языковые конструкции.
Здравствуйте, bestix, Вы писали:
B>Собственно сабж. Сам программист, вот думаю сына начать обучать. С какого языка посоветуете?
Мне самому 14 лет! Программить начал как раз с 12! В первый раз начал программировать на Visual Basic. Меня просто записали на курсы, я что-то усвоил. Там дали теорию и немного о самом VB: самое элементарное. Я заинтересовался и начал разбираться дальше сам. Потом мне VB надоел, я почувстовал что мне не хватает его мощностей, потому перешел на Delphi где-то через 7 месяцев. Осваивал его долговато... через некоторое время заинтересовался C++, но не мог изучить его, мне он казался сложным...и делал я на нем только самые элементарные вещи, а ООП вобще не использовал. Но вот уже где-то год как я довольно хорошо знаю C++
Мне кажется нужно начинать учиться программировать на Паскале, т.к. он довольно несложный язык, легко понятный/читаемый, предоставляет он довольно много возможностей для начинающего. Сначала конечно без ООП. Нужно заинтересовать главное! Также нужно дать теоретические основы программирования. Если человек заинтересуется и поймет программирование, то ему уже будет несложно переходить и на другие языки, использовать другие технологии... и в конце концов он выберет то, что ему нужно.
Почему нужно начинать не с С++?
C++ — это объектно ориентированый язык программирования и для начинающего программиста ООП может показаться непонятной и даже отпугнуть. Сужу по собственному опыту! Я сам когда переходил на С++ долго понимал ООП. C#, Java и другие ООП языки аналогично
Можно конечно не использовать ООП, но тогда зачем учить этому С++?
Вобще еще можно СИ( без плюсов ) учить
Ну сделаем вывод, что можно начать учить в 12 лет:
Паскаль, Си
Best regards, p_kolya [ http://p-kolya.narod.ru ] WinAmp сообщает: Scorpions — When The Smoke Is Going Down