Сергей Прохоренко писал(а):
Рад, что есть единомышленники. К сожалению, на этом форуме процентов 80 участников думают, что программист должен работать с текстом (оценка 80% грубая, никаких опросов не было). Единственное, в чем они отклоняются от своего догмата - это любовь к "Дракону", навеянная теплыми воспоминаниями о космической программе "Буран", военно-промышленном комплексе и былом могуществе державы.
Но "Дракон", конечно, совсем не то, прошлый век.
Да, и еще они с гордостью называют гипертекст красивым словом "активный объект", то есть ощущают необходимость гиперссылок в коде программы.
По поводу Дракона у меня очень большие сомнения. Во-первых, в начале 80-х уже была такая работа. Называлась RTK-комплекс (
исправлено). Там тоже был разработан специальные язык представления программы в виде графа.
Автор был Вельбицкий. Книжка даже была выпущена. Но продолжения не было - наверное, это была его докторская.
Во-вторых, так ли уж нужно графическое представление при разработке? Ведь апологеты экстремального программирования и рефакторинга постоянно напоминают нам, что программа пишется маленькими шажочками. Буквально по одному оператору добавляется. Да и собственный опыт говорит о том же: напиши пустую функцию, проверь правильность вызова. Напиши пару операторов в функции - проверь. Таким образом, функциональные единицы всегда обозримы и без графического представления. При таком подходе графическое представление только мешает.
Во если мы уже имеем большую и сложную программу и хотим обозреть ее, так сказать, сверху - тогда да. Особенно это полезно при сопровождении новому программисту. В большом тексте сложнее разбираться, чем в большой картинке.
Сергей Прохоренко писал(а):
Мне кажется, что уровни выше модуля нужны и для обучения - по следующим причинам:
1. Имеет смысл обучать сразу правильной технологии работы:
1.1 Проектирование модели сверху вниз с разбиением на модули по функционалу, используемым ресурсам и степени зависимости от той или иной платформы
1.2 Помодульная отладка с локализацией ошибок
1.3 Работа с библиотеками, поиск и использование готовых компонентов вместо изобретения велосипеда
1.4 Создание и оформление компонентов для многократного использования в других проектах и на продажу
С этим я практически согласен. Только вот слово "правильная технология" - это большой вопарос...
Сергей Прохоренко писал(а):
(Хотя я встречался на этом форуме с мнением, что главное в обучении программированию - это решение всякого рода ребусов с помощью изощренных циклов, но я так не считаю.)
Не... Дейкстра - это не изощренный цикл. Это просто цикл, который
выводится на основании постусловия и слабейшего предусловия. Согласен с тем, что разработка - это не только циклы. Оберонцы правы в том, что цикл - это практически основной кирпичик всех алгоритмов. Если циклы будут написаны правильно (выведены), то отладки практически не потребуется.
Сергей Прохоренко писал(а):
2. Обучаемому может быть тяжело без поддержки верхних уровней модели системой программирования:
2.1 По мере обучения кавардак из собственных модулей может стать существенной помехой, как и отсутствие удобных средств работы с библиотеками
2.2 Сборка программы из модулей (собственных или библиотечных), зависимых друг от друга по цепочке, может стать довольно сложной задачей
2.3 Целостность программы может быть легко нарушена, если в одни модули вносятся исправления (даже переименования!) без учета других, а средства автоматического поддержания целостности отсутствуют
С этим я тоже согласен. Просто мы тут озабочены автоматизацией самого начального обучения программированию первокурсников. Для начала достаточно иметь одномодульные проги.
Но помимо редактора обучающая среда еще много чего должна содержать. Хотя бы интеллектуальную систему оценивания выполненной работы.