Введение

Статья 1988 года Э. В. Дайкстры "О жестокости настоящего обучения информатике" – научная статья 1988 года Э. В. Дайкстры, в которой утверждается, что компьютерное программирование следует понимать как область математики, и что формальная доказуемость программы является важнейшим критерием корректности. Вопреки названию, основная часть статьи посвящена попытке Дайкстры взглянуть на информатику в более широком научном контексте, а вопросы преподавания рассматриваются лишь в качестве следствия в конце. В частности, Дайкстра предложил "проект вводного курса программирования для первокурсников", основанный на логике Хоара как неинтерпретированной формальной системе.

Дебаты о целесообразности

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

Педагогическое наследие

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