OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 26 Апрель, 2024 08:42

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




Начать новую тему Ответить на тему  [ Сообщений: 50 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 13 Апрель, 2010 07:56 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Пришла в голову мысль.
Вот мы говорим о необходимости постановки техники в программировании. Согласились с тем, что должны быть шаблоны-образцы использования языковых конструкций, которые надо "вбивать" в мозги программистов.
Но ИМХО гораздо важнее научить декомпозиции - без этого никакие шаблоны использования не помогут. А вот научить декомпозиции бывает значительно сложнее. Во всяком случае я постоянно сталкиваюсь с тем, что начинающие программеры не в состоянии разложить большое действие на ряд простых и поставить их в нужном порядке.
Как учить ТЕХНИКЕ ДЕКОМПОЗИЦИИ?
На черепашках?
У меня такие вопросы возникают потому, что у самого почему-то проблем не возникает,
и мне часто не понятно, а что может быть студиозу непонятно?


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Валерий Лаптев писал(а):
Как учить ТЕХНИКЕ ДЕКОМПОЗИЦИИ?
На черепашках?
http://www.inr.ac.ru/~info21/troitsklic ... jetap6.htm

http://www.inr.ac.ru/~info21/
Цитата:
Проект Информатика-21 ставит целью пропаганду и внедрение в систему образования Оберона/Компонентного Паскаля как практически идеальной единой платформы для обучения программированию и информатике.
На такой платформе учащихся можно провести от самых первых шагов (5й класс; см. репортаж) ....


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 13 Апрель, 2010 09:36 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
У меня одна большая сложность по сравнению с ФВ. У него - школьники-пятиклашки. А у меня - студенты 1-го курса. И в учебном плане просто нет места для черепашек. Если только менять программу одной-двух дисциплин.
И еще преподов научить этому подходу.
Но действительно, получается неплохо.
Правда нас учили в кодах Минска-22 писать вычисление формул. Тоже сильно помогает понимать декомпозицию.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 13 Апрель, 2010 09:45 
Аватара пользователя

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


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
Как учить ТЕХНИКЕ ДЕКОМПОЗИЦИИ?
Чтобы начинать говорить о декомпозиции, нужно иметь К ЧЕМУ декомпоновать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 13 Апрель, 2010 10:24 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Info21 писал(а):
Валерий Лаптев писал(а):
Как учить ТЕХНИКЕ ДЕКОМПОЗИЦИИ?
Чтобы начинать говорить о декомпозиции, нужно иметь К ЧЕМУ декомпоновать.

Ну правильно! Формула - к последовательности команд Минска-22...
Но аспирантов вы же не на черепашках учите? Я так понимаю, что их декомпозиции вообще учить не требуется...
Кстати, а чем вы сайт пополняете? С помощью какого инструмента? Или ручками в html?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 13 Апрель, 2010 20:08 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
Info21 писал(а):
Во-первых, 5-клашек учить гораздо труднее.

Info21, Каждый год слышим о 5-клашках, куда они деваются, чем они заняты перейдя в 6, 7, 8, 9 класс?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 13 Апрель, 2010 20:44 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 557
Валерий Лаптев писал(а):
Как учить ТЕХНИКЕ ДЕКОМПОЗИЦИИ?
Учить ТЕХНИКЕ ДЕКОМПОЗИЦИИ не надо, это ведь одна из операций алгоритмизации задачи. Следовательно надо научить алгоритмизации.

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

В теме: Культурология языка Дракон 02 Июнь, 2008 http://forum.oberoncore.ru/viewtopic.php?p=15870#p15870
Владимир Паронджанов писал(а):
НЕДОСТАТОК ПОЗИЦИИ АКАДЕМИКА ЕРШОВА

Ершов смотрел на проблему по-крупному, порою не различая деталей (в ту пору это было вполне извинительно).
Однако есть деталь, которую следует признать важной. Это различие между
ПРОГРАММИРОВАНИЕМ И АЛГОРИТМИЗАЦИЕЙ.

Моя мысль состоит в следующем.

1. Обучение программированию является важной задачей. Но эта задача касается сравнительно небольшого числа людей. Обучение программированию не может и не должно быть массовым.

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


АЛГОРИТМИЗАЦИЯ — ВТОРАЯ ГРАМОТНОСТЬ?

Развивая идеи академика Ершова, учитывая его ошибки и реалии сегодняшнего дня, можно сделать следующие замечания:

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

АЛГОРИТМИЗАЦИЯ ТРУДНА. МОЖНО ЛИ СДЕЛАТЬ ЕЕ ЛЕГКОЙ?

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

Обучению программированию обязательно должно предшествовать обучение алгоритмизации.


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

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

Удалось даже понятие инварианта цикла понятно проиллюстрировать уже на этом этапе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 07:01 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Илья Ермаков писал(а):
У меня в этом году в курсе несколько начальных занятий посвящено чисто алгоритмам, рисуемым на доске (ДРАКОН-схемой и рядом на КП), по разным жизненным примерам.
Впечатления - удачно. Сразу надо вводить понятие вспомогательного алгоритма - процедуры. Житейские примеры имеют то преимущество, что там можно показать эту "бесконечную декомпозицию": т.е. что любое действие можно рассматривать или как элементарное, или как реализованное процедурой, состоящее из поддействий.

Удалось даже понятие инварианта цикла понятно проиллюстрировать уже на этом этапе.

Ценно! Совпадает с практикой ФВ у пятиклашек - там тоже получилось, что процедуры надо вводить раньше циклов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 10:50 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Валерий Лаптев писал(а):
... нас учили в кодах Минска-22 писать вычисление формул. Тоже сильно помогает понимать декомпозицию.
Не помогает, а стимулирует в желании понять, что это такое. Потому что Вы своим примером можете показать скорость разработки и уменьшение количества ошибок по сравнению с аналогичной программой у студентов. А затем сказать, что причина тому - правильная декомпозиция. Поскольку на практических занятиях времени мало, то большинству очень захочется уметь правильно выполнять декомпозицию уже только по этой причине.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 10:59 
Аватара пользователя

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

Info21, Каждый год слышим о 5-клашках, куда они деваются, чем они заняты перейдя в 6, 7, 8, 9 класс?
Они приходят в Байтик. Некоторые.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 11:42 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Валерий Лаптев писал(а):
А вот научить декомпозиции бывает значительно сложнее. Во всяком случае я постоянно сталкиваюсь с тем, что начинающие программеры не в состоянии разложить большое действие на ряд простых и поставить их в нужном порядке.
Как учить ТЕХНИКЕ ДЕКОМПОЗИЦИИ?
На черепашках?
Черепашки тут не помогут. Лучше всего тут поможет опыт. Но опыт не в программировании.

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

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

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

Грубо говоря - так.

Таким образом, для старших классов и выше предлагаю писать определения (на доске, в тетради) без написания собственно программы. По началу. Скажем, одно практическое занятие в начале полугодия и одно в середине.

А черепашка здесь не поможет.

Вот такой макет. Пусть педагоги его рассмотрят и подкорректируют.


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Valery Solovey писал(а):
Процесс декомпозиции заключается в нахождении определения понятия.
...
А черепашка здесь не поможет.
Погрешу, сдеру определение из википедии:
Цитата:
Декомпози́ция — научный метод, использующий структуру задачи и позволяющий заменить решение одной большой задачи решением серии меньших задач.
Задача рисования черепашкой дома спокойно делится на рисование стен, окон, двери и т.п.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 12:19 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Гм... а если ввести возможность установить ограничения на уровень вложенности для составных операторов и длину последовательности операторов?

Под курс/набор задач можно подобрать величину опытным путём, и... пусть компилятор принуждает к декомпозиции...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 12:23 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Я дал более узкое понятие, соответствующее контексту.

А к определению из википедии у меня претензии. Почему научный метод? Им не учёные не пользуются? Что значит "серия задач"? Может, ситема для них - это набор элементов?

Подозреваю, там тоже дано частное определение.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 12:25 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Евгений Темиргалеев писал(а):
Гм... а если ввести возможность установить ограничения на уровень вложенности для составных операторов и длину последовательности операторов?

Под курс/набор задач можно подобрать величину опытным путём, и... пусть компилятор принуждает к декомпозиции...
Но компилятор отвечает за синтаксическую составляющую. А декомпозиция лежит на семантическом уровне.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 12:32 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Valery Solovey писал(а):
А к определению из википедии у меня претензии.
Да, недодуманное определение.

А про тетрадь вместо клавы -- это тонко подмечено. Одна проблема: комп их прям как магнит притягивает. Очень трудно приучать к карандашу и бумаге.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 17:20 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Valery Solovey писал(а):
Евгений Темиргалеев писал(а):
Гм... а если ввести возможность установить ограничения на уровень вложенности для составных операторов и длину последовательности операторов?

Под курс/набор задач можно подобрать величину опытным путём, и... пусть компилятор принуждает к декомпозиции...
Но компилятор отвечает за синтаксическую составляющую. А декомпозиция лежит на семантическом уровне.
В предложении говорилось об учебном компиляторе и специально подобранном наборе задач.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 14 Апрель, 2010 17:35 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Предлагаю не зацикливаться на декомпозиции, есть ещё абстрагирование (тоже успешно борется с излишней сложностью). Для юного программиста не менее важная "вестчь".


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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 14


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

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