Dijkstra. “On the cruelty of really teaching computing science”

Aug 27, 2012 15:22

Опубликован перевод заметки Дейкстры «О суровости зим в Челябинской области» («On the cruelty of really teaching computing science», EWD1036).

Когда я переводил, то падал под стол и колотил пятками в крышку. :) Вот цитата, чтобы разогреть интерес:
Поэтому, когда я высматриваю в своём хрустальном шаре смутное будущее информатики, я вижу одну и ту же печальную надпись: «Бизнес, как всегда». Университетам не хватает храбрости учить точным наукам, они продолжают вести студентов в тупик, и каждую новую инфантилизацию учебной программы приветствуют криками «Слава прогрессу!»

У меня есть что добавить на тему «множество и его элементы». Когда вы изучаете вектора, на первых порах вы манипулируете ими примерно так: k·(x_0, x_1, x_2, x_3, x_4) = (k·x_0, k·x_1, k·x_2, k·x_3, k·x_4). Вектора бывают разной длины, поэтому надо написать аналогичную формулу для всех длин. Конечно, количество длин бесконечное, но мы можем ограничиться только теми, которые нам понадобятся для прикладных задач. Манипулирование матрицами требует ещё большего количества писанины. Я называю эту писанину «полотнища». То же верно для последовательностей (ℕ→X), только выписать последний элемент последовательности ну никак не получается. :) Здравый смысл намекает, что эту рутинную писанину можно как-то сократить и что человек, который выписывает все элементы для всех длин, выглядит как конченый придурок. От усталости и стыда вы бросаете писать приблизительно на втором элементе: f(x_0, x_1, …, x_n). Для матриц правила каллиграфии немного более сложны, и многоточия должны быть прочерчены во многих направлениях, как полосы на британском флаге. Следующий барьер, который вы должны взять, - это не перечислять элементы. Вектор - это 1-местная функция с конечным доменом, матрица - это 2-местная функция с конечными доменами. Надо выполнять операции над этими функциями, а не над элементами векторов и матриц. Умножение матриц записывается Σ(j↦a_1(i1, j) · a_0(j, i0)). Подпоследовательность последовательности x записывается x∘s, где s - изотонная инъекция. Это уменьшает количество писанины и делает доказательство более строгим. Похоже, даже авторам учебников трудно взять этот барьер.

Я прошу помощи с переводом. В конце статьи есть фраза, смысл которой я не понял: «…The problems of the real world are primarily those you are left with when you refuse to apply their effective solutions.».

computer science, dijkstra

Previous post Next post
Up