> -- А.П. писал(а):
> Вот в ИТМО занимаются:"При изучении алгоритмов обработки информации, представляемой различными структурами данных, [1, 2] важную роль играют визуализаторы алгоритмов, позволяющие в наглядной форме динамически отображать детали их работы. ...Визуализатор это программа, в процессе работы которой на экране компьютера динамически демонстрируется применение алгоритма к выбранному набору данных. Визуализаторы позволяют изучать работу алгоритмов в пошаговом режиме, аналогичном режиму трассировки программ. Они при необходимости допускают трассировку укрупненными шагами, игнорируя рутинную часть вычислительного процесса, что существенно, например, для переборных алгоритмов. "На кафедре дискретной математики ИТМО студентами реализовано порядка 200 визуализаторов.
Должен сказать, что для написания визуализаторов в таком количестве и с необходимым качеством нужно:
- либо нехилые средства автоматизации
- либо единый формализм для единообразной реадизации. В ИТМО имеем второе, так ка Шалыто дает писать курсачи на базе своего автоматного программирования.
У меня был коллективный дипломный проект "Графы". Делали втроем. И там я тоже им одной из задач поставил визуализацию алгоритмов на графах. Для этого сначала подкинудл идею внутреннего языка программирования. Народ (втроем) разработал язык, реализовал интерпретатор и на этом интерпретаторе написали несколько примеров. Вдобавок, озвучили все это. То есть: в окне на графе показывается прохождение алгоритма, в окне рядом течет текст,  и попугай Кеша рядом все это вслух озвучивает. Диполом, конеячно, собрал несколько призов на конференциях. Но студеты ушли, и дело остановилось. И так каждый раз.
> -- Цитата:
> Авторы рассуждают о наглядном представлении сложных алгоритмов студентам. Я же веду речь о том же самом, только насчет базовых конструкций и для школьников. Например, переменные целого типа. Что это? Какие операции выполняет с ними процессор? Сколько места занимают? Как выглядят отрицательные числа? Почему удобен для вычислений именно дополнительный код? Что происходит при переполнении? Что значит переменной присвоить значение? А если в "знак" присваивания в середине вставить пробел, что сообщит транслятор?Уверяю Вас, приходящие ко мне студенты 1 курса (начинающие) ни на один из этих вопросов ответить не могут.
А должны? ИМХО только школьники, специально изучающие программирование, могут это знать. А в обычной школе - зачем такие глубины? Там пользователей надо грамотных делать.
> -- Цитата:
> И даже к концу первого семестра не всё из этого знают.А начинаем работу с одномерными массивами? Стабильно путают индекс со значением, не поимают, что процессор "не видит" более двух элементов массива одновременно, не представляют, как вставить или удалить в/из середины массива элемент и т.д. и т.п.
Дык не учат же их этому! Я вот думаю: мож начать учить с программирования в командах? Нас так в универе учили. При этом я компьютер вообще первый раз увидел! И неплохо ведь научили. Во всяком случае, все мои одногруппники с программированием проблем не испытывали.
> -- Цитата:
> В визуализаторе должны быть формальное определение, вид объекта, описание поведения, ограничения, примеры с возможностью ввода данных и/или параметров, показ изменений переменных при пошаговом исполнении... Короче, визуализатор - это маленький интерактивный учебник по определенной теме/параграфу...На мой взгляд, два-три десятка визуализаторов - каждый на свою тему/объект/конструкцию/прием - могут составить в совокупности удобную занимательную учебную среду, осваивать которую многим начанающим будет гораздо интереснее и комфортнее, нежели читать формальные определения и продираться через собственные ошибки и непонятную диагностику. Уверенно начать работать с первым визуализатором можно уже через несколько минут и вводных фраз учителя. Объединив гиперссылками визуализаторы между собой и с примерами алгоритмов на разные темы, мы получим настоящий электронный самоучитель, а не электронную форму бумажных текстов.
Средства автоматической реализации нужно для этого. Вручную каждый раз писать визуализатор - никакой жизни не хватит.
> -- Цитата:
> Правда, пока не могу показать Вам ни один свой визуализатор, так как есть только несколько набросков .
Вот-вот. О чем я и говорю. Разработка визуализаторов в массовом порядке возможна только либо при формализации, а следовательно - при автоматизации.