Аннотация: Лекция носит факультативный характер. Здесь мы рассматриваем виды допускаемых в программировании ошибок, способы тестирования и отладки программ, инструменты встроенного отладчика.
Цель лекции
Освоить работу с встроенным отладчиком, изучить категории ошибок, способы их обнаружения и устранения.
Тестирование и отладка программы
Чем больше опыта имеет программист, тем меньше ошибок в коде он совершает. Но, хотите верьте, хотите нет, даже самый опытный программист всё же допускает ошибки. И любая современная среда разработки программ должна иметь собственные инструменты для отладки приложений, а также для своевременного обнаружения и исправления возможных ошибок. Программные ошибки на программистском сленге называют багами (англ. bug — жук), а программы отладки кода — дебаггерами (англ. debugger — отладчик). Lazarus, как современная среда разработки приложений, имеет собственный встроенный отладчик, работу с которым мы разберем на этой лекции.
Ошибки, которые может допустить программист, условно делятся на три группы:
- Синтаксические
- Времени выполнения (run-time errors)
- Алгоритмические
Синтаксические ошибки
Синтаксические ошибки легче всего обнаружить и исправить — их обнаруживает компилятор, не давая скомпилировать и запустить программу. Причем компилятор устанавливает курсор на ошибку, или после неё, а в окне сообщений выводит соответствующее сообщение, например, такое:
Рис.
27.1.
Найденная компилятором синтаксическая ошибка — нет объявления переменной i
Подобные ошибки могут возникнуть при неправильном написании директивы или имени функции (процедуры); при попытке обратиться к переменной или константе, которую не объявляли (
рис.
27.1); при попытке вызвать функцию (процедуру, переменную, константу) из модуля, который не был подключен в разделе uses; при других аналогичных недосмотрах программиста.
Как уже говорилось, компилятор при нахождении подобной ошибки приостанавливает процесс компиляции, выводит сообщение о найденной ошибке и устанавливает курсор на допущенную ошибку, или после неё. Программисту остается только внести исправления в код программы и выполнить повторную компиляцию.
Ошибки времени выполнения
Ошибки времени выполнения (run-time errors) тоже, как правило, легко устранимы. Они обычно проявляются уже при первых запусках программы, или во время тестирования. Если такую программу запустить из среды Lazarus, то она скомпилируется, но при попытке загрузки, или в момент совершения ошибки, приостановит свою работу, выведя на экран соответствующее сообщение. Например, такое:
Рис.
27.2.
Сообщение Lazarus об ошибке времени выполнения
В данном случае программа при загрузке должна была считать в память отсутствующий текстовый файл MyFile.txt. Поскольку программа вызвала ошибку, она не запустилась, но в среде Lazarus процесс отладки продолжается, о чем свидетельствует сообщение в скобках в заголовке главного меню, после названия проекта. Программисту в подобных случаях нужно сбросить отладчик командой меню «Запуск -> Сбросить отладчик«, после чего можно продолжить работу над проектом.
Ошибка времени выполнения может возникнуть не только при загрузке программы, но и во время её работы. Например, если бы попытка чтения несуществующего файла была сделана не при загрузке программы, а при нажатии на кнопку, то программа бы нормально запустилась и работала, пока пользователь не нажмет на эту кнопку.
Если программу запустить из самой Windows, при возникновении этой ошибки появится такое же сообщение. При этом если нажать «OK«, программа даже может запуститься, но корректно работать все равно не будет.
Ошибки времени выполнения бывают не только явными, но и неявными, при которых программа продолжает свою работу, не выводя никаких сообщений, а программист даже не догадывается о наличии ошибки. Примером неявной ошибки может служить так называемая утечка памяти. Утечка памяти возникает в случаях, когда программист забывает освободить выделенную под объект память. Например, мы объявляем переменную типа TStringList, и работаем с ней:
begin MySL:= TStringList.Create; MySL.Add('Новая строка'); end;
В данном примере программист допустил типичную для начинающих ошибку — не освободил класс TStringList. Это не приведет к сбою или аварийному завершению программы, но в итоге можно бесполезно израсходовать очень много памяти. Конечно, эта память будет освобождена после выгрузки программы (за этим следит операционная система), но утечка памяти во время выполнения программы тоже может привести к неприятным последствиям, потребляя все больше и больше ресурсов и излишне нагружая процессор. В подобных случаях после работы с объектом программисту нужно не забывать освобождать память:
begin MySL:= TStringList.Create; MySL.Add('Новая строка'); ...; //работа с объектом MySL.Free; //освободили объект end;
Однако ошибки времени выполнения могут случиться и во время работы с объектом. Если есть такой риск, программист должен не забывать про возможность обработки исключительных ситуаций. В данном случае вышеприведенный код правильней будет оформить таким образом:
begin try MySL:= TStringList.Create; MySL.Add('Новая строка'); ...; //работа с объектом finally MySL.Free; //освободили объект, даже если была ошибка end; end;
Итак, во избежание ошибок времени выполнения программист должен не забывать делать проверку на правильность ввода пользователем допустимых значений, заключать опасный код в блоки try…finally…end или try…except…end, делать проверку на существование открываемого файла функцией FileExists и вообще соблюдать предусмотрительность во всех слабых местах программы. Не полагайтесь на пользователя, ведь недаром говорят, что если в программе можно допустить ошибку, пользователь эту возможность непременно найдет.
Алгоритмические ошибки
Если вы не допустили ни синтаксических ошибок, ни ошибок времени выполнения, программа скомпилировалась, запустилась и работает нормально, то это еще не означает, что в программе нет ошибок. Убедиться в этом можно только в процессе её тестирования.
Тестирование — процесс проверки работоспособности программы путем ввода в неё различных, даже намеренно ошибочных данных, и последующей контрольной проверке выводимого результата.
Если программа работает правильно с одними наборами исходных данных, и неправильно с другими, то это свидетельствует о наличии алгоритмической ошибки. Алгоритмические ошибки иногда называют логическими, обычно они связаны с неверной реализацией алгоритма программы: вместо «+» ошибочно поставили «-«, вместо «/» — «*», вместо деления значения на 0,01 разделили на 0,001 и т.п. Такие ошибки обычно не обнаруживаются во время компиляции, программа нормально запускается, работает, а при анализе выводимого результата выясняется, что он неверный. При этом компилятор не укажет программисту на ошибку — чтобы найти и устранить её, приходится анализировать код, пошагово «прокручивать» его выполнение, следя за результатом. Такой процесс называется отладкой.
Отладка — процесс поиска и устранения ошибок, чаще алгоритмических. Хотя отладчик позволяет справиться и с ошибками времени выполнения, которые не обнаруживаются явно.
Алгоритмическая ошибка
Cтраница 1
Алгоритмические ошибки значительно труднее поддаются обнаружению методами формализованного автоматического контроля, чем предыдущие типы ошибок. К алгоритмическим следует отнести прежде всего ошибки, обусловленные некорректной постановкой функциональных задач, когда в спецификациях не полностью оговорены все условия, необходимые для получения правильного результата. Эти условия формируются и уточняются в значительной части в процессе тестирования и выявления ошибок в результатах функционирования программ. Ошибки, обусловленные неполным учетом всех условий решения задач, являются наиболее частыми в этой группе и составляют до 70 % всех алгоритмических ошибок или около 30 % общего количества ошибок на начальных этапах проектирования.
[1]
Алгоритмические ошибки и ошибки кодирования, связанные с некорректной формулировкой и реализацией алгоритмов программным путем.
[2]
Алгоритмические ошибки значительно труднее поддаются обнаружению методами формального автоматического контроля, чем все предыдущие типы ошибок. Это определяется прежде всего отсутствием для большинства логических управляющих алгоритмов строго формализованной постановки задач, которую можно использовать в качестве эталона для сравнения результатов функционирования разработанных алгоритмов. Разработка управляющих алгоритмов осуществляется обычно при наличии большого количества параметров и в условиях значительной неопределенности самой исходной постановки задачи. Эти условия формируются в значительной части в процессе выявления ошибок по результатам функционирования алгоритмов. Ошибки некорректной постановки задач приводят к сокращению полного перечня маршрутов обработки информации, необходимых для получения всей гаммы числовых и логических решений, или к появлению маршрутов обработки информации, дающих неправильный результат. Таким образом, область получающихся выходных результатов изменяется.
[3]
Алгоритмические ошибки представляют собой ошибки в программной трактовке алгоритма, например недоучет всех вариантов работы алгоритма.
[4]
К алгоритмическим ошибкам следует отнести также ошибки связей модулей и функциональных групп программ.
[5]
К алгоритмическим ошибкам следует отнести также ошибки сопряжения алгоритмических блоков, когда информация, необходимая для функционирования некоторого блока, оказывается неполностью подготовленной блоками, предшествующими по моменту включения. Этот тип ошибок также можно квалифицировать как ошибки некорректной постановки задачи, однако в данном случае некорректность может проявляться при определенной временной последовательности функционирования алгоритмических блоков.
[6]
С алгоритмическими ошибками дело обстоит иначе. Компиляция программы, в которой есть алгоритмическая ошибка, завершается успешно. При пробных запусках программа ведет себя нормально, однако при анализе результата выясняется, что он неверный. Для того чтобы устранить алгоритмическую ошибку, приходится анализировать алгоритм, вручную прокручивать его выполнение.
[8]
Особую часть алгоритмических ошибок составляют просчеты в использовании доступных ресурсов ВС. Одновременная разработка множества модулей различными специалистами затрудняет оптимальное распределение ограниченных ресурсов ЭВМ по всем задачам, так как отсутствуют достоверные данные потребных ресурсов для решения каждой из них. В результате возникает либо недоиспользование, либо ( в подавляющем большинстве случаев) нехватка каких-то ресурсов ЭВМ для решения задач в первоначальном варианте. Наиболее крупные просчеты обычно происходят при оценке времени реализации различных групп программ и при распределении производительности ЭВМ.
[9]
Этот побочный эффект может привести к алгоритмическим ошибкам при работе программы. Для того чтобы избавить программиста от необходимости помнить о таком побочном эффекте, достаточно в начале макрокоманды сохранять, а после выполнения восстанавливать содержимое этих регистров. Для этих целей в СМ ЭВМ обычно используется стек. Необходимо отметить, что в отдельных случаях сохранение регистров не обязательно.
[10]
В предыдущем параграфе был рассмотрен характер формирования алгоритмической ошибки вычислений при отсутствии искажающих воздействий со стороны окружающей среды и вычислительной системы. В реальных условиях на процесс смены состояний АлСУ и ошибку выходных сигналов существенное влияние оказывают искажающие воздействия, которые по отношению к управляющему объекту могут быть как внешними, так и внутренними. Внешние воздействия, источником которых является внешняя ( по отношению к управляющему объекту) среда, связаны с ошибками определения параметров управляемого процесса, отказами и сбоями в работе датчиков информации, каналов связи и преобразующих устройств. Внутренние воздействия, источниками которых являются ЦВМ или комплексы ЦВМ, используемые для реализации алгоритмической системы, обусловлены сбоями, частичными отказами и прерываниями.
[11]
Кроме того, значительные трудности представляет разделение системных и алгоритмических ошибок и выделение доработок, которые не следует квалифицировать как ошибки.
[12]
Однако формула ( 29) позволяет судить о характере формирования алгоритмической ошибки в реальных системах и сделать важный вывод о несостоятельности попыток оценки качества АлСУ всякого рода контрольными просчетами.
[13]
Защита от перегрузки ЭВМ по пропускной способности предполагает обнаружение и снижение влияния последствий алгоритмических ошибок, обусловленных неправильным определением необходимой пропускной способности ЭВМ для работы в реальном времени. Кроме того, перегрузки могут быть следствием неправильного функционирования источников информации и превышения интенсивности потоков сообщений расчетного, нормального, уровня. Последствия обычно сводятся к прекращению решения некоторых функциональных задач, обладающих низким приоритетом.
[14]
В настоящее время структурные методы контроля ориентированы в основном на обнаружение и доказательство отсутствия технологических и некоторых алгоритмических ошибок в записи программ, которые выполняются на этапе программной отладки.
[15]
Страницы:
1
2
3
Типичные ошибки
в программных комплексах.
Статистические характеристики ошибок
могут служить ориентиром для разработчиков
при распределении усилий на создание
программ. Кроме того, характеристики
ошибок в процессе проектирования
программ помогают:
-
оценивать реальное
состояние проекта и планировать
трудоемкость и длительность до его
завершения; -
рассчитывать
необходимую эффективность средств
оперативной защиты от невыявленных
первичных ошибок; -
оценивать
требующиеся ресурсы ЭВМ по памяти и
производительности с учетом затрат на
устранение ошибок; -
проводить
исследования и осуществлять адекватный
выбор показателей сложности компонент
и КП, а также некоторых других показателей
качества.
Анализ первичных
ошибок в программах производится на
двух уровнях детализации:
-
дифференциально
— с учетом
типов ошибок, сложности и степени
автоматизации их обнаружения, затрат
на корректировку и этапов наиболее
вероятного устранения; -
обобщенно —
по суммарным характеристикам их
обнаружения в зависимости от
продолжительности разработки,
эксплуатации и сопровождения комплекса
программ.
Технологические
ошибки
документации и фиксирования программ
в памяти ЭВМ составляют 5…10 % от общего
числа ошибок, обнаруживаемых при отладке
[12]. Большинство технологических ошибок
выявляется автоматически формализованными
методами.
Программные
ошибки по
количеству и типам в первую очередь
определяются степенью автоматизации
программирования и глубиной формализованного
контроля текстов программ. Количество
программных ошибок зависит от квалификации
разработчиков, от общего объема комплекса
программ, от глубины логического и
информационного взаимодействия модулей
и от ряда других факторов. При разработке
программ на автокодах программные
ошибки можно классифицировать по видам
используемых операций на следующие
группы: ошибки типов операций; ошибки
переменных; ошибки управления и циклов.
В комплексе программ
информационно-справочных систем эти
виды ошибок близки по удельному весу,
однако для автоматизации их обнаружений
применяются различные методы. На
начальных этапах разработки и автономной
отладки модулей программные ошибки
составляют около 1/3 всех ошибок. Ошибки
применения операций на начальных этапах
разработки достигают 14 %, а затем быстро
убь-1вают при повышении квалификации
программистов. Ошибки в переменных
составляют около 13 %, а ошибки управления
и организации циклов—около 10 %. Каждая
программная ошибка влечет за собой
необходимость изменения около шести
команд, что существенно меньше, чем при
алгоритмических и системных ошибках.
На этапах комплексной отладки и
эксплуатации удельный вес программных
ошибок падает и составляет около 15 и 3
% соответственно от общего количества
ошибок, выявляемых в единицу времени.
Алгоритмические
ошибки
значительно труднее поддаются обнаружению
методами формализованного автоматического
контроля, чем предыдущие типы ошибок.
К алгоритмическим следует отнести
прежде всего ошибки, обусловленные
некорректной постановкой функциональных
задач, когда в спецификациях не полностью
оговорены все условия, необходимые для
получения правильного результата. Эти
условия формируются и уточняются в
значительной части в процессе тестирования
и выявления ошибок в результатах
функционирования программ. Ошибки,
обусловленные неполным учетом всех
условий решения задач, являются наиболее
частыми в этой группе и составляют до
70 % всех алгоритмических ошибок или
около 30 % общего количества ошибок на
начальных этапах проектирования.
К алгоритмическим
ошибкам следует отнести также ошибки
связей модулей и функциональных групп
программ. Этот вид ошибок составляет
6…8 % от общего количества, их можно
квалифицировать как ошибки некорректной
постановки задач. Алгоритмические
ошибки проявляются в неполном учете
диапазонов изменения переменных, в
неправильной оценке точности используемых
и получаемых величин, в неправильном
учете связи между различными переменными,
в неадекватном представлении
формализованных условий решения задачи
в спецификациях или схемах, подлежащих
программированию, и т. д. Эти обстоятельства
являются причиной того, что для исправления
каждой алгоритмической ошибки приходится
изменять в среднем около 14 команд, т. е.
существенно больше, чем при программных
ошибках.
Особую часть
алгоритмических ошибок составляют
просчеты в использовании доступных
ресурсов ВС. Одновременная разработка
множества модулей различными специалистами
затрудняет оптимальное распределение
ограниченных ресурсов ЭВМ по всем
задачам, так как отсутствуют достоверные
данные потребных ресурсов для решения
каждой из них. В результате возникает
либо недоиспользование, либо (в подавляющем
большинстве случаев) нехватка каких-то
ресурсов ЭВМ для решения задач в
первоначальном варианте. Наиболее
крупные просчеты обычно происходят при
оценке времени реализации различных
групп программ и при распределении
производительности ЭВМ.
Системные ошибки
в сложных комплексах программ определяются
прежде всего неполной информацией о
реальных процессах, происходящих в
источниках и потребителях информации.
Кроме того, эти процессы зачастую зависят
от самих алгоритмов и поэтому не могут
быть достаточно определены и описаны
заранее без исследования функционирования
комплекса программ во взаимодействии
с внешней средой. На начальных стадиях
проектирования не всегда удается точно
сформулировать целевую задачу всей
системы, а также целевые задачи основных
групп программ, и эти задачи уточняются
в процессе проектирования. В соответствии
с этим уточняются и конкретизируются
технические задания или спецификации
на отдельные программы и выявляются
отклонения от уточненного задания,
которые могут квалифицироваться как
системные ошибки.
При автономной и
в начале комплексной отладки доля
системных ошибок невелика (около 10 %),
но она существенно возрастает (до 35…40
%) на завершающих этапах комплексной
отладки. В процессе эксплуатации
системные ошибки являются преобладающими
(около 80 % от всех ошибок). Следует также
отметить большое количество команд,
корректируемых при исправлении каждой
ошибки (около 25 команд на одну ошибку).
Убывание ошибок
в комплексе программ и интенсивности
их обнаружения не беспредельно. После
отладки в течение некоторого времени
интенсивность обнаружения ошибок при
самом активном тестировании снижается
настолько, что коллектив, ведущий
разработку, попадает в зону
нечувствительности к
ошибкам и отказам. При такой интенсивности
отказов трудно прогнозировать затраты
времени, необходимые для обнаружения
очередной ошибки. Создается представление
о полном отсутствии ошибок, о невозможности
и бесцельности их поиска, поэтому усилия
на отладку сокращаются и интенсивность
обнаружения ошибок еще больше снижается.
Этой предельной интенсивности обнаружения
отказов соответствует наработка на
обнаруженную ошибку, при которой
прекращается улучшение характеристик
комплекса программ на этапах отладки
и испытаний у заказчика.
Отладка программ
Введение
Успешное завершение процесса компиляции не означает, что в программе нет ошибок. Убедиться, что программа работает правильно, можно только в процессе проверки ее работоспособности, который называется тестирование. Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свидетельствует о том, что в программе есть алгоритмические ошибки. Процесс поиска и устранения ошибок называется отладкой
Классификация ошибок
Введение
Ошибки, которые могут быть в программе, принято делить на три группы:
- синтаксические;
- ошибки времени выполнения;
- алгоритмические.
Синтаксические ошибки
Синтаксические ошибки, их также называют ошибками времени компиляции (Compile-time error), наиболее легко устранимы. Их обнаруживает компилятор, а программисту остается внести изменения в текст программы и выполнить повторную компиляцию.
Ошибки времени выполнения
Ошибки времени выполнения, они называются исключениями (Exception), тоже, как правило, легко устранимы. Они обычно проявляются уже при первых запусках программы и во время тестирования
При возникновении ошибки в программе, запущенной из ИСР, среда прерывает работу программы и в окне сообщений дает информацию о типе ошибки.
После возникновения ошибки программист может либо прервать выполнение программы, либо продолжить ее выполнение, например, по шагам, наблюдая результат выполнения каждой инструкции.
Если программа запущена из Windows, то при возникновении ошибки на экране также появляется сообщение об ошибке, но тип ошибки (исключения) в сообщении не указывается. После щелчка на кнопке ОК программа, в которой проявилась ошибка, продолжает (если сможет) работу.
Алгоритмические ошибки
С алгоритмическими ошибками дело обстоит иначе. Компиляция программы, в которой есть алгоритмическая ошибка, завершается успешно. При пробных запусках программа ведет себя нормально, однако при анализе результата выясняется, что он неверный. Для того чтобы устранить алгоритмическую ошибку, приходится анализировать алгоритм, вручную “прокручивать” его выполнение.
Предотвращение и обработка ошибок
В программе во время ее работы могут возникать ошибки, причиной которых, как правило, являются действия пользователя. Например, пользователь может ввести неверные данные или, что бывает довольно часто, удалить нужный программе файл. Нарушение в работе программы называется исключением. Обработку исключений (ошибок) берет на себя автоматически добавляемый в выполняемую программу код, который обеспечивает, в том числе, вывод информационного сообщения.
FPC и ИСР предоставляют программисту мощные средства:
- Компилятор с регулируемыми опциями.
Отладчик для поиска и устранения ошибок в программе. Отладчик позволяет выполнять трассировку программы, наблюдать значения переменных, контролировать выводимые программой данные.
Ошибки, которые могут
быть в программе, принято делить на три группы:
- синтаксические;
- ошибки времени выполнения;
- алгоритмические.
Синтаксические ошибки,
их также называют ошибками времени компиляции (Compile-time error), наиболее
легко устранимы. Их обнаруживает компилятор, а программисту остается только
внести изменения в текст программы и выполнить повторную компиляцию.
Ошибки времени выполнения,
в Delphi они называются исключениями (exception), тоже, как правило, легко устранимы.
Они обычно проявляются уже при первых запусках программы и во время тестирования.
При возникновении ошибки
в программе, запущенной из Delphi, среда разработки прерывает работу программы,
о чем свидетельствует заключенное в скобки слово Stopped в заголовке
главного окна Delphi, и на экране появляется диалоговое окно, которое содержит
сообщение об ошибке и информацию о типе (классе) ошибки. На рис. 13.1 приведен
пример сообщения об ошибке, возникающей при попытке открыть несуществующий файл.
После возникновения
ошибки программист может либо прервать выполнение программы, для этого надо
из меню Run выбрать команду Program Reset, либо продолжить ее
выполнение, например, по шагам (для этого из меню
Run надо выбрать команду Step), наблюдая результат выполнения
каждой инструкции.
Рис. 13.1. Сообщение
об ошибке при запуске программы из Delphi
Если программа запущена
из Windows, то при возникновении ошибки на экране также появляется сообщение
об ошибке, но тип ошибки (исключения) в сообщении не указывается (рис. 13.2).
После щелчка на кнопке ОК программа, в которой проявилась ошибка, продолжает
(если сможет) работу.
Рис. 13.2. Сообщение
об ошибке при запуске программы из Windows
С алгоритмическими
ошибками дело обстоит иначе. Компиляция программы, в которой есть алгоритмическая
ошибка, завершается успешно. При пробных запусках программа ведет себя нормально,
однако при анализе результата выясняется, что он неверный. Для того чтобы устранить
алгоритмическую ошибку,» приходится анализировать алгоритм, вручную «прокручивать»
его выполнение.
Ошибки в программировании
Пишет Виталий Каймин, чт, 02/10/2008 — 10:10
Ошибки в Программировании — одна из самых серьезных проблем в профессиональном программировании и преподавании информатики.
Подавляющее число программистов не могут и не умеют разрабатывать программы и программную продукцию без ошибок.
Надежность программ и программных систем до сих пор под большим вопросов, поскольку программисты не могут до конца выявить и выправить ошибки в своих программах.
Современные российские стандарты разработки и проектирования программ не направлены на разработку надежной программной продукции.
Единственным ярким пятном являются российские студенты-программисты,которые систематически более 10 лет побеждают американцев на международных олимпиадах и чемпионатах по программированию, где основным условием побед является разработка программ исключительно без ошибок.
Базовая методика разработки программ без ошибок основана на использовании структурных методов проектирования программ и систематических методах решения на ЭВМ задач по информатике, созданных А.Ершовым и В.Кайминым еще в 80-х годах.
По данным Московского департамента образования в 2008г. половина выпускников московских школ, имевших отличные текущие оценки по математике, не смогли сдать ЕГЭ по математике.
По данным Педагогического Интернет-форума выпускники московских школ не смогли сдать пробные ЕГЭ по информатике вообще.
Уровень подготовки московских школьников и преподавателей таков, что учащиеся не способны составлять программы для решения простейших экзаменационных задач на ЭВМ.
Основная причина общеизвестна: московские учителя и методисты не могут решать без ошибок эдементарные школьные задачи по информатике.
Ошибки в программах
Пишет Виталий Каймин, чт, 02/10/2008 — 13:27
ПРОГРАММЫ содержат ошибки, если при выполнении на ЭВМ они дают сбои, отказы или неправильные результаты.
Программа не содержит ошибок,, если при выполнении программы на ЭВМ она дает правильные результаты и никикаих сбоев и отказов.
ПРОВЕРКУ программ можно проиводить путем тестирования на ЭВМ.
Проще всего проверить структурированные программы — нужно проверить все циклы и ветви программы.
Все это должны уметь делать все преподаватели информатики и все ученики, изучающие информатику.
Все подобранные тесты должны храниться в файлах на ЭВМ, чтобы после исправления ошибок перепроверить программу.
ЭТО ВСЕ — АЗБУЧНЫЕ ИСТИНЫ, которые содержатся в учебниках информатики Каймина.
Все участники олимпиад знают это на зубок, а многим преподавателям и программистам невдомек.
Азбучные истины
Пишет Alexey_Donskoy, чт, 02/10/2008 — 15:03
Уж очень примитивные азбучные истины… Жизнь сложнее…
По каждому из выделенных пунктов есть серьёзные возражения, ибо можно далеко пойти, руководствуясь такими истинами…
Но исходное сообщение было, конечно, не об этом
Уровень преподавания действительно недопустимо низок, и недопустимо опущен стандарт образования…
Что могут сделать люди, причастные к образованию (в области информатики, я имею в виду)?
Во-первых, не учить языку программирования.
Во-вторых, учить думать головой!
Соображения о Программировании
Пишет Виталий Каймин, ср, 08/10/2008 — 18:19
Спасибо за Ваши соображения.
Во-первых, согласен не нужно учить языкам программирования в лоб.
Во-вторых, нужно учить думать. Последнее требует решения задач. Главное научить доводить решение до результатов на ЭВМ и проверять их на ЭВМ.
Кстати о языках программирования. Надоела постоянная смена языков Бейсик, Паскаль, Visual Basic,… В языках программирования в информатике нужен стандарт, которые продержится подольше. Стандарт европейский или мировой.
Что об этом скажут программмисты с опытом?
Что могут сделать люди
Пишет ipanshin, чт, 02/10/2008 — 16:02
Во первых, вовсе не факт, что целью системы образования является научить будущих членов общества писать программы. И во вторых, тоже не факт, что целью является научить думать головой. Как раз наоборот, если все будут думать головой, то кто будет просто работать? А вот препятствовать думать головой, чтобы отсеять тех кто думает даже вопреки от тех кто вопреки не думает — это видимо главная задача. То есть система образования — это прежде всего первый фильтр, основная цель которого отсеять всех, кто обществу опасен.
Противоречивые требования
Пишет Виталий Каймин, чт, 02/10/2008 — 17:15
Согласно Конституции РФ цели образования — не отсеивание, а обучение людей согласно Стандартам образования. Препятствовать людям думать головой? — это вообще очень неординарная задача. Отсеивание людей — это не есть задача образования, а задачи спецслужб. В этих вопросах в нашей стране накопилась очень плохая предыстория (Сталин, Берия, Ежов и т.п.). Обучение программированию нужно далеко не всем. Тут Вы правы. Обучение решению задач с помощью ЭВМ в условиях грядущей полной компьютеризации — это в стандарты образования у нас в стране включено.
Обучить решению задач на ЭВМ можно всех старшеклассников. Даже трудно воспитуемых с отклонениями в интеллектуальном развитии.
Цитируем Конституцию?
Пишет Alexey_Donskoy, пт, 03/10/2008 — 07:21
Вопросы адресованы лично к Вам, как к лицу, вполне причастному к образованию, в т.ч. школьному.
1. Согласны ли Вы принципиально с полезностью стандартизации образования (как указано в Конституции)?
2. Какова мотивация и цели, лежащие в основе разработки стандартов (проще говоря, «кто заказывает музыку»)?
3. Каково качество реализации (доказательно!) действующих стандартов образования (хотя бы в области информатики)?
4. Каково объективное влияние ЕГЭ на образование?
Ссылки по теме:
http://nauka.relis.ru/cgi/nauka.pl?05+04… — Доценко. «Пятое правило арифметики»
http://pedsovet.org/mtree/task,viewlink/… — Юрий Неретин. «О будущей эволюции и влиянии ЕГЭ»
http://www.mccme.ru/edu/index.php?ikey=m… — сборник статей «Образование, которое мы можем потерять»
http://forum.oberoncore.ru/viewtopic.php… — обсуждение Болонской системы на форуме Оберон-сообщества
Стандарты Образования в России
Пишет Виталий Каймин, пт, 03/10/2008 — 12:01
1) Стандарты Образования прописаны в Конституции (Основном Законе) российской Федерации. Закон есть Закон. Законы могут писать умные и не очень умные люди. ПО Закону Закону утверждает Государственная ума и Президент Российской Федерации.
Медведев принял Постановление о внедрении Открытого ПО в школы и вузы России с учетом наших мнений и мы говорим у нас очень умный Президент. Знание свойств и возможностей Открытого ПО теперь де факто становится обязательным для российского образования.
Министерство Образования не прикладывает при этом никаких усилий.
2)Мотивы и Цели внедрения стандартов в образовании связываются с внедрением новых технологий и научных дисциплин, важных для развития общества и государства (как мне кажется).
в 1985г. было принято решение о включении информатики в среднее и в 1990г. в высшее образование России. Результат: все вузы и школы под информатику получили компьютеры, Интернет, часы и зарплату для преподавателей и учителей.
«Музыку» заказывают УМО — Учебно-Методические Объединения при МинОбразе РФ. Меня как автора учебников близко не подпускают к УМО.
3)Качество реализации стандартов бывает разным — удачным и неудачным. Стандарты образования по информатике для школ в свое время писал академик Ершов.
Стандарты по информатике для школ были на самой первой фазе удачными. По МинОбразному положению стандарты должны переутверждаться каждые пять лет. Вузовские стандарты по ИТ давным давно устарели, но поскольку УМО давно не обновлялось, то не обновлялись и стандарты. Некторые из стандартов просто ужасны.
Новые проекты стандартов по школьной информатике написаны старым УМО и так 20 лет они проектами и остаются. Из-за чего приоритет имеют старые Ершовские концепции,
4) ЕГЭ — единые госэкзамены утверждены ГосДумой РФ в качестве реализации стандартов среднего образования. Ранее эти стандарты назывались едиными общеобразовательными программами. Н их базе монтировались выпускные и вступительные экзамены.
ЕГЭ в нынешнем варианте — это единые вопросники для выпускных и вступительных экзаменов в школах и вузах. К сожалению, в ЕГЭ часто встречаются ошибки.
САМАЯ БОЛЬШАЯ ДУРЬ — это тесты с выборочными ответами, где учителей и учащихся заставляют читать дурные варианты с ошибками.
На ошибках учатся только дураки, или люди, которых поставили в дурное положение.
Резюме…
Пишет Alexey_Donskoy, пт, 03/10/2008 — 13:51
Спасибо за ответы!
К сожалению, ответы неутешительные…
2) Либо просто отписка, либо непонимание движущих сил общества (или нежелание озвучивать своё мнение по каким-либо причинам). Объективно видно следующее: автор учебника (!) не в курсе политики образования, которая творится конкретными людьми от имени государства, но мотивы этих лиц, принимающих решения, скрыты и неподконтрольны даже самым заинтересованным людям!
4) Непонимание процессов в сложных социальных системах, недооценка влияния инструментов регулирования (тот же ЕГЭ).
Проблему ЕГЭ наиболее правильно описал Неретин, рекомендую…
Грустно…
Но необходимо всё же подумать — что мы (программисты в основном) можем сделать в текущей ситуации?
Нужна помощь программистов
Пишет Виталий Каймин, сб, 04/10/2008 — 08:30
В решении Задач ЕГЭ по информатике нужна помощь программистов. Наши работы по решения задач на ЭВМ поддерживаются несколькими издательствами (ИНФРА-М, Проспект, РИОР и т.д.). У нас достигнута договоренность об издании серии учебных пособий с примерами решения задач на ЭВМ. Работа оплачивается + гонорары.
Технология: решения задач должны быть описаны в форме алгоритмов на псевдокоде Каймина и опубликованы в Интернет в форме программ на JavaScript.
ПРЕДУПРЕЖДЕНИЕ: программы и решения задач должны быть написаны без ошибок. За каждую обнаруженную ошибку выплачиваются бонусы.
Особые бонусы за ошибки в программах, опубликованные в учебниках по программированию.
С предложениями обращаться к профессору В.А.Каймину. e-mail:bak2@narod.ru Неопубликованные и непротестированные решения не принимаются.
Аудитория
Пишет Alexey_Donskoy, пн, 06/10/2008 — 06:50
Более подходящую аудиторию Вы можете найти на http://forum.oberoncore.ru/
Только будьте готовы к критике — там много преподавателей, причём хороших и неравнодушных
Стандарты Образования по Информатике
Пишет Виталий Каймин, пт, 03/10/2008 — 14:26
Стандарты Образования по Информатике в высшей школе регулярно обновляются каждые пять лет. При этом для разных групп специальностей содержание стандартов разнится друг от друга.
Это легко понять, поскольку в основу информатики кладутся информационных технологии, которые коренным образом обновляются согласно Закону Мура каждые 2-3 года.
Проекты Стандартов образовдарания по Информатике в средней школе также обновляются каждые 5 лет. Но ни разу со времен академика Ершова эти стандарты не были утверждены при неизменном составе УМО по школьной информатике.
ЕГЭ и базовые учебники по информатике по этим причинам написаны под стандарты академика Ершова, куда входят вопросы алгоритмизации и решения задач на ЭВМ.
Старое УМО ничего нового придумать не может и экзамены ЕГЭ по информатике превратились в стандарты по информатике де факто.
Основная беда старого УМО состоит в том, что члены этого УМО сами не умеют решать простейшие задачи на ЭВМ и уж тем более составлять программы без ошибок. В чем они никогда не признаются, пока их не расформируют.
Ну и учителей члены этого УМО обучить решению задач на ЭВМ не могут. Цикл замкнулся.
Решение проблемы было найдено в 1993-94гг. когда в Москве в 100 школах организовали пробные вступительные экзамены по информатике, на основе которых был написан наш новый учебник информатики, на основе которого были написаны базовые экзаменационные билеты
по информатике.
Нужно Думать головой
Пишет Виталий Каймин, вс, 05/10/2008 — 10:54
Чобы учить думать — нужно уметь думать головой!?
Плохо когда слова расходятся с делом.
Люди, причастные к образованию в том числе к обучению информатике должны знать Главные задачи обучения этой дисциплине.
Одной из главных задач является обучение решению задач на ЭВМ,
чем профессионально занимаются все прикладные программисты.
Основной способ решения новых задач на ЭВМ — это составление соответствующих программ на языках программирования.
Если Вы умеете думать — то скажите — как не зная никаких языков программирования можно решать на ЭВМ новые прикладные задачи?
Студентам и школьникам, которые не могут составить программы для решения на ЭВМ простейших задач мы все ставим неудовлетворительные оценки, и положительные оценки, если хотя бы на одном тесте ученик получил правильный ответ.
Вам по информатике я не могу пока поставить никакой оценки — на Вашем языке — ноль.
Думать vs программировать
Пишет Alexey_Donskoy, пн, 06/10/2008 — 07:36
Уважаемый ВАК! Просьба как-нибудь указывать, кому Вы отвечаете… Долго и нудно пролистывал дерево и обнаружил, что вроде бы здесь ответ мне
Одной из главных задач является обучение решению задач на ЭВМ
В соседней теме я говорил о том, что понятие «решение задач на ЭВМ» сегодня нуждается в серьёзном пересмотре. Соответственно, требуется пересмотр целей и задач информатики как школьной дисциплины.
Без этого сегодняшний подход к информатике можно сравнить, скажем, с попыткой обучения математике, когда в программе курса значатся только дифференциальные уравнения. Да, это очень важный раздел математики. Да, он необходим для прикладного использования математики в самых широких областях науки и техники. Однако ж математика не исчерпывается дифурами. Нужна и арифметика, и логика, и дроби, и векторы, и даже тригонометрия, уж не говоря об интегралах
Если Вы умеете думать — то скажите — как не зная никаких языков программирования можно решать на ЭВМ новые прикладные задачи?
Даже если привычно узко трактовать информатику как обучение программированию, надо ещё определить, что такое программирование Можно ли отнести к программированию работу в Ворде? А если пользователь в Ворде пишет макрос для какой-нибудь перекодировки? А если он этот макрос или сценарий конструирует полуавтоматически при помощи встроенных мастеров?
Если совсем узко трактовать программирование как алгоритмизацию, то наконец-то относительно широко (на Оберонских форумах) народ созрел до рассмотрения очень подходящего кандидата для «программирования без программирования» — графического языка Дракон.
Является ли он языком?
Безусловно, как и любая формальная система, применяемая для моделирования какой-либо предметной области.
Нет. не является в обыденном понимании этого слова, поскольку ничего учить не надо (в отличие от псевдокодов), и язык достаточно понятен и ребёнку, и домохозяйке
Вам по информатике я не могу пока поставить никакой оценки — на Вашем языке — ноль.
Фраза непонятна. Уж извините, для программиста Вы черезчур вольно обращаетесь с русским языком…
Или это — дзен? Тогда присоединяйтесь к Оберонским форумам и высказывайте свою оценку по языковым вопросам, это, думаю, будет интересно многим!
ОтВЕТ Донскому Алексеею
Пишет Виталий Каймин, пн, 06/10/2008 — 13:19
Ниже приводятся примеры моих программ, опубликованных мной в Интернет.
До тех пор, пока не увижу в Интернет Ваших программ, Вы для меня не программист — а юзер..
Информатику как учебный предмет Вы не знаете, ни программ, ни стандартов, ни учебников.
Экзаменов по информатике Вы не сдавали. По этому никаких оценок ни по математике, ни по физике, ни по информатике или другим вузовским или школьным предметам Вы ставить не можете.
Ваша фраза
«если привычно узко трактовать информатику как обучение программированию, надо ещё определить, что такое программирование» — явно показывает какая путаница у Вас в голове:
1) Вы не знаете — что такое «информатика»?
2) Вы не знаете — что такое «программирование»?
Ну какой Вы программист, если не знаете базовых
понятий и дисциплин.
Путаницы
Пишет Alexey_Donskoy, пн, 06/10/2008 — 15:22
Уважаемый г-н Каймин!
Поскольку Вы упорно переходите на личности, мне следовало бы просто прекратить общение с Вами.
Однако тема образования очень и очень важна, и мне также небезразлична, и заблуждения в ней имеют далеко идущие последствия, потому отвечаю.
Но отвечать по существу — не на что! Все Ваши письма построены по одной и той же схеме — «я Вас не знаю, поэтому читайте истину в моих книгах».
Вот я и предлагаю сделать небольшой тайм-аут. Я обязательно почитаю Ваш учебник, поскольку это важно и интересно.
А Вы зайдёте на мой сайт, где почитаете моё резюме, мои публикации, включая давнишнее методическое пособие по информатике (часть курса, который я читал студентам в университете), ознакомитесь с моими программными разработками ну и т.п…
После этого я Вас прошу заново перечитать мои сообщения в этой теме и попробовать ответить на поставленные вопросы.
Если сочтёте мою квалификацию недостаточной, не обессудьте; но я надеюсь, что мы заинтересованы в одном общем деле!
Резюме Донского
Пишет Виталий Каймин, вт, 07/10/2008 — 08:19
Ваше Резюме проситал. Выглядит внушительно.
Список публикаций тоже почитал.
Жаль, но Ваша методичка по информатике в незнакомой кодировке.
Прочитать не удалось.
Информатика
Пишет Alexey_Donskoy, вт, 07/10/2008 — 10:44
Да уж, странно… Год назад браузер нормально воспринимал мета-тег META content=»text/html; charset=cp866″…
В общем, там обычный DOS (кириллица, кодовая страница 866). Так и осталось с прошлого века ;), поскольку там ряд картинок псевдографикой нарисован, и в кодировках Windows всё портится…
Просьба
Пишет st, чт, 02/10/2008 — 13:36
Убедительная просьба:
1. Писать заголовки прописными буквами
2. Соблюдать тему (сообщения будут удаляться). Для произвольных сообщений исполлзуйте форум или свой блог.
Типология ошибок в программах
Пишет Виталий Каймин, сб, 04/10/2008 — 10:06
Традиционно ошибки в программах на ЭВМ делятся на алгоритмические и синтаксические.
Синтаксические ошибки автоматически выявляются ЭВМ. Их очень легко найти и исправить.
Алгоритмические ошибки носят конструктивный характер и приводят к появлению на ЭВМ сбоев, отказов или неправильных результатов.
При составлении прикладных программ, предназначенных для решения определенных задач на ЭВМ, среди алгоритмических ошибок встречаются:
1) ошибки постановок задач,
2) ошибки в методах решения,
3) ошибки реализации алгоритмов,
4) ошибки организации ввода-вывода.
Все перечисленные ошибки легко выявляются и исправляются при наличии следующих спецификаций (точных и четких описаний):
1) постановок задач,
2) методов решения задач,
3) сценариев ввода-вывода.
При наличии перечисленных математически точных спецификаций в прикладных алгоритмах можно выявить и выправить практически все алгоритмические ошибки, а при отсутствии ошибок — написать доказательства правильности прикладных алгоритмов и программ.
Неполная типология
Пишет Alexey_Donskoy, пн, 06/10/2008 — 08:22
Добавьте ещё один маленький, но каверзный пункт — ошибки инструментов разработки.
Даже исполняющее железо — процессоры — имеют целый ряд ошибок (несоответствие документации, неоднозначное поведение и т.п.), что уж говорить о компиляторах и более сложных средствах проектирования программ!
Поэтому в реальной практике нахождение и обход подобных проблем составляет изрядную долю работы программиста.
Доказательное программирование в этих условиях не помогает, поскольку внешняя среда теряет свойство строгой и однозначной определённости.
Поэтому (как и во многих инженерных, да и кадрово-управленцеских областях), задача программирования формулируется не из примитивного «как написать безошибочную программу», а «как построить максимально надёжную систему из ненадёжных элементов».
Это серьёзная проблема, между прочим, но Вы её не рассматриваете даже теоретически…
Постановка Задач
Пишет Виталий Каймин, вс, 05/10/2008 — 13:00
Постановка Задач — ключевая проблема в прикладном программировании и любом виде деятельности.
Постановка Задач определяет:
1) что требуется?
2) что дано?
Точность и четкость требований должна определять правильность результатов.
Результат — правильный, если он отвечает требованиям.
Результат — неправильный, если он противоречат требованиям
Отсутствие требований, их расплывчатость не позволяет однозначно судить о правильности результатов, алгоритмов и программ.
Решение задач должно начинаться с их постановок. Многие говорят, что постановка задач — половина решения проблем.
В прикладном программировании и решении задач на ЭВМ
Правильность алгоритмов и программ определяется через правильность результатов, получаемых на ЭВМ при любых допустимых исходных данных.
Доказательство правильности алгоритмов и программ превращается в доказательство правильности результатов выполнения, которые определяются постановками задач.
Тесты и Постановки Задач
Пишет Виталий Каймин, пн, 06/10/2008 — 08:23
Постановки Задач нужны не только для верификации программ, но и для проверки тестов на ЭВМ.
Тесты при проверке программ на ЭВМ состоят из пар: (тест, результат). Естественно, Все результаты в тестах должны быть перепроверены на соответствие постановкам задач.
Наличие ошибок в тестах возможно, а устранить эти ошибки можно только при наличие точных постановок задач, позволяющих для каждого теста определить правильность результатов.
Наличие большого числа ошибок в программах нынешнего поколения программистов объясняется недостаточной полнотой тестов.
При разработке программных продуктов должны быть протестированы не только позитивные результаты, но недопустимые даные и условия, которые также должны быть прописаны в постановках задач.
Составление формальных постановок задач — это хорошая практика не только для преподавателей, принимающих экзамены по информатике, но и для профессиональных программистов, участвующих в приемке и сдаче программной продукции.
Зеркало и мартышка
Пишет ipanshin, пн, 06/10/2008 — 12:14
Давайте вспомним великого Крылова и его басню про зеркало, в которое смотрится мартышка. Так вот алгоритмы и программы относятся к категории зеркал, в котором люди видят собственные ошибки или баги, которые копошатся в их голове. Так не смешно ли вдвойне заниматься исправлением ошибок в программе тем более доказательством ее правильности алгоритмов и программ? То есть мы хотим выправить изображение, оставив собственную кривизну восприятия на том же самом месте? Или оригинал, который смотрится в зеркало настолько велик и непогрешим? Это же нонсенс.
Разве отсюда не следует, что работать нужно прежде всего над оригиналом? И изображение в зеркале исправится само собой. Мы же делаем с точностью до наоборот. Мы говорим, что если перед зеркалом будет стоять группа «обезьян» (извините, я не хочу никого обидеть), обладающая знаниями доказательства правильности в изображении кода, то программа получится безошибочной. надо еще доказать, что можно исправить в обезьяне баг мысли через отображение мыслительного процесса в зеркале.
И вообще смешно.:)
Осенние шорохи
Осень листвою опавшей шуршит
В такт по аллее шагу,
В голых полях бесконечной души
В цвет листопада прилягу.
Та бесконечность и павшего цветь,
Что было когда-то зелено,
Было б за счастье здесь умереть,
Глядя на мир твой влюбленно.
В цвет листопада здесь мысли мои,
Твое подвенечное платье,
Комьями черной остывшей земли
Чувства, желанья, объятья.
( можно так
Комья черной остывшей земли
Чувств моих бренных собратья
)
Осень листвою опавшей шуршит
В ритме моих шагов,
В голых полях непонятной души
Шорохи, шорохи слов …
5 октября 2008
Зеркало
Пишет Alexey_Donskoy, пн, 06/10/2008 — 12:33
Правильно, зеркало…
С первой частью (прозой) согласен полностью
Ну да, а с
Пишет ipanshin, пн, 06/10/2008 — 14:05
Ну да, а с рифмой нет?:) кстати именно рифма является той лакмусовой бумажкой любого текста, который пишется, и алгоритмов и программ в особенности. Если чувствуешь рифму, то смело пиши. Наверное и прозой также, но я не умею. А с рифмой как умею, так что извините. Мрачновато конечно…
Рифма
Пишет Alexey_Donskoy, пн, 06/10/2008 — 14:51
Опять же согласен со всем, кроме мрачности Больше жизни, господа, больше жизни!
Алексей, Вы
Пишет ipanshin, пн, 06/10/2008 — 15:16
Алексей, Вы известный оптимист, но это от отсутствия знаний или наоборот от больших знаний? Можно ли утверждать что Вы отступите от теории Маслоу и сказать, что вы возьмете смех, когда будете голодны?
Оптимизм
Пишет Alexey_Donskoy, пн, 06/10/2008 — 15:30
Оптимист, как Вам известно, отличается от пессимиста исключительно точкой зрения
«- Наша обувь на этом рынке никому не нужна — здесь все ходят босиком…
— Какой перспективный рынок сбыта — здесь ни у кого нет обуви!»
Однако же точка зрения очень важна для Духовного Мира, и Вы об этом знаете.
Да, наверное, мой оптимизм от отсутствия знаний. Например, я не знаком с теорией Маслоу, чем вполне счастлив
Конечно же, и я знаю много ненужных вещей Понимение их ненужности приходит не сразу
к счастью я
Пишет ipanshin, пн, 06/10/2008 — 20:00
к счастью я тоже не знаю Маслоу. А вот выбор смеха vs. еды у голодного оптимиста на самом деле говорит о его духовном мире. Точно также как и плач у голодного пессимиста в противовес еды.
Вспомните притчу о том как двое молятся в церкви.
один с достоинством так как ведет праведную жизнь и уверен, что Господь его наградит, второй же наоборот с плачем оплакивает свою жизнь поскольку вся она полна греха, даже при праведном поведении. ( я забыл как эти люди называются спрошу у жены завтра). Согласен, что именно точка зрения их отличает. Но не согласен с тем, что пессимистическая точка зрения хуже.
Но вы не ответили на вопрос. Выбираете смех или еду?
Притча не по теме
Пишет Alexey_Donskoy, вт, 07/10/2008 — 06:49
А на вопрос о выборе смеха или еды ответить невозможно, вопрос некорректный… Жизнь — она ж не плоская, а многомерная. Ответ, как всегда, лежит в другом измерении Поэтому пока перейдём к притче. Притча не по теме. Первый не является оптимистом, равно как и второй не является пессимистом…
Первый проявляет гордыню, второй — смирение и покаяние.
Не надо путать покаяние с унынием, которое является грехом!
Кстати, рекомендую почитать Ричарда Баха «Иллюзии». Там по этому поводу есть хорошая притча:
26. И сказал он [Мессия] им: «Если человек сказал Богу, что больше всего он
желает помочь миру, полному страданий, и неважно какой ценой, и Бог ответил
и сказал ему, Что он должен сделать, следует ли ему поступить, как ему было
сказано?»
27. «Конечно, Учитель!» — закричала толпа. «Ему должно быть приятно
испытать даже адские муки, если его об этом попросит Господь!»
28. «И неважно, каковы эти муки и насколько сложна задача?»
29. «Честь быть повешенным, слава быть распятым и сожженным, если о том
попросил Господь,» — сказали они.
30. «А что вы сделаете», — сказал Мессия толпе, — «если Господь
обратится прямо к вам и скажет: Я ПРИКАЗЫВАЮ ТЕБЕ БЫТЬ СЧАСТЛИВЫМ В ЭТОМ
МИРЕ ДО КОНЦА ТВОЕЙ ЖИЗНИ. Что вы тогда сделаете?»
Да, это мытарь и
Пишет ipanshin, вт, 07/10/2008 — 08:47
Да, это мытарь и фарисей, но пессимизм — это не есть уныние. Именно потому, что это точки зрения. И фарисей оптимист так как имеет точку зрения на свою жизнь. У него все хорошо, значит он счастлив и выберет как раз не еду. А мытарь по точке зрения пессимист. У него тоже все хорошо, но он видит то, что не сделано в его жизни, но могло быть сделано, в отличие от фарисея, который видит только свои деяния. Они измеряют одно и то же — свою жизнь, но с разных концов. Один — что он сделал, второй — что он не успел сделать. И здесь я — пессимист, но это не уныние, хотя граница очень близка, конечно.
Фарисей и еда
Пишет Alexey_Donskoy, вт, 07/10/2008 — 11:14
Назвать фарисея оптимистом… это уже из области кривого зеркала
Рискуем совсем отклониться от топика, но вопрос тоже важный
Как я понимаю данный сюжет, оба знают свои грехи (отсутствие безгрешных людей — одно из важных положений христианства). Только один честно плачет, а другой БОИТСЯ (вот это пессимизм и есть) и потому пытается оправдаться (перед Богом!) своими «правильными» делами…
«Господи, да будет Воля Твоя!» — вот это оптимизм. Так что я бы назвал оптимистом мытаря, ибо он уповает на Господа и потому будет спасён!
А с едой всё гораздо проще Нет еды — пойди и купи. Не на что купить — пойди и заработай.
Теперь подумай, кому скорее будет дана возможность заработать — оптимисту или пессимисту?
Не стоит
Пишет ipanshin, вт, 07/10/2008 — 12:38
Не стоит утверждать то чего нет. «Господи, да будет Воля Твоя!» — это они говорят оба. Мытарь плачет, а фарисей боится? Нет в том то и дело, что фарисей не боится. Он уверен, что он живет по божески. Видимо здесь оптимизация с пессимизацией не годится:)
А по поводу еды надо различать купленную еду от еды тобой выращенной (т.е. той что дал тебе Господь). Так что покупкой тут не решишь проблему. А заработать у Господа нельзя, он не платит. Вообще идея заработать — это рабская ипостась. Поэтому ни тому ни другому заработать не дадут.
Зеркала еривые?
Пишет Виталий Каймин, вт, 07/10/2008 — 17:13
Ребята, а у Вас зеркала не кривые?
Это очень смешно!
Вы сами о себе так много рассказали.
Ведь люди все это читают.
И Вы сами о себе такое …?
Ибо зачем
Пишет ipanshin, вт, 07/10/2008 — 20:59
Ибо зачем мерять собственную свободу чужой совестью?
Ага
Пишет Alexey_Donskoy, чт, 09/10/2008 — 08:29
Душа фарисея
Пишет Alexey_Donskoy, чт, 09/10/2008 — 08:27
Душа фарисея боится, она-то знает… А сознание может и не подозревать…
Про купленную еду — не срастается…
Человек живёт в социуме («быть свободным от общества нельзя»). Поэтому всё, что даёт Господь, приходит через людей. И, естественным образом, через деньги, поскольку это социальный эквивалент энергии. А законы сохранения действуют не только в Материальном Плане Бытия. Но и в Духовном тоже.
Поэтому не следует заморачиваться на сей предмет. Ишь ты, «заработать — рабская ипостась»! Надо же такое удумать!
Есть много арабской мудрости, которую не худо было бы усвоить ортодоксальным христианам. Например, по этому поводу:
«На Аллаха надейся, а верблюда привязывай!»
А ещё — «У Аллаха нет рук, кроме твоих!»
Всё, что ты делаешь в Мире, ты делаешь для Бога и с Богом. В какой форме приходит благо, зависит от рода деятельности
Об ошибках, фарисеях и грешниках
Пишет alexus, вт, 07/10/2008 — 12:23
Борьба с ошибками не должна превращаться в борьбу за безошибочность… Да, и нелепо смотреть на ошибку, как на зло, на беду, как на несчастье. Ошибка, ошибке рознь, но все же ошибка… это прекрасно! Ошибка — это то, что отличает мастера от ремесленника, творца от раба. Мастер делает все, как положено, но что-то, порой неуловимое, он делает не так, ошибается… и создает произведение искусства. Точно так же, как изъян на лице любимой (оттопыренное ушко, припухшая губка…) делает этот лик столь прекрасным и дорогим нашему сердцу. Холодная и строгая правильность не вдохновляет. Фарисеи упрекали Иисуса, в том, что он свободно трактует законы и нарушает догматы веры. Ремесленники-фарисеи не могли простить мастеру свободного владения кистью, но не кисть делает ремесленника художником. Художником делает ошибка. От ошибки к ошибке, от неудачи к неудаче, от горечи поражения к триумфу озарения. Ошибка не страшна, она всего лишь вешка на неправедном пути, в ней нужно разобраться… покаяться и двигаться дальше. Осознавая ошибку, мы настраиваем себя на интуитивное восприятие истины. Но не дай Бог, пытаться отказаться от ошибок и начать бороться за безошибочность, за признание возможной безгрешности! Это путь фарисея — не ошибаться, не сомневаться… не искать. Путь, огражденный частоколом крестов с распятыми Мастерами.
Ошибки в кибернетике
Пишет st, вт, 07/10/2008 — 12:27
Ошибки, т.е.отклонения от существующей условной нормы, в кибернетике рассматриваются как благо, поскольку другого способа эволюции системы не наблюдается.
«Эволюция»
Пишет alexus, вт, 07/10/2008 — 13:12
Хм?.. Что-то я недопонял… Отклонения от некоторого заданного состояния в кибернетике рассматриваются, как правило, с позиций построения саморегулируемых систем, в том числе, за счет испрользования обратной связи. Идеальной моделью является полусферическая чаша с шариком. Неважно, какая сила отклоняет шарик, он все равно вернется в заданное состояние в нижней части полусферы. Идеальный механизм регулирования должен работать аналогичным образом.
Что касается эволюции, то это не более, чем гипотеза, причем малоправдоподобная. Эволюция, как и разруха, не в клозетах, а в головах. Представьте себе (мысленно) длинный ряд автомобилей, от самых первых «антилоп гну» до современных, напичканных электроникой. Вроде бы автомобили прошли длинный эволюционный путь. Прошли… в головах конструкторов, дизайнеров, технологов… А на материальном плане это выглядит, как эволюция автомобилей. Точно также прошло «эволюцию» и все остальное… в разуме Творца, и отразилось на нас, в том числе. Ну, а творчество от ошибок неотделимо. Лишите человека права на ошибку и получите… морального урода, который будет бояться сделать самостоятельно малейший шаг.
Эволюция и адаптация
Пишет st, вт, 07/10/2008 — 14:43
Такое состояние дел высвечивает необходимость в постоянной заботе о наличии ошибки (как мы ее обычно называем) в любой обучающейся, адаптивной, эволюционной системе…
Хотя это наше утверждение возникло явно из рассмотрения биологических фактов для живых систем и хорошо иллюстрируется нашим прибором, его не понимают многие управляющие. В фирме любая ошибка предается анафеме. Этим не утверждается, что ошибку нельзя допускать. Но она встречается враждебно, без учета того, что и она имеет цену сама по себе. Проницательный управляющий должен рассматривать любую ошибку, сделанную его подчиненными, как мутацию и поставить себя в положение восприимчивого к алгедоническому сигналу обратной связи, который порожден ошибкой. Однако в поведении управляющих наблюдается тенденция полностью сконцентрироваться на исправлении недостатка. Тогда ошибка системы потеряна как стимул к перемене, а сама перемена редко признается в этом духе. Прославляются всякие усилия управляющего, направленные на исправление ошибки, а не на извлечение из нее урока. В свою очередь, сами ошибки рассматриваются в основном как недостаток. Соответственно этому к моменту, когда необходимость в перемене действительно понята (по тем или иным причинам), люди ей сопротивляются, поскольку попытки ввести изменения автоматически увеличивают число ошибок на время, пока эта «мутация» проходит испытание.
С. Бир, «Мозг фирмы», глава 4 «Организация немыслимых систем»
Что же касается автомобилей, то замените слово «автомобиль» на «автомобилестроение» и все встанет на свои места.
Эволюция vs. творение
Пишет alexus, вт, 07/10/2008 — 21:20
Обсуждать творческие изыски С. Бира… конечно, интересно… но не более того. И то, что наши оценки «ошибки» совпадают, еще не свидетельство совпадений по более серьезным вопросам. Что касается отношения к «ошибке», то могу сослаться на свое воззвание к «изобретателям велосипедов», которое я публиковал в FIDO, в те времена, когда работ С. Бира я не читал.
Что же касается «мутаций», то здесь С. Бир в очередной раз… глубоко заблуждается. Дело не в том, как воспринимаются «ошибки» «изнутри», и даже не в том, как они воспринимаются «снаружи»… «Ошибки» для их положительной внешней и внутренней (одновременной!) оценки должны быть… своевременными, то есть, быть не раньше, не позже… И они должны соответствовать вектору развития системы. («В нужное время и в нужном месте»). Другими словами, ошибки, в контексте С. Бира, — это и есть своевременные и правильные решения, более правильные и более своевременные, чем решения принятые на основе существующих знаний/методик. Но я, в отличии от С. Бира, говорил именно об ошибках, а о не о правильных решениях, которые не согласуются с традицией. Это разные понятия.
Что же касается автомобилей, то замените слово «автомобиль» на «автомобилестроение» и все встанет на свои места.
Ничего я менять не буду… То, что приходится разжевывать смысл, не означает, что одно понятие надо подменять другим. Мы видим эволюцию автомобилей, ничего не подозревая об автомобилестроении. Да, реально меняются знания и представления в головах конструкторов, дизайнеров, технологов… которые и есть «автомобилестроение» (и я об этом говорил!). Но эта творческая работа остается для нас «за кадром», мы видим не мысли, не образы… а реальные автомобили, которые меняются, становясь раз за разом… все более удобными и совершенными.
… я же не прошу Вас заменить термин «эволюция» на «творение»… Так давайте быть взаимно… уступчивыми… и ненастойчивыми… Чтобы не утратить смысл того, что обсуждаем.
Попробуйте заменить
Пишет st, вт, 07/10/2008 — 21:51
Попробуйте заменить «эволюцию» на «творение» в предложенном вами контексте автомобилестроения. Мой вариант — эволюция знаний и представлений об автомобиле и его производстве в головах конструкторов, дизайнеров, технологов. Что получится если произвести замену?
Зачем заменять?..
Пишет alexus, ср, 08/10/2008 — 06:23
Попробуйте заменить «эволюцию» на «творение» в предложенном вами контексте автомобилестроения
Этого я не смог понять…
Предупреждение
Пишет st, пн, 06/10/2008 — 10:58
Уважаемый автор, все последующие комментарии, озаглавленные ПРОПИСНЫМИ буквами, будут удаляться.
Что ж сказать…
Пишет Гость (не проверено), вт, 14/02/2012 — 12:55
Что уж говорить о информатике, когда журналисты не могут написать без ошибок слово «элементарные … задачи»…