О жестокости реального преподавания информатики - On the Cruelty of Really Teaching Computer Science

О жестокости реального преподавания информатики»- это статья 1988 г. Э. В. Дейкстра[1] который утверждает, что компьютерное программирование следует понимать как ответвление математика, и что формальный доказуемость из программа это главный критерий правильности.

Несмотря на название, большая часть статьи посвящена попытке Дейкстры поставить Информатика в более широкую перспективу внутри наука, обучение рассматривается как следствие В частности, Дейкстра сделал «предложение о вводном курсе программирования для первокурсников», которое состояло из Логика Хоара как непонятый формальная система.

Споры по поводу осуществимости

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

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

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

Информатика, как ее преподают сегодня, не следует все совета Дейкстры. В учебных планах обычно делается упор на методы управления сложностью и подготовки к будущим изменениям, следуя более ранним работам Дейкстры. Они включают абстракция, программирование по контракту, и шаблоны проектирования. Приемы программирования, позволяющие избежать ошибок, и традиционные методы тестирования программного обеспечения преподаются в качестве основных требований, а студенты знакомятся с определенными математическими инструментами, но формальные методы проверки не включены в учебный план, за исключением, возможно, продвинутой темы.[3] Так что в некотором смысле идеи Дейкстры были соблюдены; однако те идеи, которые он испытывал больше всего, не совпадали.

В недавно сформированных учебных программах по программной инженерии были приняты рекомендации Дейкстры. Основное внимание в этих программах уделяется формальной спецификации требований к программному обеспечению и дизайну, чтобы облегчить формальную проверку правильности системы. В Канаде они часто имеют аккредитованные инженерные степени со схожими ключевыми компетенциями в области инженерной физики.[4]

использованная литература

  1. ^ Дейкстра, Эдсгер В. О жестокости реального преподавания информатики (EWD-1036) (PDF). Архив Э.В. Дейкстры. Центр американской истории, Техасский университет в Остине. (транскрипция )
  2. ^ Дейкстра, Эдсгер В. Конец вычислительной науки? (EWD-1304) (PDF). Архив Э.В. Дейкстры. Центр американской истории, Техасский университет в Остине. (транскрипция )
  3. ^ Курсы MIT:
  4. ^ "Программы программной инженерии - это не программы по информатике" (PDF). Архивировано из оригинал (PDF) на 2013-09-27. Получено 2012-10-30.