Автор Тема: Оберон в образовании.  (Прочитано 104873 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #105 : Февраль 25, 2011, 06:24:41 am »
А что Вы подразумеваете под функциями высшего порядка? Полиномы N-ой степени?  :)
Функции, оперирующие другими функциями.
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

DIzer

  • Гость
Re:Оберон в образовании.
« Ответ #106 : Февраль 25, 2011, 06:36:52 am »
Вы правы , но вмеру... Напоминаю разделение произошло, из невозможности на практике подготовить "универсала" - это только в коммунистических агитках было чел. утром за станок, днем за кульман. а вечером размышляет о смысле жизни на уровне Канта..Действительность оказалось суровее... кроме того эффективная подготовка специалистов практиков одна с точки зрения методологии, универсалов другая, средства затрачиваемые на них различны, да и количество их различно...то есть то что мы имеем сейчас- обычная реальность

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

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #107 : Февраль 25, 2011, 07:13:16 am »
В моей практике пока не возникало необходимости в таком уровне вложенности, максимум 2 от силы 3.
2Vlad
На всякий случай уточню, я говорил о вложенности описаний функций, но не их вызовов.
Тогда возможно мы говорили немного о разном  :-\\ Ивиняюсь, если я не правильно Вас понял.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #108 : Февраль 25, 2011, 08:33:43 am »
1. Внутри функции глобальные (по отношению к ней) переменные доступны только для чтения.
2. Параметры, передаваемые в функцию по ссылке, доступны внутри функции только для чтения.
3. Внутри функции запрещено использовать вызов процедур.
Итак что же мы имеем? Мы имеем повторение Ады. Собственно, если мне склероз не изменяет, там функции это ровно то самое и есть.

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

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

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

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #109 : Февраль 25, 2011, 10:36:59 am »
Что имеем на практике? На практике мы имеем, что если мы в функцию передаем указатель, то его конечно мы изменить не можем, а вот объект по этому указателю -- вполне. Ок, мы передали объект по константной ссылке. Тогда сам объект мы изменить не можем, но вот объекты на которые держит указатели этот объект вполне. :-)
Это ещё раз доказывает, что хороший язык (каким является Оберон) - это тонкий сбалансированный инструмент. Нельзя сбухты-барахты взять и ввести в него отдельно взятое "хорошее" правило. В то же время, это не означает, что те правила, которые я предложил, плохие. Просто для их применения нужен другой язык (не Оберон и не Ада).

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #110 : Февраль 25, 2011, 01:14:23 pm »
В моей практике пока не возникало необходимости в таком уровне вложенности, максимум 2 от силы 3.
2Vlad
На всякий случай уточню, я говорил о вложенности описаний функций, но не их вызовов.
Тогда возможно мы говорили немного о разном  :-\\ Ивиняюсь, если я не правильно Вас понял.

Да, я говорил именно о вызовах, а не об описании. Иначе смысл всей затеи (разделение на функции с результатом и процедуры с OUT-параметрами) для меня теряется...

Илья Ермаков

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

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

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #112 : Февраль 25, 2011, 04:31:31 pm »
А есть ли смысл у разделения на процедуры и функции?
Есть.
Функция - это то, к чему мы привыкли в математике.
А процедура имеет ясный и понятный смысл - это просто последовательность команд исполнителя, не обязательно возвращающий некий результат.
Например, рисование фигуры в окне.  Приплетать к последовательности команд еще и неких результат в виде значения - это лишнее.

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #113 : Февраль 25, 2011, 04:42:47 pm »
Да. Оберон останется таким, каким его придумал автор. Но и в таком виде, по моему убеждению, он является кандидатом №1 на роль языка для начального обучения.
Вот что парадоксально, исполнит он эту роль или нет, от самого языка уже не зависит. Это зависит от того, станет ли он применяться в промышленных масштабах. Языки приходят в образование через индустрию. Другой дороги нет. Этому нас как бы учит история.
С первым утверждением согласен - имхо тоже лучше нет.
Со вторым - не согласен. Паскаль в образование пришел как раз не из индустрии.
И кстати, Вирт об этом прямо говорит (см. Потерянная дорога): нельзя в универах учить промышленным языкам. Универы - это не учреждения по подготовке промышленных программистов, универы - это научные центры, которые и должны показывать промышленности направление движения. Как во всякой другой сфере и обычно и бывает. Только не в ИТ. Кстати, почему?

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #114 : Февраль 25, 2011, 04:45:33 pm »
В образование языки приходят через промышленность только у нас. У проклятых буржуев частенько в промышленность приходят языки из и через образованиe. Равно как существуют языки использующиеся (широко) в образовании но не использующиеся в промышленности вообще.
К сожалению, не только у нас. В МИТе стали изучать Java. Джоэл Спольски об этом тоже писал, что это - ошибка.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #115 : Февраль 25, 2011, 04:48:56 pm »
А есть ли смысл у разделения на процедуры и функции?
Есть.
Функция - это то, к чему мы привыкли в математике.
А процедура имеет ясный и понятный смысл - это просто последовательность команд исполнителя, не обязательно возвращающий некий результат.
Например, рисование фигуры в окне.  Приплетать к последовательности команд еще и неких результат в виде значения - это лишнее.

Применительно к языку а-ля оберон, функция - это тоже последовательность команд, как ни крути. Так что вся разница сводится к возврату или не возврату значения. И эта разница, ИМХО, даже не стоит отдельного термина. Значение или возвращается или нет. Так же как не стоит отдельного термина процедура/функция без аргументов.

DIzer

  • Гость
Re:Оберон в образовании.
« Ответ #116 : Февраль 25, 2011, 04:51:07 pm »


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

Ремесленника, Илья , ремесленника - и проектировка ПО может быть ремеслом, и физика, и математика- когда делается черезмерный упор на специализацию, да еще с самого начала... Большинству этого вполне хватает... и это ОК, но на определенном этапе... ограничения такого подхода дают о себе знать - прекрасный пример эта ветка форума... Забавно, что даже ваше альтернативное предложение... всего лишь другая ипостась ремесленного подхода... На эту тему рассуждать можно много... Оригинальное сообщение выражало мое мнение о возможности интеграции оберонов в существующую систему преподавания на 1 курсе  вузов. Обобщение делается на основе анализа и модели (которые здесь не приведены) . Параметры этой модели, существенно отличаются от Вашей (если она у Вас есть = в чем я сильно сомневаюсь- слишком поверхностны ваши выводы, а "правильные" утверждения выглядят повторением избитых штампов).

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #117 : Февраль 25, 2011, 04:54:20 pm »
Тогда лучше использовать дрвний термин "подпрограмма". Применение этого термина никак не требует разделения на процедуры и функции. Хотя даже в фортране (видимо, из чисто практических соображений) были и subroutine и function.

DIzer

  • Гость
Re:Оберон в образовании.
« Ответ #118 : Февраль 25, 2011, 05:02:37 pm »
Тогда лучше использовать дрвний термин "подпрограмма". Применение этого термина никак не требует разделения на процедуры и функции. Хотя даже в фортране (видимо, из чисто практических соображений) были и subroutine и function.
Лучше - а еще лучше субалгоритм...

Валерий Лаптев

  • Jr. Member
  • **
  • Сообщений: 58
    • Просмотр профиля
Re:Оберон в образовании.
« Ответ #119 : Февраль 25, 2011, 05:11:31 pm »
Поделюсь впечатлениями о первом использовании школьной сборки. Контингент - первокурсники. В первом семестре на Кумире писали типичные алгоритмы. Дошли до циклов, функций и файлов.
Сейчас у них были уже три лабы по С/С++ в среде Дотнет. Кстати, один из них работает в Code::Blocks - студию дома не мог установить по какой-то причине.
Так вот. Задание было - повторить первую лабу в среде ББ на КП. Это вычисление арифметических выражений с использованием стандартных функций.
Начали с распаковки школьной сборки.
Несколько наблюдений.
1. Кто ранее знал паскаль, сразу бросились писать. Не работает, куча ошибок. Пришлось лезть в справку школьной сборки.
2. Кто ранее знал паскаль, предпочли английский вариант. кто не знал - русский (Кумир, видимо, повлиял).
3. Сработали стереотипы паскаля - независимость от регистра. Пришлось все исправлять ручками.
4. Оценили F5, но попытались через F5 и вызовы конкретных функций сотворить... :)
Некоторые практически в буквальном смысле "смотрят в книгу" (пример ЕГЭ), а видят совсем не то, что написано...
5. Сработали стереотипы лабы на С/С++: сначала - приглашение для ввода значений. Потом ввод, потом вычисление, потом - вывод. Интересно было наблюдать, как приглашения выводятся в Лог, и нигде не возникает окна для ввода значений.
Но в общем человека 3-4 из присутствующих 8 вполне разобрались и со вводом выводом и получили результат.
Будем работать дальше. Видимо, придется посвятить пару лекций конкретике КП+ББ. Хотя в справке у Ткачева написано практически все. Если б дома пробовали - не было бы проблем... :)

Думаю сделать следующее за семестр: все наши лабы, написанные для С/С++, переделать на ББ и внести непосредственно в среду.
Использовать буду изначальный BB 1.5 с пакетом русификации.
« Последнее редактирование: Февраль 25, 2011, 05:17:04 pm от Валерий Лаптев »