Виртуальная лаборатория для первоначального обучения проектированию программ Н. Н. Красильников, В. Г. Парфенов, Ф. Н. Царев, А. А. Шалыто Кафедра компьютерных технологий Санкт-Петербургского государственного университета информационных технологий, механики и оптики
2 Введение Обучение проектированию программ сегодня Автоматный подход для обучения проектированию программ Используется на кафедре несколько лет Документация и проекты публикуются на сайте
3 План Виртуальная лаборатория для обучения проектированию программ Текстовый язык автоматного программирования Пример – задача об «умном муравье»
4 Предлагается создать программные модули для управления различными сущностями Описание Граф переходов Текст программы Виртуальная лаборатория
5 Текстовый язык автоматного программирования automata Auto { state s0 { on e0 if(a) do {g}; on e0 if(!a) do {tr} go to s3; } state s1 { on e0 if(a) do {g}; on e0 if(!a) do {g} go to s0; } …. }
6 Состав виртуальной лаборатории Редактор кода Компилятор Набор заданий
7 Задача об «умном муравье» Поле 32x32 клетки 89 яблок 200 ходов Пример
8 Рассматриваемая задача может быть решена с помощью автомата с семью состояниями Решение
9 Реализация automata Auto4 { state s0 { on e0 if(a) do {g} go to s4; on e0 if(!a) do {tr} go to s2; } state s1 { on e0 if(a) do {g} go to s3; on e0 if(!a) do {g} go to s0; } state s2 { on e0 if(a) do {g} go to s6; on e0 if(!a) do {tr} go to s4; } state s3 { on e0 if(a) do {g} go to s4; on e0 if(!a) do {g} go to s1; } state s4 { on e0 if(a) do {g} go to s1; on e0 if(!a) do {tr} go to s5; } state s5 { on e0 if(a) do {g} go to s6; on e0 if(!a) do {tl} go to s1; } state s6 { on e0 if(a) do {g} go to s1; on e0 if(!a) do {g} go to s3; }
10 Результат
11 Заключение Авторы надеются, что предложенный подход к начальному обучению проектированию программ окажется полезным, совмещая в себе увлекательность и интерактивность Состав задач в лаборатории пополняется и будет пополняться в дальнейшем
12 Спасибо за внимание