OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 17:20

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 12 Март, 2009 23:38 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Есть мысль отодвинуть массивы (структуры данных с произвольным вычислимым доступом) дальше по курсу, насколько возможно. Посмотрим в апреле-мае, как это пойдёт в реальности.

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

В ББ можно сделать элементарно: один этап алгоритма выводит последовательность в Log, следующий этап забирает через In. Типа, соединяем, как перенаправление ввода-вывода от одной программы в другой в Юниксовом конвейере.
Далее можно и файлы показать, тексты - с ними поработать... Если RECORD-ы уже введены и объянено, что у RECORD-а может быть процедура (объясняем через аллегорию - "вот такой RECORD у нас как маленький модуль").

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

Вообще, такое ощущение, что массивы плотно связаны с "призраком FOR". Застарелые отзвуки Фортрана тащатся из курса в курс, из книги в книгу (т.е. то древнее зацикливание на итерации по векторам-матрицам).

В итоге, у народа в голове при слове "алгоритм" сразу в голове "звенят контуры" на FOR-ы, которые перемалывают массивы. Хотя должны "звенеть" образы WHILE-процессов по строгим законам-инвариантам, работающие над последовательностями (чего угодно последовательностями - событий, величин, маршрутов обхода сложных структур данных). Тут же и "функциональность" как раз - и dataflow с распараллеливанием вполне естественно образуется. Мы тут недоумеваем, чего некоторые функциональщики всё шухер поднимают про "дикие циклы с побочными эффектами". Просто представления об алгоритмическом программировании у них всё на том же фортрановско-до-Дейкстровском уровне.

(Занятно смотреть, что возня с "автораспараллеливанием" для императива идёт всё исключительно на том же классе FOR-программ над произвольно адресуемыми данными)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Март, 2009 04:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Илья Ермаков писал(а):
Есть мысль отодвинуть массивы ...
Мысль уже высказывалась 8) Но это не значит, что не надо повторять. Наоборот, надо, раз она хорошая.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Март, 2009 10:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну вот, уже копирайт нарушил :)
Впрочем, у меня есть такая "привычка Шелленберга". Я не нарочно, я действительно иногда не помню, что какую-то мысль когда-то слышал, а потом она сама вылезает в другом контексте :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отодвинуть массивы подальше
СообщениеДобавлено: Пятница, 13 Март, 2009 11:09 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Илья Ермаков писал(а):
... я действительно иногда не помню, что какую-то мысль когда-то слышал ...
А Вы исходите из того, что мыслей, которые "когда-то слышал", на несколько порядков больше, чем остальных 8)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Март, 2009 11:12 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
На самом деле экстремизм не хорошо.
Массивы задвигать далеко не нужно и не удобно (строки).
Одни дают массу отличных примеров для WHILE. Поиск 0Х. Поиск (*. Поиск с конца. Палиндромы пресловутые.
Просто педалировать их не надо.
А педалируют их, когда всё остальное считается advanced.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Март, 2009 11:15 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Да, строки завязаны на массивы...
Строки лично мне вообще не очень методически этим нравятся - их можно было б пораньше, а...

Есть спорная мысль сначала дать тексты и ридеры/врайтеры. После In и Log они очень естественно пойдут.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Март, 2009 11:47 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
Тексты - это уже перегиб.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 13 Март, 2009 15:37 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Борис Рюмшин писал(а):
Тексты - это уже перегиб.
Почему же. Просто надо вдуматься. У меня аналогичные мыслишки немного по другим причинам варятся.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB