Oberon space

General Category => Общий раздел => Тема начата: valexey от Февраль 17, 2011, 11:41:33 am

Название: Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 11:41:33 am
Тут можно таки спокойно обсудить место оберона в образовательном процессе.

Мое мнение (я не преподаватель, так что это мнение со стороны): Oberon хорош как пример типичного императивного структурного языка без украшательств. На его примере хорошо показывать какие проблемы решает структурное программирование, и, однако, какие проблемы в ИЯ остаются не решенными. Хорошо Оберон в этом случае проходить на пару с Си, показав что несмотря на внешние отличия (синтаксис) сущность едина в общем то, и имеется общий сет проблем.

Потом можно показать как эти проблемы прикрываются в современных промышленных языках. Например в C#.

Ну а также обзор и отработка методик позволяющие эти дыры обходить (на Обероне том же).

Ну и вывод из всего этого -- нет в мире совершенства, эволюция ЯП не остановилась, и в Computer Science ещё много что нужно сделать.

Это всё конечно имеет смысл при условии что нам нужено получить человека думающего, а не безупречного исполнителя.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 11:47:01 am
Да, это всё конечно применимо к IT-специалистам, причем возможно именно к системным программистам. Для других специальностей должен быть какой-то другой подход конечно же.
Название: Re:Оберон в образовании.
Отправлено: Peter Almazov от Февраль 17, 2011, 11:54:00 am
Уточните возраст учеников  :)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 11:59:03 am
лет 16 и выше :-)
Т.е. либо интересующиеся старшекласники, либо студенты.
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 17, 2011, 12:01:28 pm
Думаю, не стоит пытаться обучить программированию любого (каждого) ученика. Ведь далеко не все ученики становятся физиками, химиками, так же далеко не все станут и программистами.
Соотвественно, нет смысла и чрезмерно упрощать преподавание программированию. Действительно интересующийся ученик сам и Паскаль, и Лисп изучит...
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 12:07:08 pm
Учитель (в школе) должен прежде всего суметь заинтересовать и заинтересовавшемуся помочь разобраться. В плане программирования язык тут вторичен. Главное чтобы он не мешал.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 03:41:41 pm
Думаю, не стоит пытаться обучить программированию любого (каждого) ученика. Ведь далеко не все ученики становятся физиками, химиками, так же далеко не все станут и программистами.
Согласен с Вами, всех и каждого обучать программированию не нужно. Но будущих физиков и химиков (и вообще, учёных и инженеров) ИМХО обязательно нужно учить программированию. По-моему убеждению программирование всё больше становится общетехнической дисциплиной. То есть, быть например хорошим инженером и не знать программирование сегодня уже нельзя. Проблема только в том, что заранее неизвестно кто из сегодняшних школьников выберет стезю ученого или инженера.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 03:51:15 pm
Учить надо автоматизации труда. Убирать рутину из работы, перепоручать кремневым слугам. Эдакие высокотехнологичные уроки труда :-)

Это пригодится каждому, даже домохозяйке может пригодиться.

Но вообще, это конечно отдельная тема. И отдельно нужно думать как этому научить так, чтобы человек не растерялся в макоси, линуксе и винде. И ещё в том что там придумают.

Ясно что при такой постановке задачи так или иначе нужно рассказывать о скриптинге (ибо это и есть суть автоматизация), и языках которые под эту задачу приспособлены.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 03:52:16 pm
Проблема только в том, что заранее неизвестно кто из сегодняшних школьников выберет стезю ученого или инженера.
Кстати, Оберон тем и хорош для начального обучения. Те ученики, которым далее программирование в жизни будет не нужно, не сильно "пострадают" от изучения такого простого языка. Для остальных Оберон "вправит мозги"  :) и понизит порог вхождения для дальнейшего углубленного изучения программирования.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 04:05:07 pm
На самом деле, тут нужно очень-очень аккуратно. Я безусловно согласен что язык должен быть очень-очень простой. Но, вопрос в том, чему мы хотим научить? Почему например не Lua, которая, вообще говоря, проще Оберона? Ведь мы автоматизации учим? Какие базовые понятия и навыки мы хотим чтобы закрепились у человека?
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 04:08:51 pm
В плане программирования язык тут вторичен.
Категорически не согласен с этим. Но в полемику вступать не хочу.  :) Скажу только, что научиться хорошо играть на скрипке на "дровах" невозможно. Нужен хороший инструмент.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 04:10:58 pm
Про Lua ничего не могу сказать. Не знаком.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 04:16:58 pm
Конечно нужно иметь хороший инструмент. Но инструмент не может быть хорош сам по себе, он всегда хорош для какой-то задачи. Поэтому надо вначале корректно поставить задачу и потом уже к ней пробовать применить (мысленно хотя бы) имеющиеся инструменты.

Я не хочу противопоставлять Луа и Оберон. Это как-то даже немного глупо... Я хочу разобраться что к чему.

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

Например хотим ли мы, чтобы из этого общего курса человек узнал что такое указатель/ссылка? Как мы будем объяснять что это такое?
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 04:20:42 pm
Но, вопрос в том, чему мы хотим научить?
Представьте, что учитель на уроке труда пытается научить ученика отпиливать заготовку тупой и не разведёной ножовкой, которую зажимает при каждом движении. Инструмент, используемый при обучении, исключительно важен для самого обучения. Инструмент, используемый при обучении, должен сочетать в себе высокое качество и лёгкость в использовании. Уже потом, когда бывший ученик закончит ВУЗ и уйдёт на производство, вот там пусть и работает с ЧПУ.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 04:23:37 pm
Но, вопрос в том, чему мы хотим научить?
Представьте, что учитель на уроке труда пытается научить ученика отпиливать заготовку тупой и не разведёной ножовкой, которую зажимает при каждом движении. Инструмент, используемый при обучении, исключительно важен для самого обучения. Инструмент, используемый при обучении, должен сочетать в себе высокое качество и лёгкость в использовании. Уже потом, когда бывший ученик закончит ВУЗ и уйдёт на производство, вот там пусть и работает с ЧПУ.
Так я ж и не против! Но у нас сейчас может просто получиться, что учитель на уроке труда будет учить ученика посредством отличной, острой, разведеной, удобной в обращении ножовки варить суп.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 04:33:16 pm
... варить суп.
  ;D
Тогда язык, используемый при обучении, должен быть достаточно универсальным. Это нужно для того, чтобы он хорошо подходил для решения тех учебных задач, которые будет задавать учитель. Тогда ученику не придётся "варить суп из ножовки". Кстати, решение этих задач, как мы понимаем  ;), не сама цель.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 04:38:44 pm
... тех учебных задач, которые будет задавать учитель.
Мы, конечно, понимаем, что никто не будет заставлять 10-классника разрабатывать программное обеспечение для орбитального комплекса...
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 04:42:26 pm
Кстати, для орбитального комплекса, не реального конечно, а модели, это было бы здорово! По кр. мере мотивация бы сразу повысилась. :-)  Это ж замкнутый жилой комплекс! Там и мальчикам есть где развернуться, и девочкам.

А насчет требования универсальности... Инструмент должен быть конечно достаточно универсальным, но нужно иметь меру, а то окажется что и ножку отпиливаем и суп варим, и дрова колем, и штаны зашиваем вот этим: http://www.youtube.com/watch?v=Ek2dQx00DkU (советую досмотреть до конца, вначале там скучновато). :-)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 17, 2011, 05:06:11 pm
Да, уж! Я всё ждал, когда они из неё стрелять начнут. Но автомата Калашникова из неё так и не получилось :)
Название: Re:Оберон в образовании.
Отправлено: Galkov от Февраль 17, 2011, 05:23:51 pm
Главное чтобы он не мешал.
Ключевая фраза :)
И у меня моментальная ассоциация: на форуме HiAsm я обычно произносил: он мне помогает думать.

Вот Вы говорите про 16-летних - так там и 10 летние за два дня осваивают.
Главная беда, лично меня крайне огорчающая - все это в ущерб эффективности. Грубо говоря, рисовать фракталы - удовольствие ниже среднего. А то я Вам уж порассказал бы, чего следует использовать в образовании  :D
Но, пока - увы... Будем надеяться пока.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 17, 2011, 08:00:33 pm
Добавлю свои 20 копеек.
1. Если говорить о совсем начинающих, то последние полгода у меня сложилось впечатление, что начинать нужно на родном языке. Программа тогда выглядит почти как псевдокод, описываемый во многих книжках. Мы у себя попробовали с первого дня учить студней на Кумире. Вроде неплохо получилось.
Сейчас те же студни будут в одном курсе изучать С/С++, в другом - КП. Посмотрим, что получится.
Причем обучаться будут по схеме, которую я на основном форуме упоминал: за неделю выдается материал, потом лаба делается в контрольном режиме.
2. В настоящее время нельзя отрывать язык от инструментальной среды. И тут я должен вам со всей ответственностью заявить, что среды лучше, чем ББ я еще не встречал. Хотя я писал практически на всем, что было. А сейчас в студии - только еще на Додиезе не начал писать, не нужно пока.
Конечно, в библиотеке может быть, чего-то не хватает, но...
Сам принцип компонентно-расширяемой среды - остальным до этого еще ползти и ползти...
Школьная сборка наглядно продемонстрировала, насколько адаптивен ББ+КП.
Ткачев проделал колоссальную и очень важную работу: школьному учителю слабал инструмент и написал все инструкции - прямо в среде в виде помощи.   
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 17, 2011, 08:14:03 pm
Я бы советовал, в качестве расширения кругозора, посмотреть ещё Racket (как раз недавно новая версия вышла: http://www.linux.org.ru/news/opensource/5909095 http://en.wikipedia.org/wiki/Racket_(programming_language) ). Основной язык там -- модификация scheme. Но также там например есть реализация Алгола-60. Вообще букет языков. Применяется также в обучении программированию.

Вдруг полезным окажется?
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 17, 2011, 08:17:35 pm
Спасибо за ссылки - обязательно посмотрю.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 23, 2011, 09:42:49 am
Тут можно таки спокойно обсудить место оберона в образовательном процессе.

Мое мнение (я не преподаватель, так что это мнение со стороны): Oberon хорош как пример типичного императивного структурного языка без украшательств. На его примере хорошо показывать какие проблемы решает структурное программирование, и, однако, какие проблемы в ИЯ остаются не решенными. Хорошо Оберон в этом случае проходить на пару с Си, показав что несмотря на внешние отличия (синтаксис) сущность едина в общем то, и имеется общий сет проблем.

....
У меня , как преподавателя , нет оснований для рассмотрения Оберона в качестве основного ЯП (универсальный ответ на все потребности) в обучении. Но в качестве начального ЯП  он может быть востребован при освоении курсов (ЯП, Информатика) студентами -первокурсниками естественных и не вполне естественных специальностей (для них он может оказаться и конечным). Основание - практически все алгоритмы и конструкции с помощью которых иллюстрируются подобные курсы - отображаются на язык с минимальным количеством артефактов, которые привносит исполнитель (железяка). По сути дела речь идет о том, что решение задачи на обероне  достаточно близко человеческому описанию алгоритма... Но есть и недостатки... Самый большой - невоможность возвращения процедурой -функцией значений составного типа...Приходится использовать указатели - вводить сущность не продиктованную задачей..., ну и пара мелких неудобств - индексация массивов с 0 - приводит к частым ошибкам студентов в составлении своих и главное  - адаптации готовых алгоритмов, инверсия условия продолжения в цикле с постусловием...
А насчет иллюстрации проблем.... - для того чтобы их иллюстрировать- их нужно для начала ощущать, но и этого мало- степень раздражения от этих ощущений (их значимость) должна быть довольно высока... короче это не для 1,2,3 курсников.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 23, 2011, 03:07:25 pm
1) Что мешает использовать OUT-параметры? Желание записать композицию нескольких функций и не вводить промежуточных переменных? Это идёт от желания (предрассудка?) быть ближе к обычной математической записи? Не буду возражать на все 100% против возврата структур... но проблемы там возникают. А бонусы - ну давайте подумаем. Если возвращается структура, то она обычно неинкапсулирована (код работает с её составляющими). Те же комплексные числа или векторы. В таком случае я сразу предпочту записать в несколько отдельных строк и с отдельными пром. переменными, а не воротить одно выражение, иллюзорно простое (как тензорная форма, в которой в индексах ногу свернёшь, сложность только маскируется во многих случаях, лучше уж видеть всю пачку обычных уравнений).
Если же объекты действительно инкапсулированные, т.е. атомарны с точки зрения алгоритма, то они обычно являются указательными (длинные числа и т.п.)

2) Умение работать с нумерованными массивами с 0 - фундаментально, потому что любые операции со смещениями (хоть в той же обработке растровых изображений), представления многомерных структур в виде одномерных развёрток требуют думать именно вот от этого нуля. Лучше один раз объяснить, почему ноль, нарисовать массив снутри, добиться, чтоб при написании индекса эта картинка в голове всплывала, отбить житейское понимание индекса "как номера".

3) Цикл с условием в конце не нужен вообще. В алгоритмах - точно не нужен. Единичные случаи его использования как раз возникают далеко не в прикладном коде (типа "попробовать несколько раз выполнить операцию, пока не получится").

Пожелание - не использовать безграмотный термин "цикл с постусловием", иначе сразу ощущение, что человек не знает, что такое постусловие.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 23, 2011, 03:52:56 pm
1) Что мешает использовать OUT-параметры? Желание записать композицию нескольких функций и не вводить промежуточных переменных? Это идёт от желания (предрассудка?) быть ближе к обычной математической записи?

Математика здесь не причем. Просто более читабельная, естественная и однородная запись:
x := y;
z := f(x);

Однозначно видно откуда и куда текут данные, и кто от кого зависит. OUT параметры сразу все ломают. Почти как goto ломает поток выполнения ;)
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 23, 2011, 04:27:01 pm
В некоторых случаях мне тоже иногда видится запись типа:
(d, e, f) := f(a, b, c)

Но есть ещё VAR-параметры (и только не надо вот функционального экстремизма :) ), как их увязывать?
Общий способ "подпаяем контакты внутри скобок" как-то наиболее универсальный получается.
Хотя метить, что параметр VAR или OUT, я бы как-нибудь метил. Только коротко, потому что слишком часто писать out - такое загромождение.
Например, f(a, b, c, ^d, ^e, ^f)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 23, 2011, 04:41:39 pm
Например, f(a, b, c, ^d, ^e, ^f)
Ну вот мы и вернулись к Си :-)
f(a,b,c,&d,&e,&f);
Нужны только указатели (ну, ссылками назовите, без разницы), out-параметры не нужны.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 23, 2011, 04:43:46 pm
В некоторых случаях мне тоже иногда видится запись типа:
(d, e, f) := f(a, b, c)

Но есть ещё VAR-параметры (и только не надо вот функционального экстремизма :) ), как их увязывать?

Экстремизма, конечно, не надо. Но вот какие-то умолчательные паттерны как "хорошо" и как "плохо" - надо. Причем синтаксис должен поддерживать наиболее удобную/короткую/понятную запись для "хороших" паттернов. Неконстантные VAR параметры - плохо, соответственно пусть везде в местах вызовов пишут "BY REFERENCE" :) Шутка, конечно, можно и "^", но тем не менее.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 23, 2011, 04:52:58 pm
Например, f(a, b, c, ^d, ^e, ^f)
Ну вот мы и вернулись к Си :-)
f(a,b,c,&d,&e,&f);
Нужны только указатели (ну, ссылками назовите, без разницы), out-параметры не нужны.

Угу. Сто лет уже не использовал указатели/ссылки для возврата значений (будучи на С++). Только для передачи модифицируемой структуры (вектор какой-нибудь) и только в "локальных" впомогательных функциях. В public интерфейсах, даже если результат - вектор, он идет в качестве нормального результата. В случаях, когда очевидно, что результат может быть очень большой и лишнее копирование недопустимо - возвращается смарт-поинтер (гарантировано ненулевой, хе-хе).
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 23, 2011, 04:53:29 pm
foo (a,b,c) (* по умолчанию всё VAR *)
foo(VAR: a,b,c OUT: d, e, f); (* явно задаем вход и выход *)
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 23, 2011, 04:56:49 pm
1) Что мешает использовать OUT-параметры? Желание записать композицию нескольких функций и не вводить промежуточных переменных? Это идёт от желания (предрассудка?) быть ближе к обычной математической записи? Не буду возражать на все 100% против возврата структур... но проблемы там возникают. А бонусы - ну давайте подумаем. Если возвращается структура, то она обычно неинкапсулирована (код работает с её составляющими). Те же комплексные числа или векторы. В таком случае я сразу предпочту записать в несколько отдельных строк и с отдельными пром. переменными, а не воротить одно выражение, иллюзорно простое (как тензорная форма, в которой в индексах ногу свернёшь, сложность только маскируется во многих случаях, лучше уж видеть всю пачку обычных уравнений).
Если же объекты действительно инкапсулированные, т.е. атомарны с точки зрения алгоритма, то они обычно являются указательными (длинные числа и т.п.)

2) Умение работать с нумерованными массивами с 0 - фундаментально, потому что любые операции со смещениями (хоть в той же обработке растровых изображений), представления многомерных структур в виде одномерных развёрток требуют думать именно вот от этого нуля. Лучше один раз объяснить, почему ноль, нарисовать массив снутри, добиться, чтоб при написании индекса эта картинка в голове всплывала, отбить житейское понимание индекса "как номера".

3) Цикл с условием в конце не нужен вообще. В алгоритмах - точно не нужен. Единичные случаи его использования как раз возникают далеко не в прикладном коде (типа "попробовать несколько раз выполнить операцию, пока не получится").

Пожелание - не использовать безграмотный термин "цикл с постусловием", иначе сразу ощущение, что человек не знает, что такое постусловие.

1. Эта "сложность" была решена еще в первых компиляторах паскаля...Но ладно..Просто еще раз напомню (если вы призабыли) если дело доходит у первокурсников до программирования (это не везде), то подспудно в курсах ставится  целью, в первую очередь, научить студента алгоритмизировать  решение задачи для исполнителя... Т.е. есть основное алгоритм - программа всего лишь отображает его на язык доступный компилятору (увы с артефактами)... Моя принципиальная позиция - тем меньше артефактов от ЯП и железа тем лучше...
2. Нда, даже пример у вас "паяльный" а судите обо всем...Есть ведь экономисты, химики, физики, биологи,математики....подавляющее большинство литературы для них содержит "житейское" описание алгорима решений типичных задач, да и у программистов алгоритмические справочники и пособия зачастую "страдают" этими "недостатками"....
3. Разумеется без него МОЖНО обойтись.. но если он вылазит в процессе алгоритмизации задачи  то см. п.1. - почему бы ему не быть человечным.
Мое пожелание - попытаться  понять что термин - это всего лишь словесное отображение сущности... которая очень часто не вмещается в термин. Я стараюсь оперировать с сущностями, а "шкурка" вторична.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 23, 2011, 04:58:37 pm
На самом деле, возврат к оперерованию со ссылками-указателями имеет конечно очень плохой побочный эффект -- ссылка на переменную на стеке может быть сохранена где-нибудь вне него, например в глобальной переменной, и после разружения фрейма на стеке стать не валидной. Что очень не здорово.
Название: Re:Оберон в образовании.
Отправлено: Berserker от Февраль 23, 2011, 06:07:00 pm
Согласен с Ильёй. OUT-параметры вполне органично могут применяться и безболезненно применяются. Неприязнь к ним - просто особенность восприятия или привычка конкретных людей. Кроме того, сама природа функций подразумевает в большинстве случаев возможность не возвратить корректный результат, так что математическая нотация в случае корректной работы с подпрограммами не может использоваться часто.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 23, 2011, 06:20:43 pm
Согласен с Ильёй. OUT-параметры вполне органично могут применяться и безболезненно применяются. Неприязнь к ним - просто особенность восприятия или привычка конкретных людей. Кроме того, сама природа функций подразумевает в большинстве случаев возможность не возвратить корректный результат, так что математическая нотация в случае корректной работы с подпрограммами не может использоваться часто.
Да ради бога, я говорю про то, что понижение уровня языка в данном случае это плохо..принципиально плохо (вне зависимости от того применяете вы их в решение конкретных задач, даже на протяжении ВСЕЙ вашей практике программирования).
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 23, 2011, 06:46:49 pm
Согласен с Ильёй. OUT-параметры вполне органично могут применяться и безболезненно применяются. Неприязнь к ним - просто особенность восприятия или привычка конкретных людей. Кроме того, сама природа функций подразумевает в большинстве случаев возможность не возвратить корректный результат, так что математическая нотация в случае корректной работы с подпрограммами не может использоваться часто.

С функциями, которые возвращают некорректный результат жить очень трудно. Тратить учебное время непрофильных специальностей на объяснение несовершенства компьютерного мира и методы борьбы с ними (коды ошибок, механизм исключений) - ИМХО не очень эффективно. Проще сказать, что результат всегда корректен, а если он никак не может быть получен - лепить ASSERT/HALT. Для учебных целей - вполне хватит.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 23, 2011, 06:50:03 pm

С функциями, которые возвращают некорректный результат жить очень трудно. Тратить учебное время непрофильных специальностей на объяснение несовершенства компьютерного мира и методы борьбы с ними (коды ошибок, механизм исключений) - ИМХО не очень эффективно. Проще сказать, что результат всегда корректен, а если он никак не может быть получен - лепить ASSERT/HALT. Для учебных целей - вполне хватит.
Тысячу раз правы, но... и это вторично...
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 23, 2011, 09:18:50 pm
Гм. Про OUT-параметры... А привидите ка пример, что неиспользование OUT-параметров приводит к существенной деградации производительности. Т.е. где без него ну никак совершенно. Потому как сходу я такого разумного примера придумать не могу.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 02:21:48 am
Гм. Про OUT-параметры... А привидите ка пример, что неиспользование OUT-параметров приводит к существенной деградации производительности. Т.е. где без него ну никак совершенно. Потому как сходу я такого разумного примера придумать не могу.
Для меня они, всего лишь уточнение контракта, при проектировании субалгоритма , и ВАЖНОСТЬ их использования (спецификаторов вообще) связана  в первую очередь с этим обстоятельством. Все остальное артефакты... да их рассмотрение может играть критическую роль в определенных задачах (даже при подготовке специалистов системщиков)- но применительно к нашим баранам (точенее, в том круге задач который очертил я). этим явлением (деградацией) можно пренебречь.
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 24, 2011, 06:30:53 am
Согласен с Ильёй. OUT-параметры вполне органично могут применяться и безболезненно применяются. Неприязнь к ним - просто особенность восприятия или привычка конкретных людей.
OUT-параметры -- лишняя и бессмысленная сущность. Если процедура возвращает какие-то результаты в OUT-параметрах, то пусть она будет оформлена как функция, возвращающая кортеж из нескольких значений.
Ведь всё равно же есть функции, которые возвращают результат. Так почему бы эти функции не могли бы вернуть кортеж из нескольких значений?

Кроме того, сама природа функций подразумевает в большинстве случаев возможность не возвратить корректный результат, так что математическая нотация в случае корректной работы с подпрограммами не может использоваться часто.
такие функции должны возвращать результат типа Есть_корректный_результат/Нет_корректного_результата или Есть_корректный_результат/Код_ошибки_такой-то.

То, что OUT-параметры считаются органичными и всё такое -- просто следствие привычки к языкам со слабой системой типов или с неудобной работой с типами чуть сложнее целого числа...
Название: Re:Оберон в образовании.
Отправлено: Peter Almazov от Февраль 24, 2011, 06:45:48 am
OUT-параметры -- лишняя и бессмысленная сущность.
Согласен с этим, но только для функций. Если у процедуры есть побочный эффект, то оформлять ее как функцию -  очень плохо. В этом случае OUT-параметры вполне уместны.

P.S. Я не про Haskell  :)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 08:16:12 am
А есть ли смысл у разделения на процедуры и функции?
Название: Re:Оберон в образовании.
Отправлено: Peter Almazov от Февраль 24, 2011, 08:26:03 am
Не люблю функций с побочным эффектом.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 08:34:52 am
А есть ли смысл у разделения на процедуры и функции?
C точки зрения наших баранов  - нет, и  то и другое субалгоритмы которые возникают естественным образом при алгоритмизации задачи (я сюда отношу также , искусственное выделение их программистом с целью уменьшения сложности восприятия алгоритма (зависящее от индивидуальных особенносте программиста) ), либо в качестве особенностей языка, железяки, окружения, системы.
Так что разделение их в паскале - считаю артефактом языка
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 08:43:53 am
Не люблю функций с побочным эффектом.
Их никто не любит, лично я просто запрещаю их использование без веских на то оснований (а поскольку оных у первокурсника нет - нет и проблем)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 12:10:36 pm
А есть ли смысл у разделения на процедуры и функции?
Есть. То, что для функции плохо, для процедуры это может быть основной целью.
Рискну предположить, что в Оберонах ключевое слово FUNCTION не ввели для того, чтобы "не плодить сущности". Но сущностей от этого меньше не стало: процедуры - это процедуры, а функции - это функции, и смешивать эти понятия на мой взгляд не стОит.

PS: За одно, не понадобится вводить корявый термин proper procedure (обычные процедуры).
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 02:00:15 pm

Есть. То, что для функции плохо, для процедуры это может быть основной целью.
Рискну предположить, что в Оберонах ключевое слово FUNCTION не ввели для того, чтобы "не плодить сущности". Но сущностей от этого меньше не стало: процедуры - это процедуры, а функции - это функции, и смешивать эти понятия на мой взгляд не стОит.

PS: За одно, не понадобится вводить корявый термин proper procedure (обычные процедуры).

Так покажите это! Для меня достаточно будет если вы покажете,  что определение функции не сводимо к чему -то на подобии "это процедура возвращаемое значение которой можно непосредственно использовать в выражениях...."
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 03:20:37 pm
Так покажите это! Для меня достаточно будет если вы покажете ..."
Не понял, что показать-то? Процедура - это обработка данных, которую необходимо выполнить. Функция - это значение, которое необходимо получить/вычислить. В процессе своей работы функция не должна изменять глобальное (по отношению к данной функции) состояние программы.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 24, 2011, 03:29:24 pm
Так покажите это! Для меня достаточно будет если вы покажете ..."
Не понял, что показать-то? Процедура - это обработка данных, которую необходимо выполнить. Функция - это значение, которое необходимо получить/вычислить. В процессе своей работы функция не должна изменять глобальное (по отношению к данной функции) состояние программы.

Не проще ли просто стремится к тому, чтобы процедуры/функции не изменяли что-то глобальное? Тогда не потребуется столь нечеткое разделение на процедуры и функции. И OUT-параметры - тоже не потребуются :)
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 03:41:38 pm
Так покажите это! Для меня достаточно будет если вы покажете ..."
Не понял, что показать-то? Процедура - это обработка данных, которую необходимо выполнить. Функция - это значение, которое необходимо получить/вычислить. В процессе своей работы функция не должна изменять глобальное (по отношению к данной функции) состояние программы.
То есть П.. отличается от Ф. требованием "В процессе своей работы функция не должна изменять глобальное (по отношению к данной функции) состояние программы."?
Название: Re:Оберон в образовании.
Отправлено: Peter Almazov от Февраль 24, 2011, 03:56:40 pm
Тогда не потребуется столь нечеткое разделение на процедуры и функции.
А чего тут нечеткого? void - процедура, не void - функция.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:00:18 pm
Не проще ли просто стремится к тому, чтобы процедуры/функции не изменяли что-то глобальное? Тогда не потребуется столь нечеткое разделение на процедуры и функции.
Ситуация мне представляется забавной. Попробую объяснить, прибегнув к аналогии.
Вот, представьте, что я над порогом своего дома натянул незаметную верёвочку на уровне колена.  :)  И всех своих знакомых, которых я пригласил в гости, я заботливо оповестил, что мол будьте осторожны, не упадите когда будете входить, у меня там натянута верёвочка.

И когда кто-нибудь всё-таки запнётся и расквасит себе нос, я встану над ним и запричитаю: "Ну, что же вы так не внимательны. Осторожнее надо быть, ведь же я вас предупреждал!"

Проблему, на мой взгляд, можно решить введя в язык следующие правила:
1. Внутри функции глобальные (по отношению к ней) переменные доступны только для чтения.
2. Параметры, передаваемые в функцию по ссылке, доступны внутри функции только для чтения.
3. Внутри функции запрещено использовать вызов процедур.

И хватит благостной говорильни о вреде побочного эффекта  :)
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 04:04:32 pm
А чего тут нечеткого? void - процедура, не void - функция.
То есть разница между ними есть просто отражение различий в определении интерфейса?
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:04:51 pm
То есть П.. отличается от Ф. требованием "В процессе своей работы функция не должна изменять глобальное (по отношению к данной функции) состояние программы."?
И это тоже. Но не только.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:11:40 pm
2DIzer
"void", "не void" - забудьте про C. В нём процедуры отсутствуют как класс. Поэтому там никто не решится избавить функции от побочного эффекта.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 04:18:21 pm
Хм. А быть может подойти к дело более общо?

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

Допустим у нас есть штука которая модифицирует даденый массив и попутно что-то печатает в лог а также сообщает смогла или не смогла она довести работу до конца. Очевидно что для работы ей потребуется доступ к нашему массиву на чтение и запись, доступ на запись к логу, и доступ на запись к нашему возвращаемому значению. Так почему бы прямо так и не написать?

Вот предположим у нас эта гм... ну пусть процедура (далее псевдокод):
proc foo require
    arr : Array of Int (read, write),
    log : Logger (write),
    res : Boolean (write) := False;
begin
    for I in range(arr) do
        arr(I) := arr(I)+1;
        log.writeln(arr(I));
    end
    res := True;
end foo

Ну и соответственно использование:
res : Boolean;
my_log : SysLogger;
my_array : Array (1..100) of Int;
...
fooCall is foo with my_log (write), res (write), my_array (read, write);
do fooCall;
Многословно? Возможно, но это лишь псевдокод, так понятней. Синтаксис штука вторичная, можно допилить.
Важно что мы и в спецификации и при использовании ЯВНО указываем до чего может данная процедура получить доступ. И какой именно доступ. Частичная конкретизация доступа тоже возможна:
my_log : SysLogger;
fooSysLog is foo with my_log (write);
..
foo1 is fooSysLog with res1 (write), my_array1(read, write);
do foo1;
foo2 is fooSysLog with res2 (write), my_array1(read, write);
do foo2;
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 04:24:38 pm
2DIzer
"void", "не void" - забудьте про C. В нём процедуры отсутствуют как класс. Поэтому там никто не решится избавить функции от побочного эффекта.
Отсутствует слово Procedure? но там и Function отстутствует,  разве нет?
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 04:27:12 pm
Кстати, если уж быть совсем последовательным, то и процедура foo будет писана как-то так:
proc foo require
    arr : Array of Int (read, write),
    log : Logger (write),
    res : Boolean (write) := False;
begin
    for I in range(arr) do
        arr(I) := arr(I)+1;
        do log.writeln with arr(I) (read);
    end
    res := True;
end foo
В общем, на счет синтаксиса надо ещё подумать будет :-) (в частности у меня тут непонятно -- позиционная запись параметров идет или нет, если позиционная, то в предыдущем сообщении в коде у меня очевидно ошибка, если именная, то где имена? хотя можно конечно отбрехаться, мол в примере типизация дает однозначную трактовку что куды пихать, в противном случае компилятор ругнётся :-) )
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 24, 2011, 04:30:33 pm
Проблему, на мой взгляд, можно решить введя в язык следующие правила:
1. Внутри функции глобальные (по отношению к ней) переменные доступны только для чтения.
2. Параметры, передаваемые в функцию по ссылке, доступны внутри функции только для чтения.
3. Внутри функции запрещено использовать вызов процедур.

ИМХО такое правило не будет работать, потому что абсолютно непрактично переделывать 20 функций в процедуры как только самая "нижняя" функция превратится в процедуру. В этом смысле ограничение на уровне конкретных аргументов (просто const или как Алексей написал) более гранулярно и гибко. А функция/процедура - должна быть одной сущностью.
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 24, 2011, 04:34:10 pm
Не проще ли просто стремится к тому, чтобы процедуры/функции не изменяли что-то глобальное?
Если процедура не меняет ничего глобального (в том числе -- и ввод/вывод), то толку от неё нет, только процессорное время зря тратит. Зачем она нужна?
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 24, 2011, 04:36:25 pm
Проблему, на мой взгляд, можно решить введя в язык следующие правила:
1. Внутри функции глобальные (по отношению к ней) переменные доступны только для чтения.
2. Параметры, передаваемые в функцию по ссылке, доступны внутри функции только для чтения.
3. Внутри функции запрещено использовать вызов процедур.

И хватит благостной говорильни о вреде побочного эффекта  :)
Это же Хаскелл!  ;D
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:37:53 pm
Что есть функция или процедура? Это есть кусок кода который что-то делает. У этого куска кода есть вход и выход. Все. Таким образом нужно явно указать что этому куску подаем на вход, и что будем принимать на выходе. Именно явно, а не как сейчас.
Не могу с этим согласиться. В Оберонах (ведь тема о них?) единицей инкапсуляции является модуль. Изнутри процедуры видны все глобальные переменные. Если обязать программистов явно указывать все первичные (на входе процедуры) и вторичные (на выходе процедуры) данные, то они (программисты) "повесятся" прокачивать через параметры все эти объёмы информации.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 24, 2011, 04:40:01 pm
Не проще ли просто стремится к тому, чтобы процедуры/функции не изменяли что-то глобальное?
Если процедура не меняет ничего глобального (в том числе -- и ввод/вывод), то толку от неё нет, только процессорное время зря тратит. Зачем она нужна?

В смысле? Она может сделать 2 + 2 и вернуть результат :) Или вы к тому, что все есть функция и нечего придумывать лишние сущности?
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:40:26 pm
"void", "не void" - забудьте про C. В нём процедуры отсутствуют как класс. Поэтому там никто не решится избавить функции от побочного эффекта.
Отсутствует слово Procedure? но там и Function отстутствует,  разве нет?
Процедура и функция отличаются прежде всего использованием. Вызов процедуры - это оператор, а вызов функции - операнд.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 04:41:54 pm
Причем очень суровый такой Haskell -- без монад, лямбд и прочих радостей. Т.e. даже логи пописать в таких функцихя не получится. Ужоз!
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 04:44:35 pm
Что есть функция или процедура? Это есть кусок кода который что-то делает. У этого куска кода есть вход и выход. Все. Таким образом нужно явно указать что этому куску подаем на вход, и что будем принимать на выходе. Именно явно, а не как сейчас.
Не могу с этим согласиться. В Оберонах (ведь тема о них?) единицей инкапсуляции является модуль. Изнутри процедуры видны все глобальные переменные. Если обязать программистов явно указывать все первичные (на входе процедуры) и вторичные (на выходе процедуры) данные, то они (программисты) "повесятся" прокачивать через параметры все эти объёмы информации.
Не повесятся. Просто в своем мегамодуле (в котором они используют эти самые процедуры) они сделают частичную конкретезацию наиболее часто встречающихся комбинаций и всё. Будет в общем то даже ещё проще чем сейчас :-)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 04:46:23 pm
А кстати, функция это тоже единица инкапсуляции даже в Обероне. Только ещё более мелкая.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:48:27 pm
... абсолютно непрактично переделывать 20 функций в процедуры как только самая "нижняя" функция превратится в процедуру.
"Нижняя" функция не должна превращаться в процедуру, так как это может вызвать побочный эффект. И вообще, прежде чем начинать писать 19 "верхних" функций нужно определиться, что я хочу: вычислить выражение или выполнить обработку данных.

PS: Обсуждение оживилось. Не успеваю отвечать.  :)
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 24, 2011, 04:50:08 pm
Что есть функция или процедура? Это есть кусок кода который что-то делает. У этого куска кода есть вход и выход. Все. Таким образом нужно явно указать что этому куску подаем на вход, и что будем принимать на выходе. Именно явно, а не как сейчас.
Не могу с этим согласиться. В Оберонах (ведь тема о них?) единицей инкапсуляции является модуль. Изнутри процедуры видны все глобальные переменные. Если обязать программистов явно указывать все первичные (на входе процедуры) и вторичные (на выходе процедуры) данные, то они (программисты) "повесятся" прокачивать через параметры все эти объёмы информации.

Да не. Это сначала только страшно кажется :) Вся эта куча зависимостей от глобальных переменных разбивается на кучки и инкапсулируется. Так что объемы прокачиваемой информации будут скрыты и все будут счастливы :)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:50:52 pm
Если процедура не меняет ничего глобального (в том числе -- и ввод/вывод), то толку от неё нет, только процессорное время зря тратит. Зачем она нужна?
Ну, я бы не был столь категоричен. Но согласен, что если процедура изменила что-то глобальное, то это абсолютно нормально.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 04:53:38 pm
Хм. А быть может подойти к дело более общо?....

Так это разве общо? Вы пытаетесь определить общее понятие с позиции  конкретного ЯП. По сути пытаетесь обьяснить не паяльное явление, с позиции паяльника... у меня лично нет оснований утверждать, что мир это большая и сложная схема...Да такая точка зрения распространена... Но в этой системе отсчета оберону практически нет места в системе образования...если ВСЕ понятия определять с помощью ЯП то лучше честно - программистов учить на си, с++ , физиков - фортрану.... Только и в это системе отсчета есть сбои- вспомните г-на Чернова - его таки лишили курса... не смотря на то, что он честный и квалифицированный паяльник... и его поддержал Макс- фразу из его выступления  вы вставили в чат...
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 04:56:17 pm
А кстати, функция это тоже единица инкапсуляции даже в Обероне. Только ещё более мелкая.
Да, согласен. Я хотел подчеркнуть, что процедура видит все объявления модуля, в котором она объявлена.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 04:59:16 pm
Хм. А быть может подойти к дело более общо?....

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

Чтобы не повеситься от повторения одного и того же, предлагаю использовать механизм частичной конкретизации. Вот и всё.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 24, 2011, 05:03:17 pm
... абсолютно непрактично переделывать 20 функций в процедуры как только самая "нижняя" функция превратится в процедуру.
"Нижняя" функция не должна превращаться в процедуру, так как это может вызвать побочный эффект. И вообще, прежде чем начинать писать 19 "верхних" функций нужно определиться, что я хочу: вычислить выражение или выполнить обработку данных.

Ну что вы в самом деле :) Ну вот захотите вы какой-нибудь логгинг в этой функции добавить... В общем да - такой хаскель, только вручную ;)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:11:35 pm
Ну что вы в самом деле :) Ну вот захотите вы какой-нибудь логгинг в этой функции добавить...
В этом случае я напишу процедуру, в которой сначала будет вызов функции, а далее ниже по тексту этот самый логгинг  ;) Мухи не должны быть вперемежку с котлетами  :)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 05:15:05 pm
На самом деле иногда должны. Удобно бывает. Для этого в Haskell'e есть монада Writer (ну или самому можно подобную соорудить). А в Обероне с такими правилами для функций мы уже ничего не сделаем.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 05:15:31 pm

Ничего не понял. С т.з. какого языка я что-то там рассматриваю? У меня вообще псевдокод :-)
Каждый кусок кода зависит от чего-то. Идея ровно в том, чтобы это что-то было явно описано в спецификации. реализации и точке использования.

Чтобы не повеситься от повторения одного и того же, предлагаю использовать механизм частичной конкретизации. Вот и всё.
С позиции псевдокода...в котором описаны конкретные действия...так сформулируйте и дайте определение НЕзависящие от выбора конкретных действий.. в противном случае от того что вы написали мало толку...почему обьяснять надо?  :)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:16:00 pm
Это же Хаскелл!  ;D
К сожалению (или к счастью), я - убеждённый императивщик.  :-) Во всяком случае, пока.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 05:21:29 pm
С позиции псевдокода...в котором описаны конкретные действия...так сформулируйте и дайте определение НЕзависящее от выбора конкретных действий.. в противном случае от того что вы написали мало толку...почему обьяснять надо?  :)
Так вроде бы уже.. Причем разика два-три уже. Словами. А псевдокод это был просто пример. На примерах народ лучше понимает обычно.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 24, 2011, 05:22:34 pm
Ну что вы в самом деле :) Ну вот захотите вы какой-нибудь логгинг в этой функции добавить...
В этом случае я напишу процедуру, в которой сначала будет вызов функции, а далее ниже по тексту этот самый логгинг  ;) Мухи не должны быть вперемежку с котлетами  :)

Не напишите. У вас "сверху" 20 функций. Куда вы процедуру воткнете? На самый верх? Там логать уже будет слишком поздно. Или слишком рано.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:28:10 pm
А в Обероне с такими правилами для функций мы уже ничего не сделаем.
Да. Оберон останется таким, каким его придумал автор. Но и в таком виде, по моему убеждению, он является кандидатом №1 на роль языка для начального обучения.
Вот что парадоксально, исполнит он эту роль или нет, от самого языка уже не зависит. Это зависит от того, станет ли он применяться в промышленных масштабах. Языки приходят в образование через индустрию. Другой дороги нет. Этому нас как бы учит история.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 05:29:37 pm
Что есть функция или процедура? Это есть кусок кода который что-то делает. У этого куска кода есть вход и выход. Все. Таким образом нужно явно указать что этому куску подаем на вход, и что будем принимать на выходе. Именно явно, а не как сейчас.
Не могу с этим согласиться. В Оберонах (ведь тема о них?) единицей инкапсуляции является модуль. Изнутри процедуры видны все глобальные переменные. Если обязать программистов явно указывать все первичные (на входе процедуры) и вторичные (на выходе процедуры) данные, то они (программисты) "повесятся" прокачивать через параметры все эти объёмы информации.
Вот это? .....так вы и получили "ответ" от паяльника, чей инструмент от "другой" фирмы.. а дальше стандартно... обсуждении....сравниваются схемы , инструменты... короче полный джаз
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 05:32:03 pm
В образование языки приходят через промышленность только у нас. У проклятых буржуев частенько в промышленность приходят языки из и через образованиe. Равно как существуют языки использующиеся (широко) в образовании но не использующиеся в промышленности вообще.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:33:20 pm
В этом случае я напишу процедуру, в которой сначала будет вызов функции, а далее ниже по тексту этот самый логгинг  ;)

Не напишите. У вас "сверху" 20 функций. Куда вы процедуру воткнете? На самый верх? Там логать уже будет слишком поздно. Или слишком рано.
Тогда я перепишу все 20 функций. "Бешеной собаке семь вёрст - не крюк"  :)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 05:35:52 pm
Вот это? .....так вы и получили "ответ" от паяльника, чей инструмент от "другой" фирмы.. а дальше стандартно... обсуждении....сравниваются схемы , инструменты... короче полный джаз
Гм. А что может быть более общим, нежели некая хрень у которой есть вход и выход? Ну, либо хрень которой дается некое окружение (с правами доступа на отдельные части окружения) и она с этим уже работает?

В общем, прошу помочь вытащить паяльник :-)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:36:10 pm
Вот это? .....так вы и получили "ответ" от паяльника, чей инструмент от "другой" фирмы.. а дальше стандартно... обсуждении....сравниваются схемы , инструменты... короче полный джаз
Извините, я Вас не понимаю. В частности, кого Вы называете паяльником.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:37:22 pm
В образование языки приходят через промышленность только у нас. У проклятых буржуев частенько в промышленность приходят языки из и через образованиe.
Но мы-то живём "у нас".
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 24, 2011, 05:42:26 pm
В этом случае я напишу процедуру, в которой сначала будет вызов функции, а далее ниже по тексту этот самый логгинг  ;)

Не напишите. У вас "сверху" 20 функций. Куда вы процедуру воткнете? На самый верх? Там логать уже будет слишком поздно. Или слишком рано.
Тогда я перепишу все 20 функций. "Бешеной собаке семь вёрст - не крюк"  :)

Ну так это просто приведет к тому, что никто не будет писать функции :) Чтобы потом не переписывать :)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 05:43:03 pm
В образование языки приходят через промышленность только у нас. У проклятых буржуев частенько в промышленность приходят языки из и через образованиe.
Но мы-то живём "у нас".

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

Если бы в мире было так как у нас (и у нас было бы так как сейчас всегда), то мы бы до сих пор на асме писали бы. В лучшем случае -- на фортране и коболе.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:49:07 pm
Ну так это просто приведет к тому, что никто не будет писать функции ...
... там где нужны процедуры, и никто не будет писать процедуры там, где нужны функции!  :)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 05:58:31 pm
А у нас тут всё поставлено с ног на голову. Типо промышленность первична, а образование вторично.
Чьё-либо простое заявление, что язык А - хороший, всегда спорно. А использование языка Б в промышленности - является "доказательством" (с точки зрения чиновника, от которого всё зависит), что этот язык - хороший. Хотите переубедить чиновника?
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 24, 2011, 06:07:51 pm
Вот это? .....так вы и получили "ответ" от паяльника, чей инструмент от "другой" фирмы.. а дальше стандартно... обсуждении....сравниваются схемы , инструменты... короче полный джаз

Кстати, уж не знаю, как биологам, а вот математикам очень неплохо столкнуться и поработать с некоторой абстракцией реального "паяния". Т.е. без деталей случайно-частных, но со всей спецификой "обще-машинности", а не чисто "нотации для записи".
Чтобы почувствовать разницу между символической математикой и "исполняемой математикой".
Конкретное значение - сразу закладывать познание темы "по-взрослому", без игрушечных иллюзий.
Общенаучное значение - понимать первый переход - к конструктивному подмножеству математики, а далее второй переход - к тому, как эта конструктивная математика физически реализуется.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 06:08:37 pm
А у нас тут всё поставлено с ног на голову. Типо промышленность первична, а образование вторично.
Чьё-либо простое заявление, что язык А - хороший, всегда спорно. А использование языка Б в промышленности - является "доказательством" (с точки зрения чиновника, от которого всё зависит), что этот язык - хороший. Хотите переубедить чиновника?
Какой кошмар. Это сообщение заставляет меня задуматься о добавление на форум смайликов вот такого рода:
(http://www.rsdn.ru/Forum/images/maniac.gif) (http://www.rsdn.ru/Forum/images/crash.gif) (http://www.rsdn.ru/Forum/images/wow.gif)
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 06:13:47 pm
Вот это? .....так вы и получили "ответ" от паяльника, чей инструмент от "другой" фирмы.. а дальше стандартно... обсуждении....сравниваются схемы , инструменты... короче полный джаз
Гм. А что может быть более общим, нежели некая хрень у которой есть вход и выход? Ну, либо хрень которой дается некое окружение (с правами доступа на отдельные части окружения) и она с этим уже работает?

В общем, прошу помочь вытащить паяльник :-)
Еще как может... есть понятие алгоритма,  есть понятие типа данных, переменной, данных, императивности... попробуйте в них  :) дать определение. а я в свою очередь попытаюсь коструктивно  уточнить его если понадобится. Идет?
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 06:21:12 pm
Вот это? .....так вы и получили "ответ" от паяльника, чей инструмент от "другой" фирмы.. а дальше стандартно... обсуждении....сравниваются схемы , инструменты... короче полный джаз

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

Вы правы , но вмеру... Напоминаю разделение произошло, из невозможности на практике подготовить "универсала" - это только в коммунистических агитках было чел. утром за станок, днем за кульман. а вечером размышляет о смысле жизни на уровне Канта..Действительность оказалось суровее... кроме того эффективная подготовка специалистов практиков одна с точки зрения методологии, универсалов другая, средства затрачиваемые на них различны, да и количество их различно...то есть то что мы имеем сейчас- обычная реальность
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 06:37:43 pm
... является "доказательством" (с точки зрения чиновника)
Какой кошмар.
Не понял, в чём именно состоит кошмар. Ну, да ладно.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 24, 2011, 06:39:30 pm
... является "доказательством" (с точки зрения чиновника)
Какой кошмар.
Не понял, в чём именно состоит кошмар. Ну, да ладно.
Кошмар в том, что у чиновника такая точка зрения, и она является определяющей.
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 24, 2011, 06:44:08 pm
Это же Хаскелл!  ;D
К сожалению (или к счастью), я - убеждённый императивщик.  :-) Во всяком случае, пока.
Хех, так ведь один из авторов Хаскелла (Simon Peyton Jones) утверждает, что:
- "Хаскелл: прекраснейший в мире императивный язык программирования"
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 06:49:10 pm
Цитата: valexey
Кошмар в том, что у чиновника такая точка зрения, и она является определяющей.
Я уж было испугался, что Вы подумали, что для меня является "доказательством".
Я как раз люблю идти к практике через теорию: сначала расчёт, затем моделирование, а уж потом включение рубильника - и никаких взрывов  ;D
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 24, 2011, 06:55:20 pm
Это же Хаскелл!  ;D
К сожалению (или к счастью), я - убеждённый императивщик.  :-) Во всяком случае, пока.
Хех, так ведь один из авторов Хаскелла (Simon Peyton Jones) утверждает, что:
- "Хаскелл: прекраснейший в мире императивный язык программирования"
Вот после этого изучать его и  не хочется, если уж создатель говорит такое...  :D  Нее пусть сначала они между собой разберутся (создатели).
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 06:57:06 pm
Simon Peyton Jones: "Хаскелл: прекраснейший в мире императивный язык программирования"
Всё! Вы меня "доканали"  ;D Записываю себе в лист ToDo: "Познакомиться поближе с Хаскеллем!"
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 24, 2011, 07:01:35 pm
пусть сначала они между собой разберутся (создатели).
Не, лучше самому во всём разобраться.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 24, 2011, 07:02:14 pm
Вы правы , но вмеру... Напоминаю разделение произошло, из невозможности на практике подготовить "универсала" - это только в коммунистических агитках было чел. утром за станок, днем за кульман. а вечером размышляет о смысле жизни на уровне Канта..Действительность оказалось суровее... кроме того эффективная подготовка специалистов практиков одна с точки зрения методологии, универсалов другая, средства затрачиваемые на них различны, да и количество их различно...то есть то что мы имеем сейчас- обычная реальность

Кстати, Вы знакомы с книгой Кушниренко "Программирование для математиков"? Это мехматовский курс программирования. Там очень приличная "системная составляющая", но поданная абстрактно (эмуляция одних структур данных через другие, виртуальная память и т.п.). И в такой подаче она оказывается очень уморазвивающей именно для математиков.
http://317.metasystems.ru/lib/exe/fetch.php/first:kushnirenko-progmath.djvu
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 03:02:48 am
Ну так это просто приведет к тому, что никто не будет писать функции ...
... там где нужны процедуры, и никто не будет писать процедуры там, где нужны функции!  :)

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

P.S. Еще, вроде, в Аде что-то похожее есть. Но не знаю деталей.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 25, 2011, 04:25:30 am
На самом деле есть очень похожий опыт у жабы. ... Так вот, даже в таком виде этот подход зачастую подвергается критике (хотя "хорошие" мотивы очевидны). Вы же предлагаете еще более экстремальную штуку. Не, не заработает :)
Хочу обратить Ваше внимание, что написание этих 20 функций не является самоцелью. Задача может иметь много решений. Грубо говоря, ошибка может быть не только в исходном коде, но и в коде ДНК  :) В моей практике пока не возникало необходимости в таком уровне вложенности, максимум 2 от силы 3. Хотя, может просто не попадалось соответствующей задачи.

Что касается вызова системных процедур из "моих" функций, то этого можно легко избежать, применяя в таких местах процедуру вместо функции. Результат в этом случае возвращается в параметре. Вообще, для всех системных вызовов я стараюсь делать интерфейс типа "узкое горло". Системные вызовы в прикладных модулях у меня не встречаются.

А что Вы подразумеваете под функциями высшего порядка? Полиномы N-ой степени?  :)
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 25, 2011, 06:24:41 am
А что Вы подразумеваете под функциями высшего порядка? Полиномы N-ой степени?  :)
Функции, оперирующие другими функциями.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 06:36:52 am
Вы правы , но вмеру... Напоминаю разделение произошло, из невозможности на практике подготовить "универсала" - это только в коммунистических агитках было чел. утром за станок, днем за кульман. а вечером размышляет о смысле жизни на уровне Канта..Действительность оказалось суровее... кроме того эффективная подготовка специалистов практиков одна с точки зрения методологии, универсалов другая, средства затрачиваемые на них различны, да и количество их различно...то есть то что мы имеем сейчас- обычная реальность

Кстати, Вы знакомы с книгой Кушниренко "Программирование для математиков"? Это мехматовский курс программирования. Там очень приличная "системная составляющая", но поданная абстрактно (эмуляция одних структур данных через другие, виртуальная память и т.п.). И в такой подаче она оказывается очень уморазвивающей именно для математиков.
http://317.metasystems.ru/lib/exe/fetch.php/first:kushnirenko-progmath.djvu
О... очень качественная программа подготовки ремесленника. Спасибо. Но к нашему Вузу она не подойдет - просто нет соответствующего ремесленного направления - а обучать по ней математиков общего профиля, да еще на ПЕРВОМ курсе верх идиотизма (это мое мнение)..
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 25, 2011, 07:13:16 am
В моей практике пока не возникало необходимости в таком уровне вложенности, максимум 2 от силы 3.
2Vlad
На всякий случай уточню, я говорил о вложенности описаний функций, но не их вызовов.
Тогда возможно мы говорили немного о разном  :-\\ Ивиняюсь, если я не правильно Вас понял.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 08:33:43 am
1. Внутри функции глобальные (по отношению к ней) переменные доступны только для чтения.
2. Параметры, передаваемые в функцию по ссылке, доступны внутри функции только для чтения.
3. Внутри функции запрещено использовать вызов процедур.
Итак что же мы имеем? Мы имеем повторение Ады. Собственно, если мне склероз не изменяет, там функции это ровно то самое и есть.

Что имеем на практике? На практике мы имеем, что если мы в функцию передаем указатель, то его конечно мы изменить не можем, а вот объект по этому указателю -- вполне. Ок, мы передали объект по константной ссылке. Тогда сам объект мы изменить не можем, но вот объекты на которые держит указатели этот объект вполне. :-)

Кроме того, 20ти летняя практика применения этого показала, что это таки не удобно. Поэтому в Аде-2005 имеются для функций уже некоторые послабления.

Короче, по этим граблям народ уже бегал. В том числе и я.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 25, 2011, 10:36:59 am
Что имеем на практике? На практике мы имеем, что если мы в функцию передаем указатель, то его конечно мы изменить не можем, а вот объект по этому указателю -- вполне. Ок, мы передали объект по константной ссылке. Тогда сам объект мы изменить не можем, но вот объекты на которые держит указатели этот объект вполне. :-)
Это ещё раз доказывает, что хороший язык (каким является Оберон) - это тонкий сбалансированный инструмент. Нельзя сбухты-барахты взять и ввести в него отдельно взятое "хорошее" правило. В то же время, это не означает, что те правила, которые я предложил, плохие. Просто для их применения нужен другой язык (не Оберон и не Ада).
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 01:14:23 pm
В моей практике пока не возникало необходимости в таком уровне вложенности, максимум 2 от силы 3.
2Vlad
На всякий случай уточню, я говорил о вложенности описаний функций, но не их вызовов.
Тогда возможно мы говорили немного о разном  :-\\ Ивиняюсь, если я не правильно Вас понял.

Да, я говорил именно о вызовах, а не об описании. Иначе смысл всей затеи (разделение на функции с результатом и процедуры с OUT-параметрами) для меня теряется...
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 25, 2011, 04:07:45 pm
Кстати, Вы знакомы с книгой Кушниренко "Программирование для математиков"? Это мехматовский курс программирования. Там очень приличная "системная составляющая", но поданная абстрактно (эмуляция одних структур данных через другие, виртуальная память и т.п.). И в такой подаче она оказывается очень уморазвивающей именно для математиков.
http://317.metasystems.ru/lib/exe/fetch.php/first:kushnirenko-progmath.djvu
О... очень качественная программа подготовки ремесленника. Спасибо. Но к нашему Вузу она не подойдет - просто нет соответствующего ремесленного направления - а обучать по ней математиков общего профиля, да еще на ПЕРВОМ курсе верх идиотизма (это мое мнение)..
[/quote]

Не ремесленника, а проектировщика начального уровня... Понимающего, как происходит полноценная программная реализация любых идей.
Если же Вы принципиально хотите учить без выхода на уровень полноценного программирования, а просто - "электронный лист бумаги для формул, ввёл - посчитало" - то чем Вас мат. пакеты не устраивают?
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 04:31:31 pm
А есть ли смысл у разделения на процедуры и функции?
Есть.
Функция - это то, к чему мы привыкли в математике.
А процедура имеет ясный и понятный смысл - это просто последовательность команд исполнителя, не обязательно возвращающий некий результат.
Например, рисование фигуры в окне.  Приплетать к последовательности команд еще и неких результат в виде значения - это лишнее.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 04:42:47 pm
Да. Оберон останется таким, каким его придумал автор. Но и в таком виде, по моему убеждению, он является кандидатом №1 на роль языка для начального обучения.
Вот что парадоксально, исполнит он эту роль или нет, от самого языка уже не зависит. Это зависит от того, станет ли он применяться в промышленных масштабах. Языки приходят в образование через индустрию. Другой дороги нет. Этому нас как бы учит история.
С первым утверждением согласен - имхо тоже лучше нет.
Со вторым - не согласен. Паскаль в образование пришел как раз не из индустрии.
И кстати, Вирт об этом прямо говорит (см. Потерянная дорога): нельзя в универах учить промышленным языкам. Универы - это не учреждения по подготовке промышленных программистов, универы - это научные центры, которые и должны показывать промышленности направление движения. Как во всякой другой сфере и обычно и бывает. Только не в ИТ. Кстати, почему?
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 04:45:33 pm
В образование языки приходят через промышленность только у нас. У проклятых буржуев частенько в промышленность приходят языки из и через образованиe. Равно как существуют языки использующиеся (широко) в образовании но не использующиеся в промышленности вообще.
К сожалению, не только у нас. В МИТе стали изучать Java. Джоэл Спольски об этом тоже писал, что это - ошибка.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 04:48:56 pm
А есть ли смысл у разделения на процедуры и функции?
Есть.
Функция - это то, к чему мы привыкли в математике.
А процедура имеет ясный и понятный смысл - это просто последовательность команд исполнителя, не обязательно возвращающий некий результат.
Например, рисование фигуры в окне.  Приплетать к последовательности команд еще и неких результат в виде значения - это лишнее.

Применительно к языку а-ля оберон, функция - это тоже последовательность команд, как ни крути. Так что вся разница сводится к возврату или не возврату значения. И эта разница, ИМХО, даже не стоит отдельного термина. Значение или возвращается или нет. Так же как не стоит отдельного термина процедура/функция без аргументов.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 04:51:07 pm


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

Ремесленника, Илья , ремесленника - и проектировка ПО может быть ремеслом, и физика, и математика- когда делается черезмерный упор на специализацию, да еще с самого начала... Большинству этого вполне хватает... и это ОК, но на определенном этапе... ограничения такого подхода дают о себе знать - прекрасный пример эта ветка форума... Забавно, что даже ваше альтернативное предложение... всего лишь другая ипостась ремесленного подхода... На эту тему рассуждать можно много... Оригинальное сообщение выражало мое мнение о возможности интеграции оберонов в существующую систему преподавания на 1 курсе  вузов. Обобщение делается на основе анализа и модели (которые здесь не приведены) . Параметры этой модели, существенно отличаются от Вашей (если она у Вас есть = в чем я сильно сомневаюсь- слишком поверхностны ваши выводы, а "правильные" утверждения выглядят повторением избитых штампов).
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 04:54:20 pm
Тогда лучше использовать дрвний термин "подпрограмма". Применение этого термина никак не требует разделения на процедуры и функции. Хотя даже в фортране (видимо, из чисто практических соображений) были и subroutine и function.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 05:02:37 pm
Тогда лучше использовать дрвний термин "подпрограмма". Применение этого термина никак не требует разделения на процедуры и функции. Хотя даже в фортране (видимо, из чисто практических соображений) были и subroutine и function.
Лучше - а еще лучше субалгоритм...
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 05:11:31 pm
Поделюсь впечатлениями о первом использовании школьной сборки. Контингент - первокурсники. В первом семестре на Кумире писали типичные алгоритмы. Дошли до циклов, функций и файлов.
Сейчас у них были уже три лабы по С/С++ в среде Дотнет. Кстати, один из них работает в Code::Blocks - студию дома не мог установить по какой-то причине.
Так вот. Задание было - повторить первую лабу в среде ББ на КП. Это вычисление арифметических выражений с использованием стандартных функций.
Начали с распаковки школьной сборки.
Несколько наблюдений.
1. Кто ранее знал паскаль, сразу бросились писать. Не работает, куча ошибок. Пришлось лезть в справку школьной сборки.
2. Кто ранее знал паскаль, предпочли английский вариант. кто не знал - русский (Кумир, видимо, повлиял).
3. Сработали стереотипы паскаля - независимость от регистра. Пришлось все исправлять ручками.
4. Оценили F5, но попытались через F5 и вызовы конкретных функций сотворить... :)
Некоторые практически в буквальном смысле "смотрят в книгу" (пример ЕГЭ), а видят совсем не то, что написано...
5. Сработали стереотипы лабы на С/С++: сначала - приглашение для ввода значений. Потом ввод, потом вычисление, потом - вывод. Интересно было наблюдать, как приглашения выводятся в Лог, и нигде не возникает окна для ввода значений.
Но в общем человека 3-4 из присутствующих 8 вполне разобрались и со вводом выводом и получили результат.
Будем работать дальше. Видимо, придется посвятить пару лекций конкретике КП+ББ. Хотя в справке у Ткачева написано практически все. Если б дома пробовали - не было бы проблем... :)

Думаю сделать следующее за семестр: все наши лабы, написанные для С/С++, переделать на ББ и внести непосредственно в среду.
Использовать буду изначальный BB 1.5 с пакетом русификации.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 05:14:16 pm
Тогда лучше использовать дрвний термин "подпрограмма". Применение этого термина никак не требует разделения на процедуры и функции. Хотя даже в фортране (видимо, из чисто практических соображений) были и subroutine и function.
Лучше - а еще лучше субалгоритм...
Что собственно в Кумире. Там не проги, там - алгоритмы.
Определение программы. Программа - это последовательность команд КОНКРЕТНОГО исполнителя. ИМХО.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 05:27:26 pm
Поделюсь впечатлениями о первом использовании школьной сборки. Контингент - первокурсники. В первом семестре на Кумире писали типичные алгоритмы. Дошли до циклов, функций и файлов.
Сейчас у них были уже три лабы по С/С++ в среде Дотнет. Кстати, один из них работает в Code::Blocks - студию дома не мог установить по какой-то причине.
Так вот. Задание было - повторить первую лабу в среде ББ на КП. Это вычисление арифметических выражений с использованием стандартных функций.
Начали с распаковки школьной сборки.
Несколько наблюдений.
1. Кто ранее знал паскаль, сразу бросились писать. Не работает, куча ошибок. Пришлось лезть в справку школьной сборки.
2. Кто ранее знал паскаль, предпочли английский вариант. кто не знал - русский (Кумир, видимо, повлиял).
3. Сработали стереотипы паскаля - независимость от регистра. Пришлось все исправлять ручками.
4. Оценили F5, но попытались через F5 и вызовы конкретных функций сотворить... :)
Некоторые практически в буквальном смысле "смотрят в книгу" (пример ЕГЭ), а видят совсем не то, что написано...
5. Сработали стереотипы лабы на С/С++: сначала - приглашение для ввода значений. Потом ввод, потом вычисление, потом - вывод. Интересно было наблюдать, как приглашения выводятся в Лог, и нигде не возникает окна для ввода значений.
Но в общем человека 3-4 из присутствующих 8 вполне разобрались и со вводом выводом и получили результат.
Будем работать дальше. Видимо, придется посвятить пару лекций конкретике КП+ББ. Хотя в справке у Ткачева написано практически все. Если б дома пробовали - не было бы проблем... :)

Думаю сделать следующее за семестр: все наши лабы, написанные для С/С++, переделать на ББ и внести непосредственно в среду.
Использовать буду изначальный BB 1.5 с пакетом русификации.
Спасибо, крайне интересно... Что говорят студенты?
В прошлом году я использовал модификацию школьной сборки в конце курса... на изучении  графов - флойд, дейкстра , форд,  на освоение "особенностей" ввода вывода, времени не было -пришлось самому написать.. Сделали те же 3-4 человека (от остальных и не ждали)... скрипя зубами (когда приходилось работать со справкой), недобро посматривая на меня.... но сделали
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 05:39:58 pm
Насчет "недобро посматривали" - да, было. В основном были вздохи по поводу того, что вызовы функций надо писать ТОЧНО, как написано в интерфейсе модуля, да еще модуль спереди указывать. Но тут мы из легко заткнем - в Яве тоже полную квалификацию надо писать.
Самое удивление, но без "недобрых взглядов" возникло от ввода - данные задаются тут же в окне с программой.
Мне еще предстоит выработать требования для представления результата лабы, но один плюс я уже вижу: набор тестовых данных находится тут же, рядом с прогой. И я буду заставлять  прописывать полный тестовый набор. В том числе и для того, чтобы проверить аварийные случаи.

Насчет справки. Народ конкретно еще не привык пользоваться справкой вообще. Мне приходится им постоянно показывать, как пользоваться MSDN. Хотя в ББ справка русская, но навыков пользования не имеют, по ссылкам - не ходят.
Хотят вместо  описания принципов конкретный пример. Чтобы скопипастить и модифицировать. :)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 05:53:11 pm
Сейчас у них были уже три лабы по С/С++ в среде Дотнет. Кстати, один из них работает в Code::Blocks - студию дома не мог
Прошу таки Visual Studio с .net не путать, особенно при студентах. Это РАЗНЫЕ вещи. Программа собранная в Visual C++ .net не использует (если это не был проект C++/CLI) и никакого отношения к нему не имеет.

Это принципиально. Нельзя студентам говорить такое.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 05:55:19 pm
Насчет "недобро посматривали" - да, было. В основном были вздохи по поводу того, что вызовы функций надо писать ТОЧНО, как написано в интерфейсе модуля, да еще модуль спереди указывать. Но тут мы из легко заткнем - в Яве тоже полную квалификацию надо писать.
В яве -- не надо. Можно, но не обязательно. Обязательно только если import не используешь.
Насчет справки. Народ конкретно еще не привык пользоваться справкой вообще. Мне приходится им постоянно показывать, как пользоваться MSDN. Хотя в ББ справка русская, но навыков пользования не имеют, по ссылкам - не ходят.
Хотят вместо  описания принципов конкретный пример. Чтобы скопипастить и модифицировать. :)
MSDN давно есть на русском.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 05:57:20 pm
Насчет "недобро посматривали" - да, было. В основном были вздохи по поводу того, что вызовы функций надо писать ТОЧНО, как написано в интерфейсе модуля, да еще модуль спереди указывать. Но тут мы из легко заткнем - в Яве тоже полную квалификацию надо писать.
Самое удивление, но без "недобрых взглядов" возникло от ввода - данные задаются тут же в окне с программой.
Мне еще предстоит выработать требования для представления результата лабы, но один плюс я уже вижу: набор тестовых данных находится тут же, рядом с прогой. И я буду заставлять  прописывать полный тестовый набор. В том числе и для того, чтобы проверить аварийные случаи.

Насчет справки. Народ конкретно еще не привык пользоваться справкой вообще. Мне приходится им постоянно показывать, как пользоваться MSDN. Хотя в ББ справка русская, но навыков пользования не имеют, по ссылкам - не ходят.
Хотят вместо  описания принципов конкретный пример. Чтобы скопипастить и модифицировать. :)
Пользование справкой (сторонними источниками информации)= один из главнейших навыков (если хочешь быть на современном уровне). Использование Pabc на 60 процентов продиктовано у меня наличием прекрасно структурированной толковой справки....А в ББ - сплошной суровый DataMining - достаточно посмотреть на ролик Akapet'a
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 06:03:12 pm
Уточнение насчет Студии - спасибо за напоминание.
MSDN у нас, естественно есть. Но там не все на русском. Более того, мы сознательно оставили английский вариант.
По тем вопросам, которые первачки смотрят, тексты простые и понятные на английском. И по стандарту новому, английским выпускники должны владеть. Поэтому мы английский вариант и поставили.
Насчет Явы - спасибо. Раньше было обязательно.
Но я им этого говорить не буду... :)
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 06:04:37 pm
Насчет справки. Народ конкретно еще не привык пользоваться справкой вообще. Мне приходится им постоянно показывать, как пользоваться MSDN. Хотя в ББ справка русская, но навыков пользования не имеют, по ссылкам - не ходят.
Хотят вместо  описания принципов конкретный пример. Чтобы скопипастить и модифицировать. :)
Пользование справкой (сторонними источниками информации)= один из главнейших навыков (если хочешь быть на современном уровне). Использование Pabc на 60 процентов продиктовано у меня наличием прекрасно структурированной толковой справки....А в ББ - сплошной суровый DataMining - достаточно посмотреть на ролик Akapet'a
[/quote]
А что такое ролик  Akapet'a?
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 06:14:20 pm
Насчет Явы - спасибо. Раньше было обязательно.
Но я им этого говорить не буду... :)
В яве так было изначально, начиная с Oak'a (см. http://oberon.talk4fun.net/index.php?topic=14.0 ).
Однако похоже у мы говорим о таки разном. То, что сокращает import в яве, того в КП не существует вовсе.

Вообще, если тут с явой сравнивать то может вылезти немаленькая путаница -- путаница в голове на счет модулей, классов и объектов.

В яве обычно мы имеем дело с объектами. Поэтому obj.method(); смотрится вполне нормально. Очень редко там используются статические методы. А КП и Обероне это не так.

Вообще, с этой т.з. С++ лучше -- там отдельный синтаксис для доступа к статическим методам, отдельный синтаксис для доступа к полям объекта, причем различный для случаев когда через указатель и когда по значению. Более явно. Новичок не запутается.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 06:16:59 pm
А что такое ролик  Akapet'a?
http://www.youtube.com/watch?v=Pm1D1DHavZw
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 06:17:31 pm
Насчет справки. Народ конкретно еще не привык пользоваться справкой вообще. Мне приходится им постоянно показывать, как пользоваться MSDN. Хотя в ББ справка русская, но навыков пользования не имеют, по ссылкам - не ходят.
Хотят вместо  описания принципов конкретный пример. Чтобы скопипастить и модифицировать. :)
Пользование справкой (сторонними источниками информации)= один из главнейших навыков (если хочешь быть на современном уровне). Использование Pabc на 60 процентов продиктовано у меня наличием прекрасно структурированной толковой справки....А в ББ - сплошной суровый DataMining - достаточно посмотреть на ролик Akapet'a
А что такое ролик  Akapet'a?
[/quote]
А случайно напоролся на ютюбе- автор по стилю комментариев очень похож на Петра Кушнира, второй "комментатор" с большей вероятностью И. Кузьмицкий -короче, известные  представители ярославской ячейки oberoncore...
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 06:21:12 pm
Собственно вот:
Цитата: Пётр Кушнир
Цитата: Info21
Цитата: QWERTYProgrammer
Цитата: Пётр Кушнир
я вам видео покажу. ))) http://www.youtube.com/watch?v=Pm1D1DHavZw
Интересно! А еще видео про BlackBox есть? Или это первое :wink: ?
Ну и агония. Прям анти-реклама какая-то.
У чела куча подсистем поставлена, а ББ он как-то неуверенно знает.

Что такое может быть ИС ИРО?
По установленным подсистемам можно что-то сказать?
ABF, Controls2, Cpc, Desktop, Grid, ИС ИРО, Projector, Report, Stern, Wizard
Только ясно, что не на "базовой" сборке.
ха ха стоит только сделать все медленно как тут же обвинят в незнании. ну уж если я полный тупица и не особо разбираюсь, то это просто беда. пожалуй пора бросать бб. вердикт моим ничтожным потугам окончателен.
Первоисточник: http://forum.oberoncore.ru/viewtopic.php?p=55900#p55900
Название: Re:Оберон в образовании.
Отправлено: Сергей Прохоренко от Февраль 25, 2011, 06:25:07 pm
Тогда лучше использовать дрвний термин "подпрограмма". Применение этого термина никак не требует разделения на процедуры и функции. Хотя даже в фортране (видимо, из чисто практических соображений) были и subroutine и function.

Если мы хотим, чтобы не было побочных эффектов, то для функции это сделать проще - можно потребовать, чтобы не было OUT-параметров. В процедуре OUT-параметры будут обязательно, иначе значения никак не вернуть. Синтаксис у функций и процедур разный, употребление тоже. Нет смысла экономить на ключевом слове в ущерб наглядности.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 06:25:19 pm
Собственно вот:
Цитата: Пётр Кушнир
Цитата: Info21
Цитата: QWERTYProgrammer
Цитата: Пётр Кушнир
я вам видео покажу. ))) http://www.youtube.com/watch?v=Pm1D1DHavZw
Интересно! А еще видео про BlackBox есть? Или это первое :wink: ?
Ну и агония. Прям анти-реклама какая-то.
У чела куча подсистем поставлена, а ББ он как-то неуверенно знает.

Что такое может быть ИС ИРО?
По установленным подсистемам можно что-то сказать?
ABF, Controls2, Cpc, Desktop, Grid, ИС ИРО, Projector, Report, Stern, Wizard
Только ясно, что не на "базовой" сборке.
ха ха стоит только сделать все медленно как тут же обвинят в незнании. ну уж если я полный тупица и не особо разбираюсь, то это просто беда. пожалуй пора бросать бб. вердикт моим ничтожным потугам окончателен.
Первоисточник: http://forum.oberoncore.ru/viewtopic.php?p=55900#p55900
COOL, гран мерси.... о как задергался info21 LOL!

Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 06:28:10 pm
Народ, что-то вы так раздухарились, аж теги цитирования терять стали с завидной регулярностью :-) В принципе я не против, и припятствовать не хочу и не буду, но всё же за оформление цитат лучше бы следить, а то читать сложновато.

PS. Могу подправить те сообщения, где съехали теги и которые уже редактировать нельзя. Чтобы оно аккуратней смотрелось.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 06:41:20 pm
Если мы хотим, чтобы не было побочных эффектов, то для функции это сделать проще - можно потребовать, чтобы не было OUT-параметров. В процедуре OUT-параметры будут обязательно, иначе значения никак не вернуть. Синтаксис у функций и процедур разный, употребление тоже. Нет смысла экономить на ключевом слове в ущерб наглядности.
1. С какого это бодуна мы хотим, чтобы не было побочных эффектов? Побочный эффект - нормальный инструмент в программировании.
2. Это только для начинающих и при обучении полезно иметь совсем разные обозначения для почти одинаковых сущностей. А чем больше пишешь, тем хочется короче... :) То есть одно слово procedure в КП для обоих видов подпрограмм - как раз из этой оперы... 
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 06:45:50 pm
Если мы хотим, чтобы не было побочных эффектов, то для функции это сделать проще - можно потребовать, чтобы не было OUT-параметров. В процедуре OUT-параметры будут обязательно, иначе значения никак не вернуть. Синтаксис у функций и процедур разный, употребление тоже. Нет смысла экономить на ключевом слове в ущерб наглядности.
1. С какого это бодуна мы хотим, чтобы не было побочных эффектов? Побочный эффект - нормальный инструмент в программировании.
2. Это только для начинающих и при обучении полезно иметь совсем разные обозначения для почти одинаковых сущностей. А чем больше пишешь, тем хочется короче... :) То есть одно слово procedure в КП для обоих видов подпрограмм - как раз из этой оперы...  

Браво, а если вспомнить что они НЕИЗБЕЖНЫ (в больших системах) :D .... то вышеприведенное обсуждение.... как минимум забавно (для меня)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 06:52:23 pm
Только вот побочные эффекты должны быть строго контролируемы.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 25, 2011, 06:57:00 pm
Только вот побочные эффекты должны быть строго контролируемы.
Не... меня смешат попытки решить эту проблему комбинаторным способом, уж лучше гадая на кофейной гуще = хотя второе не так весело!
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 07:05:17 pm
Только вот побочные эффекты должны быть строго контролируемы.
Не... меня смешат попытки решить эту проблему комбинаторным способом, уж лучше гадая на кофейной гуще = хотя второе не так весело!

А есть иные предложения? ;-)

Кстати, да, я могу переформулировать своё то предложение о борьбе с ВНЕЗАПНЫМИ побочными эффектами. В отдельной теме. В принципе, там ничего абсолютно нет революционного. Чистая эволюция. Просто мы все будем делать явно вот и всё :-)
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 07:46:55 pm
Тогда лучше использовать дрвний термин "подпрограмма". Применение этого термина никак не требует разделения на процедуры и функции. Хотя даже в фортране (видимо, из чисто практических соображений) были и subroutine и function.

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

Вот я в упор не понимаю - какое у них разное употребление :) Сегодня функция... пардон, процедура ничего не возвращает (рисует фигуры, как кто-то приводил пример), завтра - она уже возвращает количество отрисованных фигур. И что, теперь она - функция и должна по-другому употребляться и восприниматься?
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 25, 2011, 08:04:15 pm
Вызов функции, возвращающей значение определенного типа, может быть операндом выражения соответствующего типа. Вызов процедуры - нет. В фортране и PL-1 вызовы отличались даже синтаксически. Вызов процедуры - это отдельный оператор CALL.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 08:16:10 pm
Вызов функции, возвращающей значение определенного типа, может быть операндом выражения соответствующего типа. Вызов процедуры - нет.

Конечно, если функция ничего не возвращает, то "ничего" не может быть приведено к "соответствующему типу". Т.е., это общая ошибка несоответствия типа. Зачем различать, тем более синтаксически? Я не ратую за сишные функции. Просто хочу разобраться :) Может я чего не понимаю и можно почерпнуть какую-то полезность из такого (как мне сейчас кажется) искусственного разделения. Пока я вижу только вред.
Название: Re:Оберон в образовании.
Отправлено: Сергей Прохоренко от Февраль 25, 2011, 09:02:43 pm
1. С какого это бодуна мы хотим, чтобы не было побочных эффектов? Побочный эффект - нормальный инструмент в программировании.

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

Для контроля как раз полезны синтаксические отличия функций от процедур (call, return, out-параметры). А Вирт отказался от слова function, мне кажется, из чисто маркетинговых соображений - чтобы еще уменьшить количество ключевых слов и козырять этим. Наглядность кода при этом снизилась.

Я понимаю, что тем, кто съел собаку на C/C++, теперь море по колено, и они такими мелочами, как наглядность, не заморачиваются. Оберон уже на три порядка нагляднее C/C++, чего же, дескать, еще желать? Но у людей, не прошедших эти медные трубы, требования к наглядности (и надежности!) более высокие.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 09:15:41 pm
Я понимаю, что тем, кто съел собаку на C/C++, теперь море по колено, и они такими мелочами, как наглядность, не заморачиваются. Оберон уже на три порядка нагляднее C/C++, чего же, дескать, еще желать? Но у людей, не прошедших эти медные трубы, требования к наглядности (и надежности!) более высокие.
Вот не надо тут смешивать таки.
С++-программисты очень любят наглядность и очень любят страховаться от выстрелов в ногу (чтобы компилятор проверял максимум всего). Посмотрите на тот же буст например. Максимально строгая типизация и т.д. и т.п. И таки С++ во многих аспектах получается сделать наглядней чем Оберон.

А вот Си-программисты эти да. Они любят свободу, не любят строгую типизацию.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 09:25:48 pm
1. С какого это бодуна мы хотим, чтобы не было побочных эффектов? Побочный эффект - нормальный инструмент в программировании.

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

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

Цитата: Сергей Прохоренко
Я понимаю, что тем, кто съел собаку на C/C++, теперь море по колено, и они такими мелочами, как наглядность, не заморачиваются.

Не надо обвинять плюсистов в настолько страшных грехах :) Они все люди и наглядность кода им тоже важна. И именно поэтому я считаю, что оберон еще пилить и пилить ;)

Цитата: Сергей Прохоренко
Оберон уже на три порядка нагляднее C/C++, чего же, дескать, еще желать?

Давайте не будем в этом топике ;) Ограничимся функциями и процедурами (хотя это тоже уже неоригинальный топик).

Цитата: Сергей Прохоренко
Но у людей, не прошедших эти медные трубы, требования к наглядности (и надежности!) более высокие.

Описываемую проблему ("неожиданное закрытие файла") я, будучи на С++, решаю такими самоограничениями:
1. Минимум глобальных переменных. Это значит, что функция не может закрыть файл, если только к ней через аргумент не пришло что-то, что можно использовать для закрытия файла.
2. По возможности аргументы делаются const. Это уменьшает вероятность того, что функция сделает что-то деструктивное даже используя такие аргументы.

Да, мне хотелось бы больше контроля. Поэтому я пытаюсь понять чем же мне может помочь разделение на процедуры и функции. Но пока я не вижу никакой реальной помощи, кроме чисто умозрительного "функция не будет закрывать файл, потому что она функция, а не процедура".
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 09:31:52 pm
vlad, а оцени ка моё предложение по контролю http://oberon.talk4fun.net/index.php?topic=6.msg260#msg260
Ну и далее по тексту.
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 09:42:51 pm
vlad, а оцени ка моё предложение по контролю http://oberon.talk4fun.net/index.php?topic=6.msg260#msg260
Ну и далее по тексту.

Там все хорошо (я поэтому и не прокомментировал), но слишком громоздко и я не могу ничего предложить более легкого. На самом деле непонятнее всего - что делать со сложными структурами в качестве аргументов. Плюсового const явно недостаточно для полного контроля. "Тотальный" const - не знаю, мне кажется не очень практичен...
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 09:45:25 pm
А чем плох тотальный конст? (опять же, можно сделать тотальный конст, но указать исключения из тотальности для данного конкретного случая. хотя... и исключения не нужны -- достаточно дать отдельными параметрами не константными ссылками на те места структуры, которые можно таки менять).
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 09:46:59 pm
Посмотрите на тот же буст например.

Не надо смотреть на буст, если вы не программируете на C++ :) Лучше спросить у тех, кто его использует, какие проблемы он помогает решать.

P.S. И уж тем более не надо смотреть его исходники ;)
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 25, 2011, 09:48:51 pm
А громоздкость.. Нужно просто придумать подходящий синтаксис :-) А это уже дело техники в общем то. Пока это было в стиле Ады :-)
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 25, 2011, 09:52:13 pm
А чем плох тотальный конст? (опять же, можно сделать тотальный конст, но указать исключения из тотальности для данного конкретного случая. хотя... и исключения не нужны -- достаточно дать отдельными параметрами не константными ссылками на те места структуры, которые можно таки менять).

Не знаю. Просто у меня нет четкой картинки как это будет работать и какие из этого буду следствия. Многие языки вообще обходятся без const. И я в последнее время редко возлагаю на const решающую роль в деле контроля над модифицируемостью. Более наглядно получается разделение на уровне интерфейса - вот здесь есть метод write, а у этого только read.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 26, 2011, 04:47:51 am
Вызов функции, возвращающей значение определенного типа, может быть операндом выражения соответствующего типа. Вызов процедуры - нет.

Конечно, если функция ничего не возвращает, то "ничего" не может быть приведено к "соответствующему типу". Т.е., это общая ошибка несоответствия типа. Зачем различать, тем более синтаксически? Я не ратую за сишные функции. Просто хочу разобраться :) Может я чего не понимаю и можно почерпнуть какую-то полезность из такого (как мне сейчас кажется) искусственного разделения. Пока я вижу только вред.
Ну, в командах процессора это действительно одинаково. Но ведь фортранисты для чего-то разделил? Может быть, для читабельности?
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 26, 2011, 04:52:07 am
Цитировать
Конечно, если функция ничего не возвращает, то "ничего" не может быть приведено к "соответствующему типу". Т.е., это общая ошибка несоответствия типа. Зачем различать, тем более синтаксически? Я не ратую за сишные функции. Просто хочу разобраться :) Может я чего не понимаю и можно почерпнуть какую-то полезность из такого (как мне сейчас кажется) искусственного разделения. Пока я вижу только вред.
Ну, в командах процессора это действительно одинаково. Но ведь фортранисты для чего-то разделил? Может быть, для читабельности?

Это было давно и неправда :) Если для читабельности - то в каких случаях?
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 26, 2011, 05:16:07 am
Я думаю, дело еще в том, что фортран создавали математики. А для них функция - это святое...  ;D
Название: Re:Оберон в образовании.
Отправлено: kemiisto от Февраль 26, 2011, 10:39:18 am
По-поводу Fortran. Там есть функции (FUNCTION) и подпрограммы (SUBROUTINE). Общий термин - процедура (PROCEDURE). Дык вот, таки функции имеют возвращаемое значение, процедуры - нет. 

Любую процедуру (как функцию, так и подпрограмму) можно объявить PURE. Контроль на отсутствие побочных эффектов. Принято объявлять чистыми функции, а подпрограммы использовать для изменения состояния (императивный язык всё-таки).

При такой дисциплине наличие ключевого слова CALL в тексте программы крайне полезно. Позволяет однозначно идентифицировать место, где могут лежать грабельки.

Вот так. Но это, конечно, не вся история.

Чистые функции необходимы, например, для использования во всяких там FORALL и DO CONCURENT. Есть ещё концепция поэлементной функции (ELEMENTAL). Это функция, которая определяется для обычного скалярного аргумента, но может быть применена для массива таких аргументов любой размерности. Такие функции читсые по-умолчанию. То есть ELEMENTAL подразумевает PURE. Хотя в новом стандарте можно заиметь и ELEMENTAL IMPURE функцию. Ещё все стандартные функции чистые.

А с параметрами там тоже интересно. Указывается т.н. намерение (INTENT). Оно может быть IN, OUT и INOUT...
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 26, 2011, 11:14:11 am
Побочный эффект - нормальный инструмент в программировании.
Уж, извините за прямоту, но это- чушь!
Истина состоит в том, что в одних случаях  побочный эффект - это нормальный инструмент в программировании, а в других - это "удар под перекладину" (типа, "каги цуки" - кто знает, тот поймёт). Собственно, только ради этого и понадобилось (бы) разделять подпрограммы на процедуры и функции. Заодно порешались бы проблемы с нарушением ортогональности средств в языке.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 26, 2011, 11:22:28 am
Только вот побочные эффекты должны быть строго контролируемы.
Не... меня смешат попытки решить эту проблему комбинаторным способом, уж лучше гадая на кофейной гуще = хотя второе не так весело!
2DIzer
Если бы я был чиновником, то ввёл бы обязательное требование к преподавателям в ВУЗах: проработать ведущим инженером не менее 5 лет. Вот, тогда и повеселился бы.  :D
Но, расслабьтесь - я не чиновник.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 11:40:02 am

Если бы я был чиновником, то ввёл бы обязательное требование к преподавателям в ВУЗах: проработать ведущим инженером не менее 5 лет. Вот, тогда и повеселился бы.  :D
Но, расслабьтесь - я не чиновник.
Каждому свое...  :)
PS А с чего вы взяли что я напрягаюсь ?  :D
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 26, 2011, 11:54:52 am
PS А с чего вы взяли что я напрягаюсь ?  :D

Да, нет. Просто мне показалось, что Вы считаете участников обсуждения "жертвами неправильного подхода в образовании":

Ремесленника ... - когда делается черезмерный упор на специализацию, да еще с самого начала...  ограничения такого подхода дают о себе знать - прекрасный пример эта ветка форума...
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 12:05:49 pm
PS А с чего вы взяли что я напрягаюсь ?  :D

Да, нет. Просто мне показалось, что Вы считаете участников обсуждения "жертвами неправильного подхода в образовании":

Ремесленника ... - когда делается черезмерный упор на специализацию, да еще с самого начала...  ограничения такого подхода дают о себе знать - прекрасный пример эта ветка форума...
Извините , конечно нет, здесь нет неуважения...я СЧИТАЮ что на текущий момент наше государство нуждается в высококачествевнных  УЗКОСПЕЦИАЛИЗИРОВАННЫХ специалистах, в противовес "широкопрофильным".... но у первых есть в силу особенностей образования есть определенные слабости (в частностиЮ слабая адаптивность к изменяющимся условиям )...Что бы полнее понять ту фразу , отрывки из которой вы нарезали - надо просто знать специфику образования в Вузах  сегодня, и хотя бы по диагонали прочитать книгу ссылку на которую дал Илья-    соотнести их между собой. Вообщем Илья в очередной раз в своем амплуа...
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 26, 2011, 12:27:40 pm
мне показалось , что Вы считаете ...
конечно нет, ...
Прям камень с души свалился  :)

Насчёт профиля. Я считаю, что на первых курсах (не далее второго) должен преподаваться широкий профиль. Любой, даже очень узкоспециализированный, специалист должен представлять картину в целом по отрасли: какая в ней проблематика, какие в ней работают специалисты и т. д. Если говорить о технических ВУЗах, то любому специалисту нужна высшая математика, физика и программирование (!!!). По поводу последнего пункта щас меня порвут  ;D  Не все это видят...
Но, начиная с третьего курса требуется погружение в специальность "по-взрослому". Дилетанты с широким кругозором сегодня никому не нужны.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 12:42:16 pm
мне показалось , что Вы считаете ...
конечно нет, ...
Прям камень с души свалился  :)

Насчёт профиля. Я считаю, что на первых курсах (не далее второго) должен преподаваться широкий профиль. Любой, даже очень узкоспециализированный, специалист должен представлять картину в целом по отрасли: какая в ней проблематика, какие в ней работают специалисты и т. д. Если говорить о технических ВУЗах, то любому специалисту нужна высшая математика, физика и программирование (!!!). По поводу последнего пункта щас меня порвут  ;D  Не все это видят...
Но, начиная с третьего курса требуется погружение в специальность "по-взрослому". Дилетанты с широким кругозором сегодня никому не нужны.
Так оно и происходит в Вузах ОБЩЕГО профиля (т.н. классические университеты), но от этого сильно страдает СПЕЦИАЛИЗАЦИЯ,  в специализированных вузах (не обязательно технических).. 1 этап слаб (это относительно), жертвуем кругозором , ради превосходных навыков в специализированной области (предполагаяется , что готовится специалист именно для нужд данной отрасли). По поводу программирования.... сейчас на 1 курсе читается информатика (в той или иной пропорции)- а как наука... или сфера деятельности она за последнии 15 лет сильно раздулась (это только 20 лет назад - обучение ей сводилось в основном к алгоритмизации и программированию)....А насчет порвут...так как же без веселья  ;)
Название: Re:Оберон в образовании.
Отправлено: Сергей Прохоренко от Февраль 26, 2011, 02:24:34 pm
По-поводу Fortran. Там есть функции (FUNCTION) и подпрограммы (SUBROUTINE). Общий термин - процедура (PROCEDURE). Дык вот, таки функции имеют возвращаемое значение, процедуры - нет. 

Любую процедуру (как функцию, так и подпрограмму) можно объявить PURE. Контроль на отсутствие побочных эффектов. Принято объявлять чистыми функции, а подпрограммы использовать для изменения состояния (императивный язык всё-таки).

При такой дисциплине наличие ключевого слова CALL в тексте программы крайне полезно. Позволяет однозначно идентифицировать место, где могут лежать грабельки.

Вот так. Но это, конечно, не вся история.

Чистые функции необходимы, например, для использования во всяких там FORALL и DO CONCURENT. Есть ещё концепция поэлементной функции (ELEMENTAL). Это функция, которая определяется для обычного скалярного аргумента, но может быть применена для массива таких аргументов любой размерности. Такие функции читсые по-умолчанию. То есть ELEMENTAL подразумевает PURE. Хотя в новом стандарте можно заиметь и ELEMENTAL IMPURE функцию. Ещё все стандартные функции чистые.

А с параметрами там тоже интересно. Указывается т.н. намерение (INTENT). Оно может быть IN, OUT и INOUT...

Не язык а мечта! Буду изучать FORTRAN.  :D
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 02:34:16 pm
... В первом семестре на Кумире писали типичные алгоритмы.
Только что поюзал последнюю версию кумира- вполне съедобно.
Не хватает:
Теории - страничек на 5-10.
Справка по идее должна быть более структурированной.

Есть подозрение, что в вузах сильно не приживется - все таки жалко тратить время на роботов, тот же Oberon не намного сложнее... Жаба давит... Как вы решились перейти на кумир (из каких соображений) если не секрет?
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 26, 2011, 03:46:52 pm
Обобщение делается на основе анализа и модели (которые здесь не приведены) . Параметры этой модели, существенно отличаются от Вашей (если она у Вас есть = в чем я сильно сомневаюсь- слишком поверхностны ваши выводы, а "правильные" утверждения выглядят повторением избитых штампов).

У меня есть модель, правда, она действительно сильно отличается от Вашей. Мне нужна система подготовки программистов-конструкторов, способных решать задачи любой сложности по созданию системного ПО (с упором на наиболее актуальные направления - middleware и СУБД). Созданию в коллективе, созданию с нуля, в режиме "технологической независимости". И модель - система подцелей, способы их достижения, у меня, в общем, за 7 лет моих экспериментов выработалась. В этом году я даже пришёл к тому содержанию и форме своих курсов, которые могу уже считать первым завершённым вариантом двухлетнего курса программирования для ИТ-шников, каким он должен быть.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 26, 2011, 04:05:29 pm
Что бы полнее понять ту фразу , отрывки из которой вы нарезали - надо просто знать специфику образования в Вузах  сегодня, и хотя бы по диагонали прочитать книгу ссылку на которую дал Илья-    соотнести их между собой. Вообщем Илья в очередной раз в своем амплуа...

Кругозор нужно давать как можно больший. И общую культуру мышления прививать, но это делается... скорее общей обстановкой в ВУЗе - теми личностями, которые преподают, общением за рамками планового содержания предметов...

А вот когда речь об обучении конкретным знаниям и умениям - то нельзя прыгать по верхам (как минимум первые три года), надо проработать одновариантно (в широком смысле варианта - как научно-технической школы конкретной, так скажем) и максимально глубоко. Если мы хотим научить чему-то по-настоящему, то всё равно начинать не с интересностей и разнообразия, а с самых базовых кирпичиков и умения из них строить решения задач. Если говорить о технических дисциплинах (и программировании, хотя оно пошире, чем просто техническая), то надо начинать с "демистификации техники" - человек должен представлять и уметь собирать всё самостоятельно от самого низу. Одно из качеств инженера - автономность от той техники, на которой он специализируется - он должен быть не при ней и над ней, а иметь возможность вообще обойтись без неё в готовом виде, понимая, как это получить с нуля.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 26, 2011, 04:25:04 pm
Если бы я был чиновником, то ввёл бы обязательное требование к преподавателям в ВУЗах: проработать ведущим инженером не менее 5 лет. Вот, тогда и повеселился бы.  :D
Но, расслабьтесь - я не чиновник.
Я дольше работал...  ;D
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 26, 2011, 04:36:46 pm
... В первом семестре на Кумире писали типичные алгоритмы.
Только что поюзал последнюю версию кумира- вполне съедобно.
Не хватает:
Теории - страничек на 5-10.
Справка по идее должна быть более структурированной.

Есть подозрение, что в вузах сильно не приживется - все таки жалко тратить время на роботов, тот же Oberon не намного сложнее... Жаба давит... Как вы решились перейти на кумир (из каких соображений) если не секрет?
Наш контингент еще до поступления ходил к нам на "курсы повышения квалификации" в ЕГЭ  по информатике. Решали, в основном част С. Выяснилось, что ребятки с очень разным уровнем подготовки. Многие самостоятельно осваивали паскаль ... :) Поэтому порешили: в первом семестре дать первый "подравнивавший" курс по алгоритмизации. И без привязки к конкретной среде и языку. БлэкБох мне продавить не удалось, ибо среда все же профессиональная. Коллектив решил, что будет сложно для новичков. А по Кумиру и книжки Кушниренко есть, и осваивается на счет раз.
В общем - решили, и провели в первом семестре такой обобщенный курс для начинающих по алгоритмизации. Роботами, естественно, не занимались - после  наших "курсов повышения квалификации" это слишком просто. А вот программирование, с ознакомлением с основными понятиями и прививка некоторых навыков - это самое то получилось. Теперь они те же проги пишут уже в Студии на С++ - 9становится понятно, что важны не язык и не среда среда.
И теперь еще и ББ+КП в другом курсе - опять те же программы-лабы...
Посмотрим в конце семестра, что получится.
Но уже сейчас препод по программированию отмечает, что эти - получше прошлогодних. Именно из-за пробного курса. 
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 04:44:24 pm
Обобщение делается на основе анализа и модели (которые здесь не приведены) . Параметры этой модели, существенно отличаются от Вашей (если она у Вас есть = в чем я сильно сомневаюсь- слишком поверхностны ваши выводы, а "правильные" утверждения выглядят повторением избитых штампов).

У меня есть модель, правда, она действительно сильно отличается от Вашей. Мне нужна система подготовки программистов-конструкторов, способных решать задачи любой сложности по созданию системного ПО (с упором на наиболее актуальные направления - middleware и СУБД). Созданию в коллективе, созданию с нуля, в режиме "технологической независимости". И модель - система подцелей, способы их достижения, у меня, в общем, за 7 лет моих экспериментов выработалась. В этом году я даже пришёл к тому содержанию и форме своих курсов, которые могу уже считать первым завершённым вариантом двухлетнего курса программирования для ИТ-шников, каким он должен быть.
Хорошо, задачи понятны.  Ответ Вы действительно можете найти решение для вашей модели. Но вероятнее всего у вас будут проблемы в ее реализации среди своих, просто потому, что в ней нет модели исполнителя (типичного преподавателя- который может просто не понять ваших запросов (конечно если ваша модель подразумевает консолидированную подготовку в несколько семестров), могут быть проблемы с формальной программой обучения, наконец, у вас нет оценки рабочего материала -студентов).  Проблемы ТОЧНО возникнут при маштабировании вашего решения на другие коллективы вас просто не поймут - у каждого свои проблемы и они не менее важные чем ваши. Наша программа - 1 год информатика с основами программирования, 2 год углубленные курсы, требующие дополнительных моделей (ассемблер, системное программирование....). Специализация начинается с 3 го курса - но она не привязана к отраслевым направлениям. Еще пример - попытка Info21 продвинуть ББ в сферу образования...Pedsovet.org - целевая аудитория просто не воспринимает его- т.е.  модель преподавателя которую он заложил  в продукт оказалась ошибочной...
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 05:01:36 pm
Наш контингент еще до поступления ходил к нам на "курсы повышения квалификации" в ЕГЭ  по информатике. Решали, в основном част С. Выяснилось, что ребятки с очень разным уровнем подготовки. Многие самостоятельно осваивали паскаль ... :)
Поэтому порешили: в первом семестре дать первый "подравнивавший" курс по алгоритмизации. И без привязки к конкретной среде и языку. БлэкБох мне продавить не удалось, ибо среда все же профессиональная. Коллектив решил, что будет сложно для новичков. А по Кумиру и книжки Кушниренко есть, и осваивается на счет раз.
В общем - решили, и провели в первом семестре такой обобщенный курс для начинающих по алгоритмизации. Роботами, естественно, не занимались - после  наших "курсов повышения квалификации" это слишком просто. А вот программирование, с ознакомлением с основными понятиями и прививка некоторых навыков - это самое то получилось. Теперь они те же проги пишут уже в Студии на С++ - 9становится понятно, что важны не язык и не среда среда.
И теперь еще и ББ+КП в другом курсе - опять те же программы-лабы...
Посмотрим в конце семестра, что получится.
Но уже сейчас препод по программированию отмечает, что эти - получше прошлогодних. Именно из-за пробного курса. 
Свезло  по крайней мере хоть поступили люди которые ХОТЯТ научится программировать и готовы РАБОТАТЬ для этого. У нас в текущем наборе люди особо не намерены вкладывать усилия в навыки программирования  занимаются порядка 20%.
А что (важно) , если не секрет  :) ?
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 05:07:36 pm
2 Илья
... БлэкБох мне продавить не удалось, ибо среда все же профессиональная. Коллектив решил, что будет сложно для новичков....
Вот еще одно подтверждение моих слов...
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 05:20:09 pm

...  среда все же профессиональная. Коллектив решил, что будет сложно для новичков....
В чем эта сложность  определилась ? Среду PABC.Net они считают сложной?
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 26, 2011, 07:45:52 pm
Еще пример - попытка Info21 продвинуть ББ в сферу образования...Pedsovet.org - целевая аудитория просто не воспринимает его- т.е.  модель преподавателя которую он заложил  в продукт оказалась ошибочной...
Не... Модель, заложенная ИНФО, не ошибочная. Она отражает конкретный опыт самого Ткачева. А он же привык работать с творческими преподами, которые еще и умненьких ребятишек учат. Такие преподы сами будут среду развивать, если им дать стартовый вариант. Школьная сборка - это такой стартовый вариант. Который еще конкретикой наполнять. Как - написал Федор Васильевич непосредственно в среде. Лично меня, как препода это более чем устраивает - контент я туда всажу собственный.

А огромному большинству ж надо просто дать готовое и чтобы работало. С контентом.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 26, 2011, 07:49:16 pm

...  среда все же профессиональная. Коллектив решил, что будет сложно для новичков....
В чем эта сложность  определилась ? Среду PABC.Net они считают сложной?
Собственно, не столько для студентов, сколько для препода-лектора. Осваивать Кумир ей показалось гораздо легче, чем ББ+КП. Чел не программист по образованию, но первачков учит хорошо - сказывается школьный опыт. Именно правильно "строит" и они потом вполне вменяемые в следующих курсах.
Вот она, собственно и забоялась...
Но я добьюсь - вот контент внесу, адаптирую все ее лабы - и будет использовать. Через год.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 08:13:17 pm
Не... Модель, заложенная ИНФО, не ошибочная. Она отражает конкретный опыт самого Ткачева. А он же привык работать с творческими преподами, которые еще и умненьких ребятишек учат. Такие преподы сами будут среду развивать, если им дать стартовый вариант. Школьная сборка - это такой стартовый вариант. Который еще конкретикой наполнять. Как - написал Федор Васильевич непосредственно в среде. Лично меня, как препода это более чем устраивает - контент я туда всажу собственный.

А огромному большинству ж надо просто дать готовое и чтобы работало. С контентом.

  :)  Так там и собрались творческие люди - настолько творческие (насколько это РЕАЛЬНО возможно в наше время). У каждого из них есть ученики которыми они гордятся... И последние довольно активны...
А что касается тех с которыми он привык работать...Не вижу этих талантливых и ОБУЧЕННЫХ ребят... Возможно они настолько хороши, что сразу начинают аутсорсить на Мелкософт, или достаточно умны, что бы не поступать  в Вуз на программиста... Ну хорошо, где же тогда обитают эти таланты? - может быть на сайте oberoncore - в разделе для новичков? Что-то не видел я их там... как не искал - может со зрением у меня что-то не то?
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 08:21:22 pm
Собственно, не столько для студентов, сколько для препода-лектора. Осваивать Кумир ей показалось гораздо легче, чем ББ+КП.
А вот это меня и не удивляет, 90 процентам других преподов покажется также (ИМХО). Я точно знаю, что у нас будут всерьез рассматривать вопрос введения ББ, только в том случае если очень четко будет видна выгода использования ББ по сравнению с другими решениями. Либо его (решение) как вы ОЧЕНЬ точно выразились нужно ПРОДАВЛИВАТЬ.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 26, 2011, 08:36:18 pm
По моему мнению, Кумир сейчас хорош тем что:
1) Работает абсолютно везде (винда, мак, линукс). Последнее -- актуально и важно.
2) Не акцентирует внимание на синтаксисе. Вообще самое страшное что может случиться с (будующим)программистом -- пристрастие к какому-либо типу синтаксиса. Язык по синтаксису оценивать вообще нельзя. Синтаксис вторичен. Полно народу видел, которые вроде бы и не глупые люди, но воспринимают ровно один какой-то синтаксис, а все языки не с таким синтаксисом считают неполноценными/ущербными. Чаще всего народ залипает либо на паскалеподобном синтаксисе, либо си-подобном.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 08:48:50 pm
По моему мнению, Кумир сейчас хорош тем что:
1) Работает абсолютно везде (винда, мак, линукс). Последнее -- актуально и важно.
2) Не акцентирует внимание на синтаксисе. Вообще самое страшное что может случиться с (будующим)программистом -- пристрастие к какому-либо типу синтаксиса. Язык по синтаксису оценивать вообще нельзя. Синтаксис вторичен. Полно народу видел, которые вроде бы и не глупые люди, но воспринимают ровно один какой-то синтаксис, а все языки не с таким синтаксисом считают неполноценными/ущербными. Чаще всего народ залипает либо на паскалеподобном синтаксисе, либо си-подобном.
1. По первому абосолютно согласен
2. По второму, причина чуть более глубокая. Он,  Кумир концентрирует пользователя на создании алгоритма - а это вообще-то метод решения практически любой задачи (необязательно программисткой), более того некоторая "искусственность" синтаксиса подчеркивает его вторичность. Проблема в том что его "есть" нужно очень грамотно - нужна четкая методика, без нее эффект будет не тот (ИМХО). А внедрение его в программу вуза (общего плана)- ювелирная работа.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 26, 2011, 09:25:58 pm
Еще пример - попытка Info21 продвинуть ББ в сферу образования...Pedsovet.org - целевая аудитория просто не воспринимает его- т.е.  модель преподавателя которую он заложил  в продукт оказалась ошибочной...

Проект Ткачёва идёт от самых общих, социальных соображений. Коррекции невыносимо хреновой ситуации с ИТ и ИТшниками в плане последствий всяких их... продуктов для общества.

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

Общую же точку зрения на ориентиры для образования Ткачёв блестяще изложил в своих последних статьях:
"Математика+Информатика+Языки" - http://www.inr.ac.ru/~info21/MIL/welcome.html
и "О реформе системы образования 1871 года" - http://www.inr.ac.ru/~info21/MIL/1871.html
Так точно и по существу никто ещё не сформулировал.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 09:34:58 pm

Проект Ткачёва идёт от самых общих, социальных соображений. Коррекции невыносимо хреновой ситуации с ИТ и ИТшниками в плане последствий всяких их... продуктов для общества.

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

Общую же точку зрения на ориентиры для образования Ткачёв блестяще изложил в своих последних статьях:
"Математика+Информатика+Языки" - http://www.inr.ac.ru/~info21/MIL/welcome.html
и "О реформе системы образования 1871 года" - http://www.inr.ac.ru/~info21/MIL/1871.html
Так точно и по существу никто ещё не сформулировал.

Какие  ИТ - обычные учителя, которые учат обычных детей (в том числе и тех кто идет в вузы). Вру не совсем обычные - те которые что-то хотят и работают по мере своих сил и возможностей, несмотря на нищенскую зарплату...И других НЕ БУДЕТ...
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 26, 2011, 09:49:32 pm
Если говорить о большей части учителей, то они просто не намерены и не могут преподавать программирование в рамках школьной информатики. Пытаться для них создавать методику, которая позволила бы (за счёт профанации или как ещё..) их "увлечь" и создать иллюзию, что они это делают - смысл? Не вижу. Понятное дело, что они не виноваты часто в том, что не могут, но и ориентироваться на них - какой смысл? Что ориентируйся, что не ориентируйся - преподавания программирования в их школах не будет.

А меньшая часть учителей (ну, оценим, в треть, например) - хотят и ищут. И вот тут наступает "момент истины": они должны выбрать, а для чего они хотят учить? Либо для того, чтобы давать начальный импульс школьникам в сторону текущего ИТ-бардака, либо... для чего-то другого. Информатика-21 ориентирована на эту треть учителей и борется за то, чтобы они выбирали и строили обучение программированию не для пополнения текущего бардака новыми энтузиастами, а наоборот, для закладывания ясности в головы с первых шагов в мире программирования...
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 09:58:32 pm
Если говорить о большей части учителей, то они просто не намерены и не могут преподавать программирование в рамках школьной информатики. Пытаться для них создавать методику, которая позволила бы (за счёт профанации или как ещё..) их "увлечь" и создать иллюзию, что они это делают - смысл? Не вижу. Понятное дело, что они не виноваты часто в том, что не могут, но и ориентироваться на них - какой смысл? Что ориентируйся, что не ориентируйся - преподавания программирования в их школах не будет.

А меньшая часть учителей (ну, оценим, в треть, например) - хотят и ищут. И вот тут наступает "момент истины": они должны выбрать, а для чего они хотят учить? Либо для того, чтобы давать начальный импульс школьникам в сторону текущего ИТ-бардака, либо... для чего-то другого. Информатика-21 ориентирована на эту треть учителей и борется за то, чтобы они выбирали и строили обучение программированию не для пополнения текущего бардака новыми энтузиастами, а наоборот, для закладывания ясности в головы с первых шагов в мире программирования...
Делается все в конечном итоге не ради учителей (не парьте мозги людям)... На счет второго, да пусть даже так - только я даже и 10 части не вижу поддерживающих инфо21 от общего числа на этом форуме. На х. кому нужны эти декларативные бумажки- (конечно если только инфо21 не решил организовать политическую партию). Я еще помню любителей давать ориентиры... до последнего давали. Кстати, не хитрое дело.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 26, 2011, 10:05:01 pm
Делается все в конечном итоге не ради учителей (не парьте мозги людям)...

Разумеется, не ради учителей. А ради коррекции ситуации в целом.
Учитель и преподаватель должен работать на "вправление мозгов", а не на закрепление окружающей ситуации.
Разумеется, проще и комфортнее работать на закрепление.
Поэтому когда пытаются заставить работать против - это не может восприниматься как благо для самих учителей.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 26, 2011, 10:06:03 pm
На х. кому нужны эти декларативные бумажки
Таки попрошу без мата, путь даже сокращенного и завуалированного.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 26, 2011, 10:11:33 pm
На х. кому нужны эти декларативные бумажки- (конечно если только инфо21 не решил организовать политическую партию). Я еще помню любителей давать ориентиры... до последнего давали. Кстати, не хитрое дело.

Чего в них декларативного?
Можно брать и делать. Хоть на основе конкретного примера (реформа 1871 г.)
В математике - вернуть Киселёва. В языках - сконцентрироваться в первую очередь на точно-языковой работе (переводы и т.п.).
В программировании - взять конкретную систему программирования, как 1) начальный образец и 2) "прививку" от заражения любовью к всепроникающему компьютерному мусору.

Просто брать и делать. Против течения. Против желания/нежелания. Как у Вас: "студентам не понравилось" и т.п. Не понравилось? Хочется самоудовлетворяться, порождая для общества новый мусор? Или, в случае непрофессионалов - потребляя этот мусор? Иди учись сам где хочешь... Вот такой должен быть короткий разговор.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 10:23:28 pm
На х. кому нужны эти декларативные бумажки- (конечно если только инфо21 не решил организовать политическую партию). Я еще помню любителей давать ориентиры... до последнего давали. Кстати, не хитрое дело.

Чего в них декларативного?
Можно брать и делать. Хоть на основе конкретного примера (реформа 1871 г.)
В математике - вернуть Киселёва. В языках - сконцентрироваться в первую очередь на точно-языковой работе (переводы и т.п.).
В программировании - взять конкретную систему программирования, как 1) начальный образец и 2) "прививку" от заражения любовью к всепроникающему компьютерному мусору.

Просто брать и делать. Против течения. Против желания/нежелания. Как у Вас: "студентам не понравилось" и т.п. Не понравилось? Хочется самоудовлетворяться, порождая для общества новый мусор? Или, в случае непрофессионалов - потребляя этот мусор? Иди учись сам где хочешь... Вот такой должен быть короткий разговор.
Точно, точно...как раз подтвердили худшие опасения...
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 26, 2011, 10:25:36 pm
На х. кому нужны эти декларативные бумажки
Таки попрошу без мата, путь даже сокращенного и завуалированного.
Вопрос - слово "хрен" считается матом? а  выражение худой КОНЕЦ?
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 26, 2011, 10:34:05 pm
Ну, во-первых всем известно заменителем какого существительного в подобном контексте/обороте является "хрен", как, скажем и "блин".

Во-вторых, стыдливое сокращение до одной буквы оставляет достаточно однозначной неоднозначности для подобных трактовок.

В общем, если употребление оных блинов с хренами волнует и беспокоит общественность, заведите тему, обсудим :-)
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 26, 2011, 11:05:04 pm
Точно, точно...как раз подтвердили худшие опасения...

И в чём же заключаются "худшие опасения"?

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

Только не надо меня записывать в "суровые авторитаристы" - на самом деле я гораздо более гармонично отношусь и к авторитарной составляющей образования, и к свободной. Просто для исправления сегодняшних проблем приходится больше концентрироваться на первой.

=====
Мелкий пример. Вот только сегодня мать пришла с заседания кафедры (на философском факультете) и жаловалась, что замучили какой-то хренью - "внедрять развивающие мультимедийные методы" и т.п. Презентации, доски интерактивные (вообще глючные бесполезные вещи, насмотрелся на несколько моделей). Это - прогресс? Такое "раскрепощение" образования - это прогресс? Да для любого человека, основательно образованного, очевидно, что вся эта болтовня о "гуманизации, вариативности, мультимедийности" сводится к тому, чтобы вообще ничему нормально не учить, а предоставить обучающимся свободу получать положительные эмоции от иллюзии, что они, типа, учатся и что им так легко...
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 12:38:47 am
У меня есть модель, правда, она действительно сильно отличается от Вашей. Мне нужна система подготовки программистов-конструкторов, способных решать задачи любой сложности по созданию системного ПО (с упором на наиболее актуальные направления - middleware и СУБД). Созданию в коллективе, созданию с нуля, в режиме "технологической независимости".
А вот отсюда по подробней плиз. Насколько технологическая независимость должна быть независима и зачем ставится такое условие и такая задача?
Название: Re:Оберон в образовании.
Отправлено: vlad от Февраль 27, 2011, 02:57:05 am
2) Не акцентирует внимание на синтаксисе. Вообще самое страшное что может случиться с (будующим)программистом -- пристрастие к какому-либо типу синтаксиса. Язык по синтаксису оценивать вообще нельзя. Синтаксис вторичен. Полно народу видел, которые вроде бы и не глупые люди, но воспринимают ровно один какой-то синтаксис, а все языки не с таким синтаксисом считают неполноценными/ущербными.

Угу, Вирт - как раз из таких людей ;)
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 27, 2011, 06:01:43 am
Просто брать и делать. Против течения. Против желания/нежелания. Как у Вас: "студентам не понравилось" и т.п. Не понравилось? Хочется самоудовлетворяться, порождая для общества новый мусор? Или, в случае непрофессионалов - потребляя этот мусор? Иди учись сам где хочешь... Вот такой должен быть короткий разговор.
Вот с этим согласен. Обучить - это внедрить в мозги и руки определенные умения и навыки. В психологии это называется выработать "замещающее поведение"; выработать определенные условные рефлексы вместо существующих.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 27, 2011, 08:31:37 am

И в чём же заключаются "худшие опасения"?

В двух словах и емко - Simple for the simples
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 27, 2011, 08:43:42 am


Угу, Вирт - как раз из таких людей ;)
Клевета.. Гикам плевать на это.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 09:11:32 am
Угу, Вирт - как раз из таких людей ;)
Клевета.. Гикам плевать на это.
Ну, Вирт при критике иных языков программирования очень-очень часто фиксируется именно на синтаксисе, в частности на операторе присваивания :-)
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 27, 2011, 09:16:56 am
Угу, Вирт - как раз из таких людей ;)
Клевета.. Гикам плевать на это.
Ну, Вирт при критике иных языков программирования очень-очень часто фиксируется именно на синтаксисе, в частности на операторе присваивания :-)
А я говорю, про то что ему плевать на программистов (и людей вообще) -- они просто играют вторичную роль (если играют) в его схемах...Наглядно проявляется это в действиях его последователей - культистов
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 09:38:22 am
"Думать о людях", по-Вашему, это потакать случайным капризам, привычкам, создавать комфортные условия для порождения "всякой хрени"? Учи, учитель, ученика таким красивым и замечательным Скрэтчам, ВизуалСтудиям и всему, что так популярно... Пусть этот ученик вырастает и думает, что смысл научно-технического прогресса - дальше порождать "всё больше и больше таких красивых штучек". Пусть потом он приходит в институт, там его продолжают точно так же "убаюкивать", и потом из него вырастает программист, самодовольно и упоённо генерирующий кучу бестолковых программ в год, потом ещё столько же усовершенствований для первых программ, чтобы решить те проблемы, которые они породили... Зато его круг будет упиваться и дальше своим остроумием и изощрённостью мыслей... Не найдя за всю свою проф. деятельность ни одного по-настоящему качественного, простого решения для по-настоящему существенной задачи.
Всё гуманно, свободно, человеколюбиво... креативно :)
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 27, 2011, 09:38:54 am
2) Не акцентирует внимание на синтаксисе. Вообще самое страшное что может случиться с (будующим)программистом -- пристрастие к какому-либо типу синтаксиса. Язык по синтаксису оценивать вообще нельзя. Синтаксис вторичен. Полно народу видел, которые вроде бы и не глупые люди, но воспринимают ровно один какой-то синтаксис, а все языки не с таким синтаксисом считают неполноценными/ущербными. Чаще всего народ залипает либо на паскалеподобном синтаксисе, либо си-подобном.
Ну не знаю, не знаю...

Имхо, синтаксис всё же имеет значение. В конце концов, на языке с красивым лаконичным синтаксисом просто приятнее работать.

И опять же, напомню наблюдения Криса Окасаки (гуру ФП) -- при обучении программированию значимые отступы (без этих операторных скобок типа end if) очень помогают студентам не путаться в этих end и }...
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 09:42:56 am
Возвращаясь к теме курса Кушниренко, обозванного "ремесленничеством".
А какое содержание должно быть вместо этого "ремесленничества", по-Вашему?

Вы называете ремесленничеством курс, в котором заложено базовое понимание и базовые компетенции, без которых программиста просто нет. Что же Вы предлагаете вместо этого?

Или Вы считаете, что обучение конкретно и качественно уметь делать некоторое дело (программировать в данном случае) - и есть "ремесленничество", а "высокое образование" должно учить только прыгать своей мыслью по верхам, не снисходя до того, чтобы конкретно что-то уметь делать по-настоящему? :)
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 27, 2011, 09:44:29 am
"Думать о людях", по-Вашему, это потакать случайным капризам, привычкам, создавать комфортные условия для порождения "всякой хрени"? Учи, учитель, ученика таким красивым и замечательным Скрэтчам, ВизуалСтудиям и всему, что так популярно... Пусть этот ученик вырастает и думает, что смысл научно-технического прогресса - дальше порождать "всё больше и больше таких красивых штучек". Пусть потом он приходит в институт, там его продолжают точно так же "убаюкивать", и потом из него вырастает программист, самодовольно и упоённо генерирующий кучу бестолковых программ в год, потом ещё столько же усовершенствований для первых программ, чтобы решить те проблемы, которые они породили... Зато его круг будет упиваться и дальше своим остроумием и изощрённостью мыслей... Не найдя за всю свою проф. деятельность ни одного по-настоящему качественного, простого решения для по-настоящему существенной задачи.
Всё гуманно, свободно, человеколюбиво... креативно :)
Вот еще одна иллюстрация к правде... Simple for the SIMPLES
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 09:49:05 am
Ну не знаю, не знаю...

Имхо, синтаксис всё же имеет значение. В конце концов, на языке с красивым лаконичным синтаксисом просто приятнее работать.

И опять же, напомню наблюдения Криса Окасаки (гуру ФП) -- при обучении программированию значимые отступы (без этих операторных скобок типа end if) очень помогают студентам не путаться в этих end и }...
Синтаксис имеет значение, но он таки вторичен. Первична семантика.
Абсолютно все равно как обозначать присваивание: =, <-, :=, set или как-то еще. Как договоримся так и будет. Значимые отступы -- это просто удобняшка. Я не предлагаю от этого отказываться, я просто предлагаю на этом не фиксироваться. Ну нельзя судить по языку акцентируя своё внимание на его синтаксисе.

Кстати, о синтаксисе, сижу вот на маке, и начинаю не понимать, почему бы в современных языках не использовать для обзначение неравенства значок ≠, для меньше равно значок ≤ и т.д. ибо набираются они ровно так же, как и всякие разные обычные < – то же нажатие двух кнопок. А для отрицания таки знак отрицания, ¬.

PS. Да, я знаю что в хаскеле это можно использовать.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 09:57:35 am
Синтаксис имеет значение, но он таки вторичен. Первична семантика.
Абсолютно все равно как обозначать присваивание: =, <-, :=, set или как-то еще. Как договоримся так и будет. Значимые отступы

Понимаете, это говорит не языке, но это говорит об авторе.
Если автор наплевательски относится к дисциплине, к ошибкоопасности синтаксиса, "лихачит" или "эстетствует", вместо того, чтобы аккуратно и скромно спроектировать? О чём это может говорить? Например, о недостаточной зрелости (быть может, не профессиональной, а даже психологически-мировоззренческой иногда)?
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:01:03 am
Вот еще одна иллюстрация к правде... Simple for the SIMPLES

Чтобы приходить к простоте и понимать простоту, обществу ещё расти и расти.
Но без "озарений просты" не бывает реальных прорывов в научно-техническом прогрессе, как бы не было обидно гордым "порождателям мусора".
А правду, можно подумать, кто-то от Вас скрывал.
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 27, 2011, 10:02:37 am
Кстати, о синтаксисе, сижу вот на маке, и начинаю не понимать, почему бы в современных языках не использовать для обзначение неравенства значок ≠, для меньше равно значок ≤ и т.д. ибо набираются они ровно так же, как и всякие разные обычные < – то же нажатие двух кнопок. А для отрицания таки знак отрицания, ¬.
Может потому что они не входят в переносимый набор символов в стандарте POSIX?
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 10:02:55 am
Или просто пытается создать хоть как-то обратно совместимый с уже существующими языками язык. В т.ч. совместимый по внешнему виду синтаксиса. Why not?

В любом случае синтаксис вторичен. Выбирать язык по синтаксису, всё равно, что выбирать мобильный телефон, или там автомобиль по цвету, игнорируя всё остальное.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 27, 2011, 10:04:54 am
Возвращаясь к теме курса Кушниренко, обозванного "ремесленничеством".
А какое содержание должно быть вместо этого "ремесленничества", по-Вашему?


Вы меня спросили о конкретной хорошей книге (написанной в реалиях середины 80 для  элитарного вуза ( с тогода еще работающей системой фильтрации студентов)) -что будет если переносить ее в реалии текущего дня, да еще на начальный этап обучения.. Я ответил..
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 10:05:04 am
Кстати, о синтаксисе, сижу вот на маке, и начинаю не понимать, почему бы в современных языках не использовать для обзначение неравенства значок ≠, для меньше равно значок ≤ и т.д. ибо набираются они ровно так же, как и всякие разные обычные < – то же нажатие двух кнопок. А для отрицания таки знак отрицания, ¬.
Может потому что они не входят в переносимый набор символов в стандарте POSIX?
UTF-8 давно стандарт и поддерживается нормально везде (быть может кроме разве что винды, у нее какой-то свой, допотопный, юникод).
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:06:57 am
Не найдя за всю свою проф. деятельность ни одного по-настоящему качественного, простого решения для по-настоящему существенной задачи.
Можно и пример существенной и совершенно не решаемой ИТ-шниками по-нормальному задачи:
- организация персонального пространства работы с информацией для пользователя.
Всё, что наворачивают программёры, делается совершенно без понимания специфики умственной работы людей и того, как её надо поддерживать софтом.
Есть единичные хорошие примеры, типа Micrologic InfoSelect http://www.miclog.com/software/.
И вот тут в этих примерах всё упирается в реализацию на неадекватных инструментах - софт, который может заиграть в полную силу только будучи расширяемым и программируемым, оказывается монолитным и статичным.
И лучше ББ для программирования таких задач точно ничего не видно...
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:09:00 am
Вы меня спросили о конкретной хорошей книге (написанной в реалиях середины 80 для  элитарного вуза ( с тогода еще работающей системой фильтрации студентов)) -что будет если переносить ее в реалии текущего дня, да еще на начальный этап обучения.. Я ответил..

Тогда я полностью с Вами согласен. Адаптировать курсы под эти реалии необходимо.
Эти реалии даже играют положительную какую-то роль для методики обучения. Приходится строить курсы так последовательно и поэтапно, в то время как раньше можно было махать на многое рукой - "не дураки, сами разберутся".
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 10:12:40 am
О простоте… Ну вот взять «Построение компиляторов» – книжка конечно замечательная для тех кто начинает разбираться в синтаксическом анализе и компиляторах вообще, но есть одно но – эта книжка, по сути описание построения эдакого слегка навороченного компиляторного Hello World'a. Ей ни в коем случае нельзя ограничиваться (если хочется реально быть не профаном в области компиляторов), иначем может сложиться ложное впечатление, что всё просто, а это не так. В результате, когда встанет реальная задача даже не компиляции, а просто парсинга языка с грамматикой чуть посложнее (а это почти любой язык, не обязательно программирования), человек зайдет в тупик.

Но как введение в компиляторы, книжка конечно замечательная.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:15:28 am
(Я начинал с Ахо, Ульмана - "драконьей книги" - и с Ульмана, Хопкрофта "Введение в теорию автоматов, языков и вычислений").

Речь-то не о профанации, а о простоте абстрагирующей, которая выделяет и фокусируется на самом существенном. А детали не отбрасываются, они просто вытесняются ниже, на специализированные уровни или вообще в "справочный уровень".

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

Вопрос выбора: тратить ли умственные силы на освоение и борьбу со сложностью, или тратить их на придумывание способа в очередной раз сложности избежать? Обычно затраты бывают сопоставимы. Но вот в будущем на сложное решение будут "тикать проценты", на простое - нет.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 10:18:09 am
Можно и пример существенной и совершенно не решаемой ИТ-шниками по-нормальному задачи:
- организация персонального пространства работы с информацией для пользователя.
Всё, что наворачивают программёры, делается совершенно без понимания специфики умственной работы людей и того, как её надо поддерживать софтом.
А ещё программисты, очень плохо рисуют, моделируют одежду, вышивают крестиком и совсем безобразно кладут асфальт.

Программист НЕ ДОЛЖЕН планировать взаимодействие человека и машины. Также эту задачу ни в коем случае нельзя поручать дизайнерам. К сожалению это понимают очень и очень не многие. В большенстве контор это делают или программисты, или дизайнеры (сложно сказать в каком из случаев результат ужасней).
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:22:24 am
Шикарный пример из области компиляции: для нормального модульного языка не нужна глобальная таблица имён, в таблицах имён не бывает много элементов. Поэтому применяется простой связный (максимум самоупорядочивающийся) список.
Все наработанные "потом и кровью" способы организации символьных таблиц (хоть на деревьях, хоть на хэшах), про которые столь много пишется в классических томах по компиляции, стали просто не нужны в задаче компиляции современного языка.
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:26:57 am
А ещё программисты, очень плохо рисуют, моделируют одежду, вышивают крестиком и совсем безобразно кладут асфальт.

Программист НЕ ДОЛЖЕН планировать взаимодействие человека и машины.
Вопрос тонкий, да.
Но всё же: программист - очень общая сфера деятельности. Примерно сопоставимая с понятием "инженер-конструктор". Подмножество инженеров-конструкторов, которые конструируют не материальные, а программные системы.

Так вот. Мы же не считаем, что инженер-конструктор должен быть просто "сферическим конём в вакууме". Кораблестроитель всё знает о кораблях, авиаконструктор - о самолётах. Они ЗНАЮТ, как сделать хороший корабль, они анализируют потребности, а не ждут точной постановки задачи от моряков или лётчиков.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 10:27:15 am
А к простым методам, к простым знаниям не должно быть презрения - то, что простое, наиболее широко применимое. И обычно нужна большая сила ума, чтобы найти возможность применить простое там, где хочется сначала сложное.
"Делить диф. уравнения на линейные и не линейные, всё равно что делить весь мир на бананы и не бананы".
Ты пробовал на Coco/R сгенерировать парсер для языка сложнее Оберона например? Впрочем, и с реальным Обероном (не тем который в oberon report'e, а тем который реально используется) там возникают проблемы. Приходится прибегать к хакам.

Теперь внимание вопрос – что лучше, использовать решение на Coco/R, обвешанное как новогодняя ёлка хаками, или же использовать решение на каком-нибудь Parsec'e без хаков?
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Февраль 27, 2011, 10:33:28 am
Например, о недостаточной зрелости (быть может, не профессиональной, а даже психологически-мировоззренческой иногда)?
Ох, ну давайте не будем впутывать сюда богословие-мировозрение. От этого только вред.
Конкретно в Вашем случае вред от этого в том, что Вы стали неправильно относиться к термину "монада" -- видимо, монадология Лейбница Вам мерещится...
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:44:18 am
Ох, ну давайте не будем впутывать сюда богословие-мировозрение. От этого только вред.

Мировоззрение само собой впутывается, когда идёт речь об ответственности профессионала за свою деятельность. Что ж Вы хотите.
Понятно, что удобно и выгодно наслаждаться своей "креативностью", не думая об окружающих и о завтрашнем дне.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 10:45:03 am
А ещё программисты, очень плохо рисуют, моделируют одежду, вышивают крестиком и совсем безобразно кладут асфальт.

Программист НЕ ДОЛЖЕН планировать взаимодействие человека и машины.
Вопрос тонкий, да.
Но всё же: программист - очень общая сфера деятельности. Примерно сопоставимая с понятием "инженер-конструктор". Подмножество инженеров-конструкторов, которые конструируют не материальные, а программные системы.

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

C ПО в точности то же самое. Только вот в софт-индустрии пока не до конца сложились традиции и специализация/разделение ролей при построении оного софтверного продукта. Да даже классификация софт-продуктов ещё не устоялась, до сих пор новые типы появляются. (наврятли команда построившая хороший сухогруз быстро и качественно сможет построить военный истрибитель, а от программистов зачастую требуют именно этого, отсюда и беды)
Название: Re:Оберон в образовании.
Отправлено: Илья Ермаков от Февраль 27, 2011, 10:51:38 am
Ты пробовал на Coco/R сгенерировать парсер для языка сложнее Оберона например? Впрочем, и с реальным Обероном (не тем который в oberon report'e, а тем который реально используется) там возникают проблемы. Приходится прибегать к хакам.

Теперь внимание вопрос – что лучше, использовать решение на Coco/R, обвешанное как новогодняя ёлка хаками, или же использовать решение на каком-нибудь Parsec'e без хаков?

Нет, я руками писал обычно. И не имею широкого опыта в сфере компиляторов (только узкий, типа Рефала).
Да и просто не очень интересны мне компиляторы, работаю по middleware в основном.

Ещё один пример упрощения: считаю, что давно пора сокращать языковые поиски и идти дальше. Акцентироваться на архитектурах, компонентах, решениях времени выполнения... Взяв за языковую основу простую базу, а за способ программирования компонент - "тупой" подход объектно-ориентированных каркасов, а не всяких там специализаций этапа компиляции. Это диктуется простой логикой - любые изменения и эксперименты на уровне систем времени выполнения проводятся на порядок быстрее и дешевле, чем изменения на уровне языков.
Разумеется, это не отменяет поисков небольшого количества энтузиастов внутри "чистой академической науки", на стыке с теорией алгоритмов и вычислений и т.п. Всё это замечательно и со временем приносит пользу. Но отвлекать силы и внимание основного количества программистов не должно, потому что "замораживает" развитие в одной плоскости (гуляем вокруг точки оптимума и подделываем потихоньку языки, вместо того, чтобы решать задачи, которые не относятся к языковому уровню вообще).
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 11:01:48 am
Ещё один пример упрощения: считаю, что давно пора сокращать языковые поиски и идти дальше. Акцентироваться на архитектурах, компонентах, решениях времени выполнения... Взяв за языковую основу простую базу, а за способ программирования компонент - "тупой" подход объектно-ориентированных каркасов, а не всяких там специализаций этапа компиляции. Это диктуется простой логикой - любые изменения и эксперименты на уровне систем времени выполнения проводятся на порядок быстрее и дешевле, чем изменения на уровне языков.
Решения времени исполнения плохи тем. что они… Во время исполнения. Это снижает надежность. То что может быть проверено на этапе компиляции, должно быть проверено на этапе компиляции. Вообще я сейчас на ObjC пишу, потом как-нибудь отпишусь о впечатлениях, там оно как раз всё из себя трушно-оопшное, сплошная динамика (время исполнения, да) и прочие радости. Предварительный вердикт этой динамике -- в динамике много проще лепить костыли, поэтому динамика народу нравится.

Между прочим подавляющее большенство программистов языками не заморачиваются. Пишут на одном-двух языках и горя не знают. Например какой-нибудь VB. Или там тот же C++. Или 1С. И проблемой выбора языка не озадачиваются вообще. Спокойно сидят и лепят так всеми тут любимые горы мусора :-)
Название: Re:Оберон в образовании.
Отправлено: igor от Февраль 27, 2011, 11:25:44 am
(наврятли команда построившая хороший сухогруз быстро и качественно сможет построить военный истрибитель, а от программистов зачастую требуют именно этого, отсюда и беды)
Отсюда вывод: и разработчики сухогруза, и разработчики военного истребителя - сами должны быть хорошими программистами.

Предлагались и другие не безызвестные решения этой проблемы: универсальные программисты в команде таки есть, и узкоспециализированные разработчики общаются с ними при помощи языка Дракон.
Но первое решение (IMHO) лучше.
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 11:42:43 am
(наврятли команда построившая хороший сухогруз быстро и качественно сможет построить военный истрибитель, а от программистов зачастую требуют именно этого, отсюда и беды)
Отсюда вывод: и разработчики сухогруза, и разработчики военного истребителя - сами должны быть хорошими программистами.

Предлагались и другие не безызвестные решения этой проблемы: универсальные программисты в команде таки есть, и узкоспециализированные разработчики общаются с ними при помощи языка Дракон.
Но первое решение (IMHO) лучше.
ААА!!! Вы смешали оба примера :-)
Разработчик сухогруза (инженер) плохо построит истрибитель. Даже если там программисты вообще не нужны (они тут никоем боком вообще). И наоборот.

Абстрактного, чистого программиста в вакууме не бывает, он всегда так или иначе погружен в предметную область, иначе это плохой программист и на выходе будет плохой продукт. Программист погружен должен быть в предметную область ровно настолько, чтобы нормально общаться со специалистами по этой области. Т.e. владеть их языком. Обратное тоже в общем то верно, очень хорошо когда специалист владеет азами программирования.

PS. Вообще меня весьма печалит, что программизм ныне подразумевает некие програмные продукты и не подразумевает автоматизацию личного рабочего и не очень места. Навыками базовой автоматизации десктопной рутины должны таки обладать пользователи ПК, в числе которых естественно находятся и оные специалисты из предметных областей.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 27, 2011, 01:11:47 pm
О простоте… Ну вот взять «Построение компиляторов» – книжка конечно замечательная для тех кто начинает разбираться в синтаксическом анализе и компиляторах вообще, но есть одно но – эта книжка, по сути описание построения эдакого слегка навороченного компиляторного Hello World'a. Ей ни в коем случае нельзя ограничиваться (если хочется реально быть не профаном в области компиляторов), иначем может сложиться ложное впечатление, что всё просто, а это не так. В результате, когда встанет реальная задача даже не компиляции, а просто парсинга языка с грамматикой чуть посложнее (а это почти любой язык, не обязательно программирования), человек зайдет в тупик.

Но как введение в компиляторы, книжка конечно замечательная.
Человек, который реально столкнется с задачей написания компилятора ИМХО обязан отличить введение от фундаментального труда. Если он этого не соображает, то нефиг ему за решение подобных задач браться - все равно не сделает...
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 27, 2011, 01:20:15 pm
Можно и пример существенной и совершенно не решаемой ИТ-шниками по-нормальному задачи:
- организация персонального пространства работы с информацией для пользователя.
Всё, что наворачивают программёры, делается совершенно без понимания специфики умственной работы людей и того, как её надо поддерживать софтом.
А ещё программисты, очень плохо рисуют, моделируют одежду, вышивают крестиком и совсем безобразно кладут асфальт.

Программист НЕ ДОЛЖЕН планировать взаимодействие человека и машины. Также эту задачу ни в коем случае нельзя поручать дизайнерам. К сожалению это понимают очень и очень не многие. В большинстве контор это делают или программисты, или дизайнеры (сложно сказать в каком из случаев результат ужасней).
1. Программисты и не такое умеют! Я рисовал очень хорошо - был факультетским художником. Вышивал крестиком еще в 3-м классе - получалось прекрасно. Вместо асфальта клали бетон - весьма неплохо. А теперь я собираю тумбочки, умею сготовить пожрать (например, пельмени - с нуля), могу делать ремонт квартиры, сантехники и электроприборов. Еще и на трех музыкальных инструментах играю. Моделировать одежду сам не пробовал, но моя сестра-программистка просто КЛАССНО это делает и зарабатывает себе на хлеб с маслом... :) Так что программеры - самый креативный народ в мире... ;D
2. Кто должен планировать? Вообще-то мы тут сталкиваемся с беспрецедентной ситуацией. Ничего подобного ранее не было. И что имеем? Проецирование реализованных ранее подходов на экран: кнопочки, переключатели, списки для выбора и т.п. Даже Раскин - не очень  далеко ушел. А нужна НОВАЯ МЕТАФОРА.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 27, 2011, 01:21:17 pm
Шикарный пример из области компиляции: для нормального модульного языка не нужна глобальная таблица имён, в таблицах имён не бывает много элементов. Поэтому применяется простой связный (максимум самоупорядочивающийся) список.
Все наработанные "потом и кровью" способы организации символьных таблиц (хоть на деревьях, хоть на хэшах), про которые столь много пишется в классических томах по компиляции, стали просто не нужны в задаче компиляции современного языка.
+100!
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 03:15:34 pm
2. Кто должен планировать?
Как ни странно, этим должен заниматься Interaction Designer т.е. разработчик взаимодействия человека и машины. Планировщик интерфейса. Юзабелист.

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

Например у меня друг занимается именно вот этим. Потом по спеке программисты реализуют gui (в т.ч. логику его), а дизайнеры делают красиво/стильно.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 27, 2011, 06:42:44 pm
То есть, этот человек - эргономист. Он должен придумывать интефейс такой, чтобы работникам, использующим разработанную программу, было легко и просто. Я правильно понимаю?
Где таких учат?
Название: Re:Оберон в образовании.
Отправлено: valexey от Февраль 27, 2011, 06:55:09 pm
Да, правильно. Где учат – не знаю. Как и я программированию, мой друг этому научился сам. Весьма качественно научился.

Проблема в том, что люди (в том числе начальство) просто не понимают зачем такая профессия, не понимают что такой человек должен делать. В результате имеем кучу софта который вроде бы даже работает, но пользоваться им нельзя.
Название: Re:Оберон в образовании.
Отправлено: Валерий Лаптев от Февраль 28, 2011, 07:49:47 am
Ну, начальство - общая проблема. В начальство -то у нас и идут, потому как НИЧЕГО не умеют, кроме как "рукамиводить"... :)
И похоже, у нас действительно этому еще нигде не учат.
Название: Re:Оберон в образовании.
Отправлено: DIzer от Февраль 28, 2011, 07:57:10 am
Ну, начальство - общая проблема. В начальство -то у нас и идут, потому как НИЧЕГО не умеют, кроме как "рукамиводить"... :)
И похоже, у нас действительно этому еще нигде не учат.
Будет спрос (в достаточном количестве) -будет предложение. Стандартная модель развития ... В чем проблема? И Москва не сразу строилась...  :)
Название: Re:Оберон в образовании.
Отправлено: Влад Жаринов от Август 20, 2012, 07:44:47 am
2. Кто должен планировать?
Как ни странно, этим должен заниматься Interaction Designer т.е. разработчик взаимодействия человека и машины. Планировщик интерфейса. Юзабелист.

Это не дизайнер (он ничего не рисует красивого) и не программист (он ничего не программирует). Результатом его работы является спецификация интерфейса взаимодействия человека и машины. Не только и не столько внешнего вида интерфейса (он может варьироваться), сколько именно сама схема взаимодействия.
...
Так это разве не технолог?..
Название: Re:Оберон в образовании.
Отправлено: valexey от Август 20, 2012, 09:03:26 am
2. Кто должен планировать?
Как ни странно, этим должен заниматься Interaction Designer т.е. разработчик взаимодействия человека и машины. Планировщик интерфейса. Юзабелист.

Это не дизайнер (он ничего не рисует красивого) и не программист (он ничего не программирует). Результатом его работы является спецификация интерфейса взаимодействия человека и машины. Не только и не столько внешнего вида интерфейса (он может варьироваться), сколько именно сама схема взаимодействия.
...
Так это разве не технолог?..
Нет. Если верить википедии (http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B6%D0%B5%D0%BD%D0%B5%D1%80-%D1%82%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3) технолог занимается совсем другим делом.

В том то и проблема, что Interaction Designer'а постоянно путают то с дихайнером, то с художником, то с, вот, технологом.
Название: Re:Оберон в образовании.
Отправлено: Geniepro от Август 20, 2012, 01:03:25 pm
В том то и проблема, что Interaction Designer'а постоянно путают то с дихайнером, то с художником, то с, вот, технологом.

Interaction Designer -- это однозначно эргономист и никак иначе!
Название: Re:Оберон в образовании.
Отправлено: DIzer от Август 20, 2012, 01:32:55 pm
В том то и проблема, что Interaction Designer'а постоянно путают то с дихайнером, то с художником, то с, вот, технологом.

Interaction Designer -- это однозначно эргономист и никак иначе!
:) Разумеется нет - в этом случае развитие интерфейса остановилось бы на уровне командной строки и интерфейса ББ ....
Это человек который создает, оптимизирует, отображает на наборы элементов интерфейса пользовательские модели поведения(относительно рассматриваемой задачи).
Эргономичность это очень важный фактор - но гораздо важнее его аккуратный учет модели пользователя(ибо нет смысла в создании эргономичного приложения, которым  не будет пользоваться
запланированный круг пользователей)
Название: Re: Оберон в образовании.
Отправлено: DIzer от Август 20, 2012, 01:36:56 pm
Иллюстрация этому тезису школьная сборка ББ  ;D
Название: Re:Оберон в образовании.
Отправлено: Valery Solovey от Август 20, 2012, 05:24:03 pm
:) Разумеется нет - в этом случае развитие интерфейса остановилось бы на уровне командной строки и интерфейса ББ ....
Это человек который создает, оптимизирует, отображает на наборы элементов интерфейса пользовательские модели поведения(относительно рассматриваемой задачи).
Ерунда. Эргономист - это почти тот человек. (А ещё, в универе у меня был предмет "инженерная психология", являющимся смежным эргономике и больше подходящий для занятия рассматриваемым предметом).

Командная строка имеет очень отдалённое отношение к ПО с хорошей эргономикой, если учитывать сегодняшние возможности машин.

Эргономичность это очень важный фактор - но гораздо важнее его аккуратный учет модели пользователя(ибо нет смысла в создании эргономичного приложения, которым  не будет пользоваться
запланированный круг пользователей)
А это вообще глупость, по-моему. Какая масса у пользователя и цвет рубашки, в которой он ходит на работу вообще имеют самое последнее место. В первую очередь идёт цель, для которой готовится программа. Затем плотно прижавшись идёт эргономика (поскольку косвенно включает эту самую цель в своё определение).
Название: Re:Оберон в образовании.
Отправлено: valexey от Август 20, 2012, 05:30:47 pm
:) Разумеется нет - в этом случае развитие интерфейса остановилось бы на уровне командной строки и интерфейса ББ ....
Это человек который создает, оптимизирует, отображает на наборы элементов интерфейса пользовательские модели поведения(относительно рассматриваемой задачи).
Ерунда. Эргономист - это почти тот человек. (А ещё, в универе у меня был предмет "инженерная психология", являющимся смежным эргономике и больше подходящий для занятия рассматриваемым предметом).

Командная строка имеет очень отдалённое отношение к ПО с хорошей эргономикой, если учитывать сегодняшние возможности машин.
Зависит от задачи. Если задача пользователя хоть как-то предполагает автоматизацию его, пользователя, рутинных действий, то командная строка то что дохтур прописал. А возможности машин.. а что они могут такого-эдакого для подобных задач? :-)

Эргономичность это очень важный фактор - но гораздо важнее его аккуратный учет модели пользователя(ибо нет смысла в создании эргономичного приложения, которым  не будет пользоваться
запланированный круг пользователей)
А это вообще глупость, по-моему. Какая масса у пользователя и цвет рубашки, в которой он ходит на работу вообще имеют самое последнее место. В первую очередь идёт цель, для которой готовится программа. Затем плотно прижавшись идёт эргономика (поскольку косвенно включает эту самую цель в своё определение).
Ой, какая масса пользователя, какие у него габариты, что у него с координацией движений и так далее - очень важно знать при проектировании интерфейса в ряде случаев. Иначе он элементарно в кнопку не попадет вовремя и будет раздражаться (hint: интерфейсы делаются не только для стационарных компьютеров и ноутбуков, а человек не всегда при пользовании компьютером имеет нормальную координацию движений и вообще спокойное состояние. У него может быть например пульс 190, а устройство/компьютер может быть закреплено на его теле.)
Название: Re:Оберон в образовании.
Отправлено: DIzer от Август 20, 2012, 05:50:26 pm
:) Разумеется нет - в этом случае развитие интерфейса остановилось бы на уровне командной строки и интерфейса ББ ....
Это человек который создает, оптимизирует, отображает на наборы элементов интерфейса пользовательские модели поведения(относительно рассматриваемой задачи).
Ерунда. Эргономист - это почти тот человек. (А ещё, в универе у меня был предмет "инженерная психология", являющимся смежным эргономике и больше подходящий для занятия рассматриваемым предметом).
 
 - "инженерная психология" - вот он источник заразы!  :) :D ;)
Цитировать
Командная строка имеет очень отдалённое отношение к ПО с хорошей эргономикой, если учитывать сегодняшние возможности машин.
  - зависит от задачи и от пользователя в первую очередь, в меньшую от машин (учитывая их возможности).
Цитировать
Эргономичность это очень важный фактор - но гораздо важнее его аккуратный учет модели пользователя(ибо нет смысла в создании эргономичного приложения, которым  не будет пользоваться
запланированный круг пользователей)
А это вообще глупость, по-моему. Какая масса у пользователя и цвет рубашки, в которой он ходит на работу вообще имеют самое последнее место. В первую очередь идёт цель, для которой готовится программа. Затем плотно прижавшись идёт эргономика (поскольку косвенно включает эту самую цель в своё определение).
   ;D ;D ;D см. пример про ББ.