О жестокости преподавания информатики
« О жестокости преподавания информатики » — научная статья опубликованная в 1988 году. Э. У. Дейкстры, [1] что компьютерное программирование следует понимать как раздел математики и что формальная доказуемость программы который утверждает , является основным критерием правильности.
Несмотря на название, большая часть статьи посвящена попытке Дейкстры представить информатику в более широкой перспективе внутри науки , а преподавание рассматривается как следствие в конце.В частности, Дейкстра сделал «предложение о вводном курсе программирования для первокурсников», котороепредставляла собой логику Хоара как неинтерпретируемую формальную систему .
Споры о целесообразности
[ редактировать ]С момента появления термина «программная инженерия» формальная проверка почти всегда считалась слишком ресурсоемкой, чтобы ее можно было осуществить. [ нужна ссылка ] В сложных приложениях сложность правильного указания того, что программа должна делать в первую очередь, также является распространенным источником ошибок. Другие методы тестирования программного обеспечения обычно используются, чтобы попытаться устранить ошибки , и при измерении качества программного обеспечения учитываются многие другие факторы .
До конца своей жизни Дейкстра утверждал, что основные проблемы вычислений не были решены к его удовлетворению из-за недостаточного внимания к правильности программы (хотя и не исключая других требований, таких как ремонтопригодность и эффективность ). [2]
Педагогическое наследие
[ редактировать ]Компьютерные науки в том виде, в котором они преподаются сегодня, не следуют всем советам Дейкстры. В учебных программах обычно особое внимание уделяется методам управления сложностью и подготовке к будущим изменениям, как это следует из более ранних работ Дейкстры. К ним относятся абстракция , программирование по контракту и шаблоны проектирования . Методы программирования, позволяющие избежать ошибок, и традиционные методы тестирования программного обеспечения преподаются в качестве основных требований, а учащиеся знакомятся с определенными математическими инструментами, но формальные методы проверки не включены в учебную программу, за исключением, возможно, дополнительной темы. [3] Так что в некотором смысле идеи Дейкстры были соблюдены; однако идеи, которые он чувствовал наиболее сильно, так и не были реализованы.
Недавно сформированные учебные программы по разработке программного обеспечения приняли рекомендации Дейкстры. Целью этих программ является формальная спецификация требований к программному обеспечению и дизайну, чтобы облегчить формальную проверку правильности системы. В Канаде они часто имеют аккредитованные инженерные степени со схожими основными компетенциями в области физической инженерии. [4]
Ссылки
[ редактировать ]- ^ Дейкстра, Эдсгер В. О жестокости реального преподавания информатики (EWD-1036) (PDF) . Архив Э. В. Дейкстры. Центр американской истории Техасского университета в Остине . ( транскрипция )
- ^ Дейкстра, Эдсгер В. Конец информатики? (EWD-1304) (PDF) . Архив Э. В. Дейкстры. Центр американской истории Техасского университета в Остине . ( транскрипция )
- ^ Курсы Массачусетского технологического института:
- Эрик Гримсон, Питер Шоловиц и Тревор Даррелл. 6.001 Структура и интерпретация компьютерных программ . Весна 2005 г. Массачусетский технологический институт: MIT OpenCourseWare, https://ocw.mit.edu . Лицензия: Creative Commons BY-NC-SA .
- Роберт Моррис и Сэмюэл Мэдден. 6.033 Инженерия компьютерных систем . Весна 2009 г. Массачусетский технологический институт: MIT OpenCourseWare, https://ocw.mit.edu . Лицензия: Creative Commons BY-NC-SA .
- Ронитт Рубинфельд и Альберт Мейер. 6.042J Математика для информатики . Осень 2005 г. Массачусетский технологический институт: MIT OpenCourseWare, https://ocw.mit.edu . Лицензия: Creative Commons BY-NC-SA .
- Дэниел Джексон. 6.170 Студия программного обеспечения. Весна 2013 года . Массачусетский технологический институт: MIT OpenCourseWare, https://ocw.mit.edu . Лицензия: Creative Commons BY-NC-SA .
- ^ « Программы по разработке программного обеспечения не являются программами по информатике » (PDF) . Архивировано из оригинала (PDF) 27 сентября 2013 г. Проверено 30 октября 2012 г.