OberonCore
https://forum.oberoncore.ru/

Алгоритмическая лаборатория BlackBox Lab
https://forum.oberoncore.ru/viewtopic.php?f=7&t=571
Страница 1 из 4

Автор:  Илья Ермаков [ Пятница, 13 Июль, 2007 02:51 ]
Заголовок сообщения:  Алгоритмическая лаборатория BlackBox Lab

Коллеги, прошу любить и жаловать - версия 0.9 BlackBox Lab. Это то, что получилось из начатого и заброшенного в прошлом году ШАРа...

[неактуальная ссылка удалена администратором] (350 Кб).
(пардон, что в таком формате, просто в командной строке линукса ничего более удобного посреди ночи искать не стал :-) ).

Собственно, вся документация доступна через меню Lab->Руководства пользователя.

Общая суть проекта:
Цитата:
Ключевой идеей BlackBox Lab является концепция интерактивного алгоритмического документа, который интегрирует в себе текст, алгоритмы на Component Pascal, интерактивные графические объекты (например, обучающие исполнители, планшеты для графиков/диаграм и т.п.) и позволяет алгоритмам непосредственно взаимодействовать с интегрированными в документ объектами. При этом документ-алгоритм полностью скрывает весь цикл по оформлению, сохранению, компиляции и загрузки модуля, позволяя запускать отдельные процедуры из документа простым щелчком мыши по их названию либо настраивать их автоматический запуск при открытии документа.

Основные сферы применения BlackBox Lab:

1) Образование. Lab позволяет значительно повысить эффективность процесса обучения основам программирования за счет отвлечения от несущественных деталей, максимальной интерактивности и возможности использования учебных исполнителей. Несколько исполнителей уже включены в поставку - это Чертежник, Черепашка и Робот. Кроме того, Lab легко расширить новыми исполнителями. Совокупность этих качеств позволяет использовать BlackBox на раннем этапе школьного образования - вместо традиционных учебных интерпретаторов, подобных КуМир, Лого и т.п.
Трудно переоценить достоинства сквозного преподавания информатики на базе единой платформы. BlackBox является такой платформой и хорошо применим для преподавания алгоритмизации в среднем школьном звене, основ программирования в старших классах и на младших курсах ВУЗов, для профессиональной подготовки на ИТ-специальностях ВУЗов.

2) Наука. В настоящее время BlackBox интенсивно используется учеными, в частности, в ядерной физике (ИЯИ РАН, CERN, ...). По удобству рабочего цикла и интерактивности среда вплотную приближается к специализированным прикладным пакетам, при этом являясь универсальной платформой разработки. Lab явлется эффектным дополнением для ученого, позволяя в необходимых случаях работать в режиме, традиционном для интерактивных прикладных пакетов, подобных MathLab и т.п..

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

BlackBox Lab задумывался как платформа для создания прикладных пакетов для различных областей науки. Lab может интегрироваться с любыми графическими объектами, уже написанными для BlackBox.
Lab можно эффективно использовать в математике и физике, используя научные библиотеки из Component Pascal Collection (http://www.zinnamturm.de). В частности, библиотека Lib включает себя инструменты численных методов и мощные планшеты для построения графиков и диаграмм (в том числе полевых и трехмерных). Богатые примеры научного программирования в BlackBox можно найти в подсистеме Epse21 с того же сайта. Группа подсистем научного назначения собрана в едином пакете Chill.

Мы ожидаем, что Lab станет основой для интенсивного развития прикладных пакетов на базе среды BlackBox.

Автор:  ___ [ Пятница, 13 Июль, 2007 11:59 ]
Заголовок сообщения: 

здОрово!
попробовал пару задач с роботом из учебника Кушниренко
ходит, закрашивает, разбивается об стены
все как положено)
из документации пример:

Общий вид алгоритма
алг имя (тип арг1, тип арг2, рез тип рез1)
дано условия_применимости
надо цель выполнения
нач
тип величина1, величина2;
тип величина3;
...тело алгоритма...
все

PROCEDURE Имя (арг1, арг2: ТИП; VAR рез1: ТИП);
VAR переменная1, переменная2: ТИП;
переменная3: ТИП;
BEGIN
ASSERT(условия применимости);
...тело алгоритма...
END Имя;

В примере на КП не отражено "цель выполнения"...

-----------------
радиацию можно задавать отрицательную...
надо будет в кумире глянуть, но судя по книге радиация у них неотрицательная
-----------------
вообщем вопрос: позиционируется ли ББЛаб на замену кумира (если отказываться от шк. алг. яз. в пользу КП)[т.е. есть ли цель просто адаптировать курсы под новую среду или будут разрабатываться собственные]?
просто там есть штуки которых тут я пока не нашел

Автор:  Илья Ермаков [ Среда, 18 Июль, 2007 14:15 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

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

По поводу отрицательной радиации - упущение-с, надо запретить.

Автор:  Илья Ермаков [ Пятница, 20 Июль, 2007 11:53 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Итак, выпущен релиз BlackBox Lab:
viewtopic.php?f=1&t=575

Автор:  ___ [ Вторник, 24 Июль, 2007 14:09 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

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

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

Автор:  Илья Ермаков [ Вторник, 24 Июль, 2007 16:27 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Мда, сделаю Public Domain (общественное достояние) и перестану людям мозги компостировать :-)

По поводу управления - там в инструкции к Роботу описано. С клавиатуры всё можно.

Автор:  ___ [ Вторник, 24 Июль, 2007 16:31 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Илья Ермаков писал(а):
По поводу управления - там в инструкции к Роботу описано. С клавиатуры всё можно.

отлично!
значит пропустил маленько)

Автор:  Илья Ермаков [ Четверг, 02 Август, 2007 21:35 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Собственно, опубликованный релиз...
См. OberonCore.ru/BlackBox/Компоненты.

Автор:  Pavel [ Пятница, 31 Август, 2007 10:33 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Большое спасибо Илье Ермакову за BlackBox Lab.
С сентября хочу при изучении компьютерных исполнителей давать BlackBox Lab. У нас они начинаются с седьмого класса, но на факультативных занятиях можно и раньше.
Малышам можно дать только Робота или Черепашку.
Поработал с Чертёжником – ВЕЛИКОЛЕПНО.
Только требует нескольких пояснений: в документации написано
PROCEDURE (v: View) ВыбратьЦвет (цвет: INTEGER)
PROCEDURE (v: View) ЗалитьОбласть (x, y, цветГраницы: INTEGER)
А можно написать
ВыбратьЦвет(сиреневый);
ЗалитьОбласть(100, 100, зелёный)
Или
ВыбратьЦвет(5000);
ЗалитьОбласть(100, 100, 5600)
Как составить наглядную таблицу доступных цветов? Младшие школьники с удовольствием её использовали.
Черепашку гонял меньше, но тоже ВЕЛИКОЛЕПНО.
С Роботом возникли вопросы.
Первый вопрос.
Для работы Робота необходимо ученику предоставить обстановки. На одну и туже задачу возможно даже несколько, в КуМире есть возможность загрузить обстановку с файла, а здесь я такой возможности не нашёл. Может, я не научился читать документацию?

Второй вопрос.
В КуМире есть понятие границы поля Робота и логические функции «лог слева свободно, лог сверху свободно, лог снизу свободно, лог справа свободно» проверяли достигнута ли граница поля Робота. При этом столкновение со стенкой вызывало ошибку. Робот разбивался. Это было не совсем понятно ученикам, почему стена не является препятствием. А ограниченные границы поля робота мне нравилось. При желании можно было загрузить поле Робота и без границ. Можно ли как-то ограничить размер поля Робота? Не строить же каждый раз стенки.

Третий вопрос.
В КуМире явно присутствует команда отрицания «не». Здесь она также имеется из КП «~», но и есть команда выбивающиеся из этой концепции «КлеткаНеЗакрашена ()». На первый взгляд команду отрицания можно и не использовать, но ученикам логические операции необходимо показывать. Может ввести в команды Робота отрицание «не» или убрать команду «КлеткаНеЗакрашена ()»? А может, есть другие варианты?
Спасибо.

Автор:  Илья Ермаков [ Пятница, 31 Август, 2007 11:44 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Павел, рад, что разработка оказалась полезной.

Отвечаю на вопросы.

По поводу цветов - константы цветов определены в модуле LabStdRu (LabStd - английские). Когда Вы его импортируете в задачке, то эти константы можно писать прямо, без префикса модуля (автоматически находится заголовок Lab/Rsrc/StdRu-Cmds, который незаметно для Вас всовывается в исходник задачи перед компиляцией).

Ещё удобно использовать пункт меню Lab "Вставить цветовое значение" - можно выбрать цвет в стандартном диалоге, в текст будет вставлена константа.

Что касается Робота - функции те же самые: СверхуСвободно(), СнизуСвободно()... и парные к ним - СверхуСтена(), СнизуСтена() - смотрите документацию на модуль LabRobot(Ru). Об стенку робот разбивается - появляется окно трэпа... Может быть, Вы скачали не окончательную версию, которая в этой ветке публиковалась? Релиз в разделе Компоненты на OberonCore. Поле я сделал бесконечным по самым разным соображениям, сейчас всё и не вспомню, но так оказалось во всех отношениях удобнее, плюс у Кушниренки поле и есть бесконечное, а "конечность" делается специально, построением "забора". В принципе, можно автоматизировать.. А напишите сами скрипт, используя команды редактирования Робота (так же гоняете его по полю, давая при этом команды редактирования, см. документацию модуля робота) :-)

Про обстановку - Вы просто делаете документ ББ с заданием, в который кладёте поле Робота и размечаете его. Вы сохраняете документ - поле сохраняется. Ученики открывают документ с заданием - делают Ctrl-C - Ctrl-V в свои "электронные тетрадки" - и начинают решать...

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

Автор:  Pavel [ Пятница, 31 Август, 2007 13:35 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

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

Попробовал гонять Робота по полю строить заборы. Забавная штука. Можно давать сильным ученикам в качестве дополнительного задания. Только получается маленькая свистопляска. Если возвращать Робота НаИсходную, то Робот или строит забор или его удаляет, если не отправлять НаИсходную, то непонятно откуда начинает строиться правильная обстановка. Получается, что надо работать только в новом окне?
Например:
IMPORT Робот:=LabRobotRu;
PROCEDURE забор*;
VAR i:INTEGER;
BEGIN
Робот.Открыть();
Робот.Редакт;
FOR i :=1 TO 5 DO
Робот.РедактСтену(0);
Робот.Вниз
END;
END забор;
И как эту обстановку сохранить?

Теперь возникает вопрос, а если я сразу создаю несколько обстановок для Робота нельзя ли чтобы все Роботы выполняли один алгоритм на разных полях?

Автор:  Илья Ермаков [ Пятница, 31 Август, 2007 13:54 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Ааа, Вы используете Робота через модуль... Тогда и правда упущение - непонятно, как сохранять обстановку. Предполагается использование в области задач, когда поле робота уже лежит в документе и сохраняется вместе с ним.

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

По поводу нескольких роботов - накидайте в область задач, раздайте имена - и командуйте в ООП-стиле: ИмяРобота.Впёрёд. Либо, если один алгоритм без ООП стиля - то накидайте несколько роботов в поле задач, но всех неактивных сворачивайте во вкладки. Алгоритм будет применён к тому, который видим.

Автор:  Pavel [ Пятница, 31 Август, 2007 14:40 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

С вкладками это хорошая идея. Спасибо.
А без модуля очень трудно, мне, редактировать и отлаживать алгоритмы построения стенок. Если поставить метку и начинать от неё что-то строить, то через раз строим и удаляем стенки. Каждый раз удалять и добавлять Робота - не выход. Или я мало знаю :(

Автор:  Илья Ермаков [ Пятница, 31 Август, 2007 14:53 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Стоп, чего-то мы друг друга не допонимаем...

Я предлагаю такую схему.
Есть документ, в нём создана область задач. В область задач положен исполнитель Робот. Он там лежит. Постоянно.
Рядом пишется процедура СоздатьОбстановку, которая размечает поле Робота нужным образом (один раз).
Эта разметка будет сохраняться вместе с документом. И пишется процедура решения задачи, которая по размеченному полю гоняет робота...

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

Автор:  Pavel [ Пятница, 31 Август, 2007 15:04 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Вот и я про это, что не получается не совсем готовый алгоритм применить, если в области задач находиться Робот. Он или строит стену или только что построенную удаляет. Но мы друг друга поняли. :lol: Спасибо.
И одно предложение. Комаду "Закласить" изменить и применять цвета. Отрицательную температуру закрасим одним цветом, проложительную - другим, а с радиацией третьим. :?

Автор:  Илья Ермаков [ Пятница, 31 Август, 2007 15:42 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Ага, идея!

И получим почву для отработки алгоритмической схемы "полный проход с классификацией" :-) :-)

Автор:  Илья Ермаков [ Пятница, 31 Август, 2007 15:44 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Неплохо бы под Lab электронное интерактивное пособие по алгоритмике сделать.
Для начала хотя бы загнать разметки Робота из Кушниренки.

Автор:  Valery Solovey [ Вторник, 04 Сентябрь, 2007 21:14 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Pavel писал(а):
...И как эту обстановку сохранить?
Если это не противоречит задаче, то обстановку можно задать в области инициализации модуля. Соответственно, при запуске она будет воспроизводиться.

По поводу "не":
Я так понимаю, что вариант "не(КлеткаЗакрашена())" не подходит?

Автор:  Pavel [ Среда, 05 Сентябрь, 2007 08:56 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Очень приятно видеть земляков на форуме.
Про сохранение обстановок. Было желание создать файлы обстановок, как в КуМир’е или в нашем «Инис Софт’оском» ИнтАл’е и предлагать их ученикам на определенных этапах изучения Робота. С обстановками в области задач все понятно. Не понятно как работать со следующей задачей:
На поле Робота строго под клеткой с меткой находится клетка с повышенной радиацией. Создайте вокруг данной клетки стену (саркофаг).
Пояснение. Клетка с меткой одна. Робот находиться не на метке. Робот не должен быть закрыт стенкой.
Обстановка создана и сохранена в файле. Ученик открывает файл и пишет алгоритм.

IMPORT LabStdRu;
PROCEDURE Саркофаг*;
BEGIN
НаИсходную;
WHILE Радиация()=0 DO
Вниз
END;
Редакт;
РедактСтену(0); РедактСтену(1); РедактСтену(2);
Вниз; РедактСтену(1);
END Саркофаг;

Выполняем процедуру. Все отлично работает.
Попробуйте теперь выполнить этот алгоритм еще раз.
Не получается? Робот разбился об стену.
Обстановка должна быть НОВАЯ. Необходимо быстренько на всех ученических компьютерах обновить обстановку или создать новую удалив старую обстановку.
Отсюда все поиски как это быстро и качественно сделать.

Автор:  Илья Ермаков [ Среда, 05 Сентябрь, 2007 09:28 ]
Заголовок сообщения:  Re: Алгоритмическая лаборатория BlackBox Lab

Буду готовить очередную версию с дополнениями.
У меня список дополнений такой:
1) Очистка поля робота
2) Процедура загрузки и сохранения поля
робота
3) Разноцветная закраска
4) Таблица цветов

Что там ещё треба? :-)

Страница 1 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/