OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 16 Декабрь, 2018 10:55

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




Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 16:34 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9062
Откуда: Россия, Орёл
Доровских Александр писал(а):
В моем понимании цикл - это набор каких-либо однотипных действий.
...
Это так или я не прав?


Конечно, правы.

(Просто чтобы ОБЪЯСНЯТЬ другим, надо и поглубже нюансы знать-понимать; почему тут и споры :) ).

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 16:51 

Зарегистрирован: Понедельник, 23 Март, 2009 10:35
Сообщения: 98
Откуда: Ханты-Мансийск
Илья Ермаков писал(а):

(Просто чтобы ОБЪЯСНЯТЬ другим, надо и поглубже нюансы знать-понимать; почему тут и споры :) ).


Споры здесь, пмсм, это демонстрация филогенеза дидактики в онтогенезе треда.)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 17:10 

Зарегистрирован: Понедельник, 23 Март, 2009 10:35
Сообщения: 98
Откуда: Ханты-Мансийск
Илья Ермаков писал(а):
Дмитрий Колосов писал(а):
Последовательность обучения, согласно Кушниренко, такая (поправьте, если ошибаюсь):
  1. понятие Исполнителя, система команд исполнителя, команды-действия;
  2. линейная последовательность команд;
  3. цикл "N раз";
  4. команды-вопросы (возвращающие логическую константу);
  5. команда ветвления;
  6. цикл с предусловием;

и всё это - до величин!
и вопросов их именования, хранения значения и использования.

т.е. разводить понятия до тех пор, пока не будет возможности сформировать ориентировочную основу действия.


Да, всё почти так.

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


Кушниренко, прежде всего, гениальный практик.

В одном конспекте его с Лебедевым лекций, который мне попадался в те годы, ставилась проблема развести команду и действие, т.е. дать представление о деятельности программиста как о написании особого текста.
Заложить понимание программного управления.
("введите А" - и студиозы ломанулись (с) вписывать в текст программы значение!!!)

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

И точке зрения на "оператор ветвления/ проверки условия" предшествовала т.з. на условный оператор как на команду, снабжённую условием её выполнения. Именно эта команда, а не её обёртка, и называлась "условным оператором".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 17:56 
Аватара пользователя

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

"Кто указывает имя автора мысли, высказывая ее, приближает избавление мира."
Перкей Авот 6:6
А
"человек, использующий чужую мысль без ссылки -- двойной вор, ибо ..." (спешу).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Объяснение циклов начинающим
СообщениеДобавлено: Суббота, 19 Декабрь, 2009 18:48 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9062
Откуда: Россия, Орёл
Мысль не нова и маячит в памяти; но где видел последний раз - не вспомню...

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4

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


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

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


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

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