ailev.ru

Обсуждение

В архиве: 19 комментариев.

Читать и комментировать в ЖЖ ↗

Имя не сохранено · 10 декабря 2011

Комментарий

У меня третьекласники начали программировать в Скретче. Прошло где-то 4 занятия. Среду разобрали практичсеки самостоятельно, показываю только отдельные примеры и фрагменты - все проходит в режиме " а вот если вот так". Нравится.

Анатолий Левенчук · 11 декабря 2011

Комментарий

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

Ответ на комментарий

Имя не сохранено · 11 декабря 2011

Комментарий

>каждый язык программирования – это какой-то domain-specific язык можно даже шире сказать: любая программа это какой-то (зачастую вырожденный или мультимодальный) domain-specific язык

Анатолий Левенчук · 11 декабря 2011

Комментарий

Ну да, согласен. Мы когда-то (лет двадцать пять назад) всей командой поняли, что в любом приложении на уровень интерфейса рано или поздно нужно выводить полнотьюринговый язык -- ибо "вырожденного" языка из формочек явно не хватает. Начинается это обычно невинно: возможностью указать ссылку или выражение в поле формы -- даже если интерфейс формовый...

Ответ на комментарий

Имя не сохранено · 11 декабря 2011

Комментарий

Отрадно, что Вы много суетитесь, почтенный! Я тут вот и по делу - что, приметил: "выход программ в реальный мир, конечно, много круче, нежели выход программ на дисплей. Инженерия киберфизических систем будет покруче, нежели только программная инженерия". Так, чем мальцов на конкурсы стимулировать, пусть лучше займутся созиданием языка, построенного на учете, как "трансляторов трансляторов" для машин, так и "инженерией знания" - вообще. Дидактику тут бы им в помощь!

Анатолий Левенчук · 11 декабря 2011

Комментарий

Инженерия знаний -- это как раз вторая ветка, философская логика. К этому мы только готовимся, нормальных курсов нет, придется делать самим. Так что это будет только через годик-другой.

Ответ на комментарий

Имя не сохранено · 11 декабря 2011

Комментарий

А согласитесь, что оттуда именно и надо было начинать. И там бы можно было бы почерпнуть сугубо - кибернетические утилиты: чем и как управлять, которые едины, что - для социума, что для машинного представления.

Ответ на комментарий

Анатолий Левенчук · 11 декабря 2011

Комментарий

Мне не нравится кибернетическая парадигма, и я стараюсь не использовать слово "управление". Согласиться, что оттуда именно и надо бы начинать, я согласился бы -- если бы были готовые курсы. А так курсов нет, мы их делаем. Поэтому начинаем не откуда хотим, а откуда получается.

Ответ на комментарий

Имя не сохранено · 11 декабря 2011

Комментарий

> Куда податься бедному родителю?! Возможно в рамках следующей инициативы можно найти что-то полезное http://www.sdelanounas.ru/blogs/10251/

Анатолий Левенчук · 11 декабря 2011

Комментарий

Да у нас вокруг дома (в Москве) таких "лабораторий", "хакспейсов" и прочих "ресурсных центров". В продаже есть десяток моделей роботов, только выбирай (ну, я и выбрал -- и уже купил). Меня ведь другое интересует: как учить программированию, развивая полученные в предыдущем курсе знания. Программа занятий где-то на полгодика, до лета -- есть ли где готовая, чтобы не начинать учить с нуля, а двигаться вперед от уже достигнутого?!

Ответ на комментарий

Имя не сохранено · 11 декабря 2011

Комментарий

Со стороны переход от алгоритмов КуМира к сборке и программированию реальных роботов выглядит так: Изображение — открыть источник Но если у дитенка действительно есть такой живой интерес к робототехнике, то все должно получиться)) Использовать G в качестве языка для обучения программированию - это, конечно, очень необычно. Хотя для задачи программирования робота он может оказаться более специализированным и высокоуровневым, чем универсальный С, и программа на нем окажется проще... Но прежде, чем писать на G, стоит все-таки сперва доосвоить процедурную парадигму. Тогда переход на него станет совсем простым. А нет ли каких-нибудь трансляторов с понятных дитенку языков на, скажем, С? Пусть пишет код на чем ему удобно, а робот кушает то, что ему понятно. Почему наравне с Mathematica и Maple Вами не упомянут MathCAD? Он, наверное, идеально подходит для первого знакомства с "математикой и алгоритмикой в их вычислительном варианте" (WYSIWYG же). Нет ли такой же подробной последовательной программы "для взрослых", как http://dot15926.livejournal.com/27293.html, но касательно освоения Моделики? Как Вы считаете, это начинающееся через неделю продолжение курса алгоритмики - все еще закладывание основ (подходит как для будущих "технарей", так и для "гуманитариев") или уже специализация на "технаря"? А вообще Вы - классный папа, завидую Вашему сыну! :)

Имя не сохранено · 11 декабря 2011

Комментарий

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

Ответ на комментарий

Анатолий Левенчук · 11 декабря 2011

Комментарий

Я абсолютно согласен с вашими высказываниями про рисование совы и переходу от "замеров радиации в коридоре" для робота КуМира, а также "обойти весь лабиринт произвольной формы" рекурсией для лабиринта из клеточек и реальным программированием простейшего робота, который едет на 10.1 см вперед и 0.5см вправо по команде "вперед" и 10.3см назад и 0.3см влево по команде "назад" -- и при этом считывает самые разные помехи со своих сенсоров. Насчет Mathematica: там, замечу, была куплена где-то годик назад фирма, поставляющая модуль связи той же Modelica с Mathematica. Ну, и есть много других прелестей. И я бы не сказал, что она сложней в азах, чем MathCAD. Кстати, про MathCAD мы уже некоторое время обсуждали вопрос: http://ailev.livejournal.com/660537.html?thread=5606713#t5606713, а последний раз я эту тему помянул буквально вчера: http://ailev.livejournal.com/967056.html (пятый слайд -- вёрстка приложений, и поминание стандарта, предложенного Mathematica). Еще одна ссылка -- http://www.nmconsortium.org/ (тут нужно сказать, что Maple тоже оперлась на Modelica, но вот отсутствие Mathematica заставляет предположить, что что-то не так в этом стандарте). Так что вряд ли MathCAD: у других всё то же самое с WYSIWYG есть, плюс многое другое. Хотя, может, я и недоразобрался...

Ответ на комментарий

Анатолий Левенчук · 11 декабря 2011

Комментарий

Дык в близкие к дому центры письма я уже написал :-) Но у меня почему-то сложилось впечатление, что вряд ли мне там смогут помочь с моими специфическими проблемами. Это совсем разные тусовки: робототехники и теоретики образования по информатике...

Ответ на комментарий

san_a · 11 декабря 2011

Комментарий

Очень внимательно слежу за этой темой в вашем блоге. Сейчас своего ребенка (9 лет) пытаюсь учить паскалю http://pascalabc.net/ До этого был GameLogo http://myrobot.ru/logo/ Проблем с синтаксисом и структорй языка практически нет, но очень сложно находить такие задания, которые ему были бы интересны. Тут вы правы - обязательно должно что-то двигаться, а еще лучше стрелять :) Фирме Lego надо платить вам за рекламу. Заказал Деду Морозу LEGO NXT 2.0. Думаю, что после нового года перейдем на "производственное" программирование. Пишите о ваших с "дитенком" успехах - очень интересно!

Анатолий Левенчук · 11 декабря 2011

Комментарий

Ну, проблем с синтаксисом и структурой тоже нет -- но у меня упор на "налёт часов" и муштру на любых (в том числе совсем неинтересных, а часто и на однотипных) задачах. Тупо решаем все подряд задачи по курсу Кириенко для семиклассников, осталось на сейчас три задачи до конца 16 урока -- и дальше распаковываем робота. А при появлении малейшего интереса (в том числе к робототехнике, ибо будет много движения, задействована соревновательная компонента, есть много видео, можно встречаться с интересными людьми и т.д.) я надеюсь, что у дитенки будет повышенный запас по мозговой мощности, чтобы не отшатнуться из-за повышенной сложности предмета. Трудности в учении он легко забудет, а вот легкость в бою ему наверняка понравится ;-) Дальше будет NXT 2.0 плюс телефон (плюс огромная куча датчиков, огромная процессорная мощь, задачи распознавания сцен, вывода графики на экран и т.д.). Потом можно задействовать какой-нибудь квадрокоптер и добавить видеокамеру. Или пойти по линии слаженной работы роя роботов. Или наращивать интеллект. То есть это всё надолго, пока не будет выбрана специализация.

Ответ на комментарий

Имя не сохранено · 31 июля 2012

Комментарий

медленно хожу по ссылкам. начал учить сестру (первый класс) Scratch. планирую с него перейти на Squeak или какую-то другую имплементацию Смолтока. чистое понятие объекта, мне кажется, схватывается легче, чем разделенные код-данные (что подтверждается и learning curve, наблюдаемой у смолтокеров). если вы помните, в этом задумка Кея и состояла: зачем плодить дуализм код-данные (то, что сейчас в philosophy of computer science называется dual nature of programs), если можно ввести рекурсию возможностей самого компьютера ("Instead of dividing "computer stuff" into things each less strong than the whole--like data structures, procedures, and functions which are the usual paraphernalia of programming languages--each Smalltalk object is a recursion on the entire possibilities of the computer")? причём центральным тогда оказывается не объект, как в полу-ООП-языках, а messaging. разумеется, подобную роль играет и функция в Лиспе, но для его изучения (или даже Scheme) требуется некоторое знание математического формализма (не говорю уже про чистые функциональные языки). мне кажется, будущее как раз за повышением уровня абстракции, то есть выразительности. но, всё это, конечно, при условии, что мы готовим не будущего инженера, который должен иметь представление обо всех уровнях системы, а простого человека эпохи сингуляности (в которую я, как и вы, верю; акцентирую этот момент веры, т.к. красивые выкладки Курцвайля не могут служить неопровержимым доводом), который должен будет уметь программировать так же, как он умеет писать и читать.

Анатолий Левенчук · 1 августа 2012

Комментарий

Мои друзья критикуют Scratch по многим позициям. Нужно учить тому, что нужно, а не тому, что "легче схватывается". Я же критикую моих друзей не за разделение обучению коду (планированию) и данным (моделированию данных), а за полное игнорирование моделирования данных. И там есть огромная проблема, в которую мы уткнулись, начав работать с онтологиями (прежде всего, с довольно продвинутой онтологией ISO 15926): в моделировании данных, равно как и в программировании, работа с экземплярами существенно отличается от работы с типами (схемами данных). Учитывая, что всё программирование насквозь "мета", это означает, что есть огромные трудности вычислить тип, объявив его "экземпляром", а затем породить экземпляр этого типа (который сам опять может оказаться типом для порождения чего-то ещё). Это берётся только, если перейти от концепции классов с явными отношениями классификации к каким-то другим теориям понятий (прототипной теории Лакоффа, атомарной Крипке, теории теорий, плюралистической и т.д.). Можно поглядеть на успех языков типа Lua, это бледная тень того, что можно получить на этом пути. А messaging -- да, очень важно, но это решает другой тип проблем. Это решает проблемы связи programming-in-the-small и programming-in-the-large, проблему гранулярности агентирования/исполнения. Но это про "компьютерную революцию", что не исключает, конечно, обучения работе и с legacy парадигмами. Так, печатание на клавиатуре не исключает необходимости хоть как-то уметь писать ручкой (хотя я вот уже практически не умею писать ручкой, разучился за последние двадцать пять лет -- но если нужно, полстранички печатными буквами могу написать! Хотя и медленно...). Я рекомендую вашей сестре попробовать пройти через пиктомир и лайтбот (ага, там и рекурсии будут, и циклы-повторители). А затем поставить ей КуМир и смело идти по программе (что, конечно, требует уже хоть какого-то владения письмом на клавиатуре и чтением. Но я думаю, что это не проблема. Так, письмо на клавиатуре я у дитёнка выработал, заставив его поработать чуть-чуть на клавиатурном тренажёре, прикрывая при этом руки полотенцем. Он довольно быстро понял принцип, полотенце я убрал, но постановка рук как для слепого десятипальцевого метода у него при этом осталась -- а дальше скорость он и так натренирует, при правильной-то пальцовке). Побочным выходом будет заодно освоение большого куска арифметики (сложения и вычитания в пределах размеров поля робота) и логики (удивительно, но детки это быстро осваивают -- даже сложные условия). Для всех умений есть свои методы, и главное -- это четкое понимание, чему учим, и дальше определение последовательности упражнений. Попробуйте, у вас получится. Хотя это и не так красочно будет, как в Scratch :-)

Ответ на комментарий