ailev.ru

12 февраля 2007 · Комментарий

Без заголовка

Работа с исключениями - это не просто альтернативное будущее (в Компьютерре по ссылке говорится про многовариантное будущее - то же самое), это способность собрать (в голове или на бумаге) исчерпывающий набор вариантов. Здесь важна именно полнота набора - в том смысле, в каком она употребляется в теории вероятностей, комбинаторике - полное пространство исходов. Нужно представить себе все варианты, которые могут случиться, закрыть все дырки, все предусмотреть. С этой точки зрения, когда я говорю, что в школьной математике всего этого нет, я не совсем прав - комбинаторика в старших классах чуть-чуть есть. Исключительные ситуации - это, как раз, и есть те вариации основного потока действий, которые составляют сущность алгоритма. Алгоритмическое мышление = обработка исключительных ситуаций в design time, "обычное" - обработка их в run time. Выкладывать на бумагу последовательно - это вообще тут ни при чем. Никто не пишет программы (алгоритмы, инструкции) в той последовательности, в которой они остаются в результате на бумаге. Все равно выписывается какая-то часть последовательности, затем продумываются исключения, и их проверка/обработка вставляется в соответствующее место в этой последовательности. Т.е., код придумывается не в той последовательности, в которой написан на бумаге/в файле (и уж, понятно, не в последовательности исполнения) Разница в терминологии действительно есть. В школе достаточно часто учат именно программировать, т.е., писать программы на языках программирования за компьютером. Отсюда происходит маргинализация учебного предмета, поскольку навыков мышления не дают, и дети не схватывают базовые конструкции, происходит отторжение. Поэтому я хочу разделить в терминологии обучение программированию (написанию программ для компьютера) и обучение мышлению. Первое не нужно почти никому, второе нужно почти всем.

К записи · К обсуждению