Об обучении программированию [4]
Jan. 20th, 2008 10:55 pmА вот более формализованное и расширенное описание того тезиса, с которого началась данная тема.
Сложность - основная проблема программирования; связана с самой его природой; можно надеяться на её понижение для освоенных классов задач... Первый источник сложности в программировании - так называемый семантический разрыв - разрыв между уровнем и характером элементарных объектов и операций, с одной стороны, и потенциально возможных услуг - с другой. Иными словами, это проблема согласования масштаба - ювелирными инструментами предлагается сооружать города... Занимаясь определённым классом услуг (задач) , можно стремиться выделить характерный именно для этого класса набор элементарных объектов и операций, построить соответствующий исполнитель (аппаратным или программным способом) и программировать на таком более подходящем исполнителе. Фактически это означает создать адекватный выбранному классу услуг язык программирования. На практике это самый распространённый способ борьбы со сложностью и одновременно основная причина роста проблемно-ориентированных языков... В качестве второго источника сложности в современном программировании следует назвать незнание компьютером реального мира. Лишённый необходимых знаний, компьютер не может не только скорректировать неточно указанные в программе действия, но и проинформировать об отклонениях от направления на цель работы. Традиционное для компьютеров управление посредством указания действий, а не целей требует учета мельчайших нюансов всех обстоятельств, в которых может оказаться исполнитель в процессе предоставления нужной услуги...
Важнейшим средством борьбы с семантическим разрывом служит аппарат абстракции-конкретизации, имеющийся в том или ином виде в любом языке программирования... Важнейшим средством борьбы с незнанием реального мира служит аппарат прогнозирования-контроля...
(источник)
Интересно получается - с одной стороны, интерес к подобной тематике достаточно явно коррелирует с лагерем "противников" текущего мэйнстрима сред исполнения и языков разработки. В то же время противоположная группа - "практики" ведут себя как викинги или янычары классического периода: забирая людей, они не только ничего не дают в теоретическом плане, но и наоборот - уничтожают рассадники всего, что непохоже на святую троицу современной практики C++/Java/C#.
Тотальное сужение кругозора обучаемых за счёт концентрации на мэйнстриме - фактор, который должен оказывать очень существенное отрицательное влияние на уровень обучения.
Сложность - основная проблема программирования; связана с самой его природой; можно надеяться на её понижение для освоенных классов задач... Первый источник сложности в программировании - так называемый семантический разрыв - разрыв между уровнем и характером элементарных объектов и операций, с одной стороны, и потенциально возможных услуг - с другой. Иными словами, это проблема согласования масштаба - ювелирными инструментами предлагается сооружать города... Занимаясь определённым классом услуг (задач) , можно стремиться выделить характерный именно для этого класса набор элементарных объектов и операций, построить соответствующий исполнитель (аппаратным или программным способом) и программировать на таком более подходящем исполнителе. Фактически это означает создать адекватный выбранному классу услуг язык программирования. На практике это самый распространённый способ борьбы со сложностью и одновременно основная причина роста проблемно-ориентированных языков... В качестве второго источника сложности в современном программировании следует назвать незнание компьютером реального мира. Лишённый необходимых знаний, компьютер не может не только скорректировать неточно указанные в программе действия, но и проинформировать об отклонениях от направления на цель работы. Традиционное для компьютеров управление посредством указания действий, а не целей требует учета мельчайших нюансов всех обстоятельств, в которых может оказаться исполнитель в процессе предоставления нужной услуги...
Важнейшим средством борьбы с семантическим разрывом служит аппарат абстракции-конкретизации, имеющийся в том или ином виде в любом языке программирования... Важнейшим средством борьбы с незнанием реального мира служит аппарат прогнозирования-контроля...
(источник)
Интересно получается - с одной стороны, интерес к подобной тематике достаточно явно коррелирует с лагерем "противников" текущего мэйнстрима сред исполнения и языков разработки. В то же время противоположная группа - "практики" ведут себя как викинги или янычары классического периода: забирая людей, они не только ничего не дают в теоретическом плане, но и наоборот - уничтожают рассадники всего, что непохоже на святую троицу современной практики C++/Java/C#.
Тотальное сужение кругозора обучаемых за счёт концентрации на мэйнстриме - фактор, который должен оказывать очень существенное отрицательное влияние на уровень обучения.
no subject
Date: 2008-01-28 07:14 am (UTC)Первая ничего не слышит, вторая ничего не видит, третья ничего никому не скажет.
> Також, я абсолютно не розумію, як зміни в мейнстрімі приведуть до того, що молоді кадри стануть більш боєготовими. Поясни, плс.
Ещё раз пояснить? Использование более грамотно продуманных средств приведёт к расширению обучения им, а это в свою очередь - использованию сразу более адекватных методов обучения.
no subject
Date: 2008-03-07 01:33 am (UTC)