Sep. 4th, 2012

kuzmax: (Зубы)
Оригинал взят у [livejournal.com profile] dolboeb в Хрупкий орешек
Новость о том, что Брюс Виллис собрался судиться с Яблом — скорее всего, банальная газетная утка. Или, как говорят на родине утки, wishful thinking.

Но проблема, по которой он якобы собрался судиться, реально существует, и не раз поднималась в этом ЖЖ.

Ни одной индустрии в современном мире не дозволяется так наёбывать потребителя, как торговцам объектами авторского права в цифровом виде. Невозможно себе представить, чтобы магазин, продавший тебе машину за полную стоимость, мог потом забрать её назад, потому что он задним числом поменял условия сделки по продаже. А у цифровых торговцев музыкой, фильмами, книгами и софтом львиная доля доходов связана с бесконечным циклом повторной платы за одно и то же. Товар искусственно приводится в негодность после нескольких использований после покупки, и нужно его заново оплачивать. Хотя в исходном договоре покупки ничего не говорилось ни о сроках пользования, ни о количестве раз.

Наглость и бессовестность схем, с помощью которых однажды купленное право читать, смотреть, слушать и запускать программы отнимается потом назад, ради повторного платежа, поневоле заставляет взмолиться о Брюсе Виллисе, который бы разобрался с копирастами с помощью кулаков, огнемёта и магнума.

Так что на самом деле это не шутка и не утка, а мечта миллионов людей, обманутых при покупке объектов авторского права в электронном виде у «легальных» барыг.

kuzmax: (Default)
Оригинал взят у [livejournal.com profile] ailev в Образовательные ступеньки в информатике для малолеток
Самое трудное в образовательной практике -- это предложить какую-то связанную последовательность курсов. Так, курс алгоритмики в ПиктоМире -- это всего две недели, а курс алгоритмики с роботом на КуМире -- это ещё полгода, на уровне начальной школы. Что делать после этого?! Бросать информатику на пять следующих лет, потом добавить еще полгода какого-нибудь программирования на уровне средней школы, и опять бросать? Ниже -- мои соображения сегодняшнего дня, и более прагматичные: я постарался быть максимально приближенным к нынешним софтовым реалиям, а не изобретать новые обучающие среды и новые языки программирования. Прошлый раз я много более радикально фантазировал на эти темы примерно год назад -- http://ailev.livejournal.com/955671.html.

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

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

1. Алгоритмика -- ПиктоМир.
Это две недели, но без этой махонькой ступеньки малолеткам очень трудно прорваться к настоящей алгоритмике с использование текстового языка. Подробности -- http://ailev.livejournal.com/922715.html (и парочка видео с семинаров: http://ailev.livejournal.com/966698.html, http://ailev.livejournal.com/973947.html).
Это должен быть пиктографический язык, минимизирующий собственно "язык программирования". Исполнитель почти ничего не умеет делать, мир/обстановка крайне бедна. И это хорошо, это всего на пару недель поиграться, бедность тут не порок, а тщательно разработанное достоинство.

Дитёнка после этого соображает про последовательность команд, исполнителя, алгоритм и вспомогательный алгоритм, повторения и условия.

2. Алгоритмика -- нарисованный робот в КуМире.
Это примерно полгода, никаких структур данных, и почти никакой численной математики (за исключением нескольких задач в самом конце курса -- на "радиацию").

Подробности -- http://ailev.livejournal.com/948015.html, а про особенности перехода от ПиктоМира к КуМиру я рассказал в http://ailev.livejournal.com/1013690.html. Почему не страшно этому учить малолеток (ибо некоторые волнуются, что "у обученного этим страшным вещам дитёнка не будет детства") -- http://ailev.livejournal.com/966480.html

Дитенка после этого может писать простейшие программы на императивном языке со "структурным программированием", но ничего не понимает в структурах данных. Это должен быть Ершол, а не "настоящий язык программирования" -- т.е. сам язык программирования должен быть беден и минимален (зато русскоязычен, плюс крайне конкретизированная диагностика ошибок).

3. Алгоритмика -- embedded systems, настоящий робот LEGO.
Правильно было бы оставить язык Ершол и среду КуМира, но нарисованного робота заменить на колёсного из LEGO. Я бы намеренно ограничился датчиком освещения, датчиками пульта управления (в качестве которого мог бы выступать смартфон с тачскрином, например), видеокамерой (тоже от смартфона) и двумя колёсами как эффекторами. Это я так учитываю свою неудавшуюся попытку сразу скакнуть через несколько ступенек (http://ailev.livejournal.com/983196.html).

Примерная последовательность серий задач курса:
-- расчёты скорости передвижения при параллельной работе колёс по прямой (при этом колёса будут разных диаметров – маленькие, большие и очень большие)
-- расчёты скорости передвижения при поворотах разного радиуса (змейки), также при разных колёсах.
-- калибровки невязки между колёсами и прохождения сложных маршрутов
-- алгоритм ПИД и прохождение по нарисованной кривой. Калибровка алгоритма (разные кривые). Это традиционное первое соревнование роботов.
-- пульт дистанционного управления (там много особенностей, ибо управление должно быть пропорциональным)
-- подключение телефона с видеокамерой, прохождение по нарисованной пунктирной линии – это традиционное второе соревнование роботов.
-- повторение всего предыдущего набора задач для Python (меняем язык, но оставляем предметную область: просто повторяем все задачи, формулируя их на "настоящем языке программирования" -- понятно, что этот Python практически не будет использоваться в части его структур данных, это пока алгоритмика).

Тренируется:
-- плавающая арифметика (хинт: в начальной школе этого нет)
-- математика обороты-диаметры-пути-скорости, коэффициенты (ага, понятие "коэффициента" в начальной школе -- это не так просто)
-- освоение разных исполнителей (датчики освещенности, пульта управления, видеокамера; эффекторы – колёса и дисплей робота)
-- пропорциональность (ПИД и работа с пультом), реальное время
-- разборки с пикселями при работе с видео
В итоге -- понимание, как программируются современные механизмы (embedded systems), а также переход к относительно современному языку/среде программирования (Python). Но это только алгоритмика, ибо ни о каких структурах данных речи ещё не идёт.

4. Информатика = алгоритмика + структуры данных.
Берётся какая-то оффлайновая игра, и к ней пишутся скрипты на Python -- моды, NPC и т.д.. Мир опять становится "нарисованным", но уже 3D, и отнюдь не "простым": богатые структуры данных нужны именно для представления сложного мира -- это совсем по-другому "интересно", нежели какие-то бедные "нарисованные миры" в курсе алгоритмики, что я отмечал при выборе робототехники на третьей ступеньке в http://ailev.livejournal.com/967480.html. Интерфейс скриптования игр содержит большое количество развесистых структур данных, и дитятко учится с этими структурами данных работать. За идею спасибо [livejournal.com profile] justy_tylor. Другим кандидатом в языки выступал Lua, но целью данного "семестра" является уже не "алгоритмика", а разбирательство со структурами данных -- поэтому Python, в нём это побогаче будет. Но недостаточно богато, чтобы вляпаться в "перескок через ступеньку сложности" и попасть в какой-нибудь материал, доступный только для студентов (не забываем, что мы учим деток, это даже не старшая школа!).

Далее -- можно повторить всё то же самое для какой-то из MMORPG (программирование-в-большом!), и даже можно поменять язык программирования (ибо к этому моменту будет опыт как смены языка, так и смены "мира/исполнителей", хотя и по отдельности -- и речь идёт о таком же скачке, только "комбинированном").

5. Информатика как таковая -- с выходом на программную инженерию.
И только теперь можно думать о лингвистике, компиляторах, базах знаний/онтологиях и прочих специфических задачах. Ну, и об инженерии (требованиях, архитектурах и т.д.) тоже позже (см. последовательность, которую я предложил в постинге "верхнее образование инженеров-программистов" http://ailev.livejournal.com/937201.html).

Увы, учебный софт и наборы задач существуют пока только для первых двух ступеней, а вот для третьей и четвертой -- придётся изобретать по ходу дела, и срочно (см. http://ailev.livejournal.com/1020631.html). Для пятой -- пока даже не обсуждаем.

Profile

kuzmax: (Default)
kuzmax

Style Credit

Expand Cut Tags

No cut tags
April 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2017
Page generated Aug. 24th, 2025 05:39 pm
Powered by Dreamwidth Studios