Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет chistyakov ([info]chistyakov)
@ 2005-06-10 18:14:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Показалось важным про программирование. Выношу из комментов
Из переписки с dottedmag об объектном и прочем неестественном программировании в дискуссии "Компрачикосы от программирования".

Мой личный научно-технический интерес заключается в создании комплексов ДПЛА. Это сложные радиотехнические, авиационные, программные и ещё чёрт-те какие комплексы.
В части программирования меня интересует создание бортовых и наземных программ для таких комплексов. Требуется заставить ЭВМ делать то, что требуется комплексу для решения его целевой задачи. Причём пароль к успеху один-- "надёжность"! (подчеркну, что речь идёт НЕ о персональных компьютерах, которые в комплексах тоже есть, естественно, на рабочих местах операторов в качестве интерфейсных узлов с человеком).

Уверяю Вас, что никакие из экзотических видов программирования, перечисленных Вами, не требуются, более того вредны, при решении моих проблем. Ибо все они зиждутся на создании некоторых виртуальных слоёв архитектуры на реальном "железе" ЭВМ. Каждый такой слой, особенно когда его делали чужие люди, особенно иностранцы, является источником ненадёжности, причём принципиально непознаваемой ненадёжности.

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

Господ "программистов" просят не беспокоиться.

{+}


(Читать комментарии) - (Добавить комментарий)

Хм.
[info]ex_chistyak@lj
2005-06-12 09:24 (ссылка)
Мы же договорились, что вообще-то язык, пригодный для писания реальных программ при преподовании информатики нужен? Чтобы было можно было гонять реальные программы, написанные детьми? Да или нет? Ответьте, пожалуйста, тогда обсудим дальнейшие Ваши тезисы. Хорошо?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]edtech@lj
2005-06-12 09:30 (ссылка)
Язык, безусловно, нужен.

Но я против вот такого навязывания конкретного языка.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]ex_chistyak@lj
2005-06-12 09:59 (ссылка)
Хорошо.
Давайте, теперь подумаем. Должен ли этот язык быть единым для всей школы. Чтобы и в сибирском селе и в Москве преподавали на одном языке? Моё мнение, что ответ только положительный. А Вы как думаете?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]edtech@lj
2005-06-12 10:34 (ссылка)
Я думаю, это будет нестрашно, если в одной школе учат на Паскале, а в другой — на Си. А вот если в одной детей научат численному интегрированию, а в другой — не научат, то это будет уже неправильно, даже если во всех школах будут учить на Обероне.

Это я к тому, что Вы оттеняете реальные проблемы, и ставите вместо них приоритет на мнимые. И выдаёте это в качестве одной из ключевых целей.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]ex_chistyak@lj
2005-06-12 10:58 (ссылка)
Какой Вы брюзга, однако:) Всё-то Вы сразу знаете и тут же оценки даёте. Вот, например, откуда Вы знаете, что проблема мнимая? Может быть, Вы её просто не понимаете ещё? Никогда не задумывались? Хотя я тоже брюзга изрядный:)

Ладно, к сути. Значит, Вы считает, что могут использоваться разные языки в разных школах. Я так не считаю. Более того, категорически возражаю.
Унифицированность образования от Бреста до Курил и от Кушки до Мурманска -- самая сильная сторона советской школы. И одна из скреп страны. Не вижу, почему мы должны отказываться от оправдавшего себя наследия? Потому что Вам на "Си" хочется программировать? На здоровье! Я Вам уже разрешил это делать до прихода ко мне на работу:)

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]_lis_@lj
2005-06-12 12:46 (ссылка)
Да НИКОГДА все не станут творческими личностями! И даже "вторая грамотность" откроется в лучшем случае у 30%, и то лет через 50.

Я учился в школе, которая считалась лучшей в городе. Так вот у нас в классе из 20 человек только может человек 5 реально чем-то интересовались, изучали те же математику и программирование, книшшки умные читали, остальным, простите допизды до лампочки все эти науки!

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]ex_chistyak@lj
2005-06-12 13:26 (ссылка)
Нельзя равняться на худших. Стоит работать даже ради тех пять. А худшие пусть тянутся. А то сейчас есть мнение, что учиться вообще не надо.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]_lis_@lj
2005-06-12 13:37 (ссылка)
Ну к "тем пяти" себя я тоже причисляю :).
Пожалуй, Вы правы. Но есть же и гуманитарии, их не меньше "технарей", они в своей деятельности могут быть не менее талантливы, с их мнениес тоже как-то надо считаться.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]ex_chistyak@lj
2005-06-12 15:20 (ссылка)
>...есть же и гуманитарии

Увы, есть они:(
Этих учить насильно! А то: "Ах, я ничего не понимаю в математике, она такая бессмысленная...".
Лучше сослать, конечно...

(Ответить) (Уровень выше) (Ветвь дискуссии)

;)))
[info]_lis_@lj
2005-06-12 16:49 (ссылка)
Берегись
конструктор
гуманитарий
у власти!

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: ;)))
[info]ex_chistyak@lj
2005-06-12 17:12 (ссылка)
>...гуманитарий у власти!

ЭТОТ тоже гуманитарий!? Тогда многое становится ясным... Видимо, нам конец.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: ;)))
[info]_lis_@lj
2005-06-12 17:19 (ссылка)
Ну вы вощеее.. Юрыст жеж. Даже я, щирый украинец, знаю. А вот наша Юля - так она экономфак ДГУ закончила и диплом защитила по математическим методам в экономике. Тоже, кэша, не ахти, но надежда есть. Так что давайте к нам, если что :)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: ;)))
[info]ex_chistyak@lj
2005-06-12 17:50 (ссылка)
Не-а. Я к Батьке, если что... Или к Киму. Чен Ир который.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: ;)))
[info]_lis_@lj
2005-06-13 04:48 (ссылка)
А мы их удвох скоро разом з янками скинем. И не будет у Вас тоталитарной утехи :)

(Ответить) (Уровень выше)

Re: ;)))
[info]_lis_@lj
2005-06-12 17:20 (ссылка)
Черт, под Маяковского "лесенкой" не получилось! %)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: ;)))
[info]ex_chistyak@lj
2005-06-12 18:08 (ссылка)
Надо подлиннее фразу. Тогда получится:

Ломает власть

Россию на части

Берегись, конструктор,
-- гуманитарий у власти!



(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: ;)))
[info]_lis_@lj
2005-06-13 04:51 (ссылка)
Вы просто... Первый Стихотворец Республики :)

(Ответить) (Уровень выше)

Re: Хм.
[info]edtech@lj
2005-06-12 12:47 (ссылка)
Унифицированность — это, конечно, хорошо, но обратите внимание, что стандартизации поддаются знания, которые мы должны получить, а не методы, которыми мы достигаем этих знаний. Фактически у каждого учителя свой стиль преподавания, но все обязаны дать ученикам некоторый минимум знаний. Ярким примером, когда отсутствие такой унификации очень полезно, является СУНЦ им.Колмогорова при МГУ. Именно благодаря нестандартному подходу оттуда выходят очень талантливые люди.

Так зачем же нам ограничивать учителей в методах достижения результата? Тем более, когда речь идёт об информатике, где надо учитывать, что у всех разные возможности: где-то стоят 386-е компьютеры, где обучение можно производить на Паскале, а где-то — помощнее, где можно программировать на Дельфи. Есть еще учителя, которые всегда преподавали на Бейсике и разработали свои эффективные программы обучения.

К тому же идея с Обероном будет сразу отвергнута по причине отсутствия экспериментальной проверки на практике (в школах).

А вот о том, чтобы разработать и внедрить стандарт IT-знаний современного школьника, Вы почему-то умалчиваете. Так что если хотите помочь школе чем-то реальным, займитесь разработкой и пропагандой внедрения таких стандартов — будет куда полезнее (сразу замечу, я не указываю Вам, что делать а, всего лишь, советую).

Ну и по поводу наследия.. хотя первую свою программу я написал на Си, в нашей школе повсеместно использовался Бейсик (видимо оттуда у меня некоторая ностальгия по этому языку). Но у нас были хорошие учителя, что позволило мне добиваться высоких мест на школьных олимпиадах. Затем возникла острая необходимость перейти на Linux и я вернулся к Си. Будет надо работать на Паскале — буду работать на Паскале. Вот именно поэтому я против навязывания конкретного языка и, как следствие, одностороннего развития IT-образования.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]_lis_@lj
2005-06-12 13:12 (ссылка)
Да не надо всех равнять по себе! Ты что не понимаешь, что для большинства школьников Союза фраза Ярким примером, когда отсутствие такой унификации очень полезно, является СУНЦ им.Колмогорова при МГУ. Именно благодаря нестандартному подходу оттуда выходят очень талантливые люди. сродни длинному, виртуозно сказанному матюку! Проще надо быть, спустиццо бы с небес пора... И старому, и молодому :)

(Ответить) (Уровень выше) (Ветвь дискуссии)

СУНЦ им.Колмогорова при МГУ
[info]ex_chistyak@lj
2005-06-12 15:11 (ссылка)
Что-то я не встречал инженеров и офицеров из СУНЦ им.Колмогорова при МГУ. А талантливых инженеров и офицеров встречал.

СУНЦ им.Колмогорова при МГУ -- это просто селекция.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: СУНЦ им.Колмогорова при МГУ
[info]_lis_@lj
2005-06-13 05:52 (ссылка)
Да. Туда, кажется, раньше приглашали всех призеров республиканских и всесоюзных матеметических олимпиад?

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: СУНЦ им.Колмогорова при МГУ
[info]ex_chistyak@lj
2005-06-13 06:06 (ссылка)
Ума не приложу, кого туда приглашали. Но селекция наверняка была. Она и является причиной "талантливости", а не методы обучения. Кстати, худших инженеров, чем МГУшники с ВМК, никогда не видел. Долбоёбы занаученые. А меня их было.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: СУНЦ им.Колмогорова при МГУ
[info]_lis_@lj
2005-06-13 06:08 (ссылка)
А в дипломе у них что написано? Разве есть слово "инженер"?
Я просто спрашиваю - я не знаю, не местный...

(Ответить) (Уровень выше)

Re: Хм.
[info]ex_chistyak@lj
2005-06-12 13:49 (ссылка)
Я не агитирую, строго говоря, за Оберон, чтобы Вы не нервничали больше по этому поводу. Просто я считаю Оберон хорошим языком для обсуждаемой нами цели. Могут быть и другие языки. Но их, увы, нет.

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

Ясно одно. Что этот язык не должен быть элементом коммерчески признанной системы разработки программ типа Дельфи или С++. Это уже будет профессиональная подготовка. Слишком уж эти системы громоздки для первоначального обучения. Получится, что дети будут изучать не идеи, которые потрясли мир, а особенности щелчков мыши по значкам в меню. И расползаться по бесконечным залежам "возможностей". Сузить надо. Оставив только ядерную суть программирования.

Про Бэйсик я скажу, что по своему объёму и простоте он хорош для первоначального обучения и даже практического использования в дальнейшей жизни тех, кто не будет иметь особых притязаний на ниве программирования. Хорош, да.
Беда Юэйсика в том, что он ужасен как язык. Это же средоточие пороков, осуждённых программистским сообществом задолго до Вашего рождения. У меня иногда складывается ощущение, что дискуссии 70х совершенно неизвестны сегодняшним программистам и они вновь вляпались в ту же "асфальтовую топь"(с)Брукс.

{+}
.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]edtech@lj
2005-06-12 14:19 (ссылка)
"Конкретная цель проекта Информатика-21 — пропаганда и внедрение в системе образования Компонентного Паскаля/Оберона как практически идеальной единой платформы для систематического преподавания основ программирования в XXI веке" — это разве не агитация?

"К счастью, в обучении грамотному программированию есть на что ориентироваться — есть свой аналог евклидовых "Начал". Это система Оберон..."

Дальше цитировать, думаю, не надо. Я вот на странице проекта "ИНФОРМАТИКА-21" никаких конструктивных предложений, кроме внедрения Оберона не увидел.

Если вы говорите, что не агитируете за Оберон, какие еще цели преследует этот проект? (думаю, повторяться о том, что внедрением этого языка качество программистов повысить нельзя, не надо).

Да, и раз уж вы просто предлагаете.. каково тогда будет тем людям, которые программировали на Обероне, а затем, выйдя из стен школы будут вынуждены программировать на Си с его недостатками? И смогут ли? Этакое перемещение из инкубатора в реальный мир.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-12 15:27 (ссылка)
Жаль некогда Вам ответить. Спишемся позже.
Советую узнать у старших товарищей про движение "Программирование без гоу ту". Много узнаете.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dottedmag@lj
2005-06-14 01:27 (ссылка)
Покажите мне хотя бы одно goto в моих разработках? При том, что структурным программированием я не пользуюсь обычно.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2005-06-14 02:15 (ссылка)
Не видел я Ваих разработок, поэтому показать ничего не могу. А что Вы понимаете под "структурным программированием"? И как это Вы им не пользуетесь?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dottedmag@lj
2005-06-14 04:16 (ссылка)
Структурное программирование - это стиль программирования, в котором главными строительными элементами являются структурные (неинкапсулированные) типы данных, блочные структуры кода. Другими отличительными особенностями являются функции, не являющиеся типами, а также открытость данных.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)

Я не силён
[info]ex_chistyak@lj
2005-06-14 05:20 (ссылка)
В структурном программировании я не силён на таком уровне, чтобы сходу дать ему короткое неоспоримое определение, но попытаюсь изложить своими словами то, что я вынес из дискуссий 70х.

Признаки структурного программирования:
1) разбиение задачи на уровни;
2) разбиение каждого уровня задачи на отдельные модули. Принцип: "одна функция (в человеческом смысле) -- один модуль";
3) передача управления -- только сверху вниз с обязательным возвратом управления вызвавшему модулю;
4)ограничение на размер модуля исходного текста 50..100 строк, в идеале, чтобы текст модуля помещался целиком на одной странице (экране). Если не влазит, значит надо дробить дальше. Использование отступов и других средств наглядного форматирования текста программы. Обязательные СОДЕРЖАТЕЛЬНЫЕ комментарии ко всему модулю и в местах, могущих вызвать затруднения в понимании посторонним человеком;
5) инкапсуляция данных внутри модулей, право использования глобальных переменных даётся только главному модулю верхнего уровня; обмен данными между модулями только сверху вниз и обратно, с верхних уровней на нижние через параметры, передаваемые: вниз -- по значению, вверх -- по ссылке;
4) минимизация применяемых выразительных средств языка программирования (пресловутое "без гоу ту"): только простая последовательность операторов, условный переход if then [else], циклы for и while. Этого достаточно. Для упрощения чтения программы человеком допустимо (даже желательно) использование вычисляемого оператора перехода типа case of. В случаях "аварийных исходов" модулей, чтобы не загромождать текст условными операторами, допустим безусловный переход goto, но только на конец модуля;
5)контроль модулями входных и выходных данных на "абсурдность" (без фанатизма, конечно.

Структурное программирование -- это инженерный подход, а не некий математический метод. Благодаря такому подходу удаётся создавать надёжные и модифицируемые программы большого объёма.

Обратите внимание, что про типы данных тут ничего нет. Какие надо, такие и используйте. Открытостью данных и не пахнет. Что касается типов функций, то это мелкая необязательная вещь. Инкапсуляция налицо.
Что касается программирования по событиям, то в технике реального времени так делали всегда (прерывания). Это недавно вдруг комнатные "программисты" открыли и крик подняли о своей необычной гениальности. А то прерываний боялись как огня:).

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Я не силён
[info]dottedmag@lj
2005-06-14 05:34 (ссылка)
Ну вот и все - это уже не структурное, а модульное программирование.

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

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

(Ответить) (Уровень выше)

Re: Хм.
[info]dottedmag@lj
2005-06-14 01:24 (ссылка)
Вы игнорируете такой аспект, как доказательство правильности программ. В типичных структурных императивных языках доказывать правильность программ можно только "на пальцах". Именно поэтому в критичных местах имеет смысл использовать высокоуровневые языки, имеющие математическое основание, чтобы можно было уменьшить стоимость разработки отдельным доказательством правильности компилятора и программы на этом языке.

(Ответить) (Уровень выше)

Re: Хм.
[info]_lis_@lj
2005-06-12 12:39 (ссылка)
Эдик бля! Харрош! Нет, вы посотрите, шо он написал! :)

А вот если в одной детей научат численному интегрированию, а в другой — не научат, то это будет уже неправильно, даже если во всех школах будут учить на Обероне.

Если в школах, не приведи Бог, начнут учить численному интегрированию, то начнутся массовые самоубийства школьников при и так невеселой статистике :)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Хм.
[info]edtech@lj
2005-06-12 12:54 (ссылка)
Меня научили, значит и других научат. Если будет стандарт, обязывающий этому учить. А если не будет, то толку от внедрения Оберона будет ноль: всё ограничится сортировкой массивов, только на другом языке.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Здесь живут инопланетяне.
[info]_lis_@lj
2005-06-12 13:07 (ссылка)
Меня научили, значит и других научат.

Дааа... Я, пожалуй, больше не буду комментировать ни тебя, ни Чистякова. Такое ощущение, что вы с другой планеты прилетели. Причем только что и еще не вошли в курс дела.
Опять же - да это все 70 процентам школьников и нах не надо. Потому что не дотянут они до этого. "Умом" не вышли. Да и вообще, скажи мне - на кой ляд в средней школе нужна высшая математика? Этому все равно потом в техническом (матем и др.) вузе будут переучивать сначала - ну не могут в школе изложить даже начала анализа в полном объеме, а если человек пошел в гуманитарный вуз, то ему это вообще никогда не потребуется. В школе человека надо научить элементарно мыслить, пользоваться элементами современной жизни, показать разные грани человеческой деятельности и дать ему возможность выбрать наиболее подходящую.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Здесь живут инопланетяне.
[info]ex_chistyak@lj
2005-06-12 14:51 (ссылка)
Пожалуй, в Ваших словах что-то есть... Насчёт высшей математики даже готов согласиться. Жаль, конечно, не давать понятий производной и интеграла, уж очень они в жизни полезны. Но можно всё испортить, не дав толком понятие предела. А толком могут и не дать. Хотя могут и дать... КОлеблюсь.
Но программированию надо, не то чтобы учить, но дать основы и реальный опыт. Тут Оберон как раз хорош. Даже Бэйсик, чёрт с ним.
Не знаю, в общем.

{+}

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Здесь живут инопланетяне.
[info]_lis_@lj
2005-06-13 06:01 (ссылка)
Дело в том, что теорию пределов нам на первом курсе излагали... ыыы... половину семестра. Это было около 40 часов только лекционного материала, плюс почти столько же - практические занятия. Так что в школе вряд ли это дадут в таком объеме.

(Ответить) (Уровень выше)

Re: Хм.
[info]ex_chistyak@lj
2005-06-12 13:52 (ссылка)
Правильно! Численные методы надо в школе давать. Немного, но давать. Пусть учатся, вместо пивохлестания.

(Ответить) (Уровень выше) (Ветвь дискуссии)

По-моему,
[info]_lis_@lj
2005-06-13 06:05 (ссылка)
гораздо полезнее было бы разбирать задачи повышенной сложности по элементарной математике, встречающиеся в билетах вступительных экзаменов в вузы. Меньше проблем с поступлением будет, да и по репетиторству удар неслабый. А численным методам обучат "на месте".

(Ответить) (Уровень выше)


(Читать комментарии) -