OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 16 Апрель, 2024 11:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 11:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Подобная тема была, но в профессиональном контексте
(viewtopic.php?f=26&t=1190&start=0&hilit=%D0%BE%D1%82%D0%BB%D0%B0%D0%B4%D1%87%D0%B8%D0%BA).

Однако этот вопрос должен явно фигурировать и в этом разделе.

Вот подходящая общепедагогическая цитата, указывающая на фундаментальный, никак не связанный с программированием per se корень проблемы:

А.В.Хвостов писал(а):
любому человеку, занимавшемуся преподаванием, прекрасно известно, что стоит ученику позволить гадать, он мгновенно и необратимо прекращает думать.

http://pedsovet.org/forum/index.php?sho ... t&p=104650


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 16:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
А.В.Хвостов писал(а):
любому человеку, занимавшемуся преподаванием, прекрасно известно, что стоит ученику позволить гадать, он мгновенно и необратимо прекращает думать.


А как же "метод научного тыка"? :) Сколько открытий было сделано "наугад", а уж потом теория подогнана...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 16:48 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Vlad писал(а):
А как же "метод научного тыка"? :)
Этот метод по своей сути является антинаучным, имхо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:11 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Vlad писал(а):
А как же "метод научного тыка"? :) Сколько открытий было сделано "наугад", а уж потом теория подогнана...
Одно дело наугад открывать (а если быть более точным, то не наугад, а случайно), а другое дело наугад доказывать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:16 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Надо отличать "наугад" (перебор без организующих структур-моделей в голове) от целенаправленного поиска (имеем ясное представление о цели, догадку о пути(ях) к ней, грамотно организуем экспериментальную проверку путей, с отбрасыванием тупиковых) или случайного обнаружения неожиданного результата при целенаправленной работе в другом направлении.

Кроме того, для программирования экспериментальность всегда вынужденная. Это же не изучение свойств природных систем. Экспериментировать можно только с изучением свойств кем-то до тебя созданных артефактов. И если приходится много экспериментировать, то плохо они были созданы... Все мы через эти эксперименты проходили и проходим (когда спускаешься на уровень нижележащих платформ). К сожалению, многие даже не представляют, что эта ситуация - ненормальна. Тем более, что процесс такого "исследовательства" может приносить интерес и удовлетворение. Особенно, если нет представления о настоящем познании реального мира.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:21 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Valery Solovey писал(а):
Vlad писал(а):
А как же "метод научного тыка"? :) Сколько открытий было сделано "наугад", а уж потом теория подогнана...
Одно дело наугад открывать (а если быть более точным, то не наугад, а случайно), а другое дело наугад доказывать.


Не понял. Причем тут отладчик? Когда я беру отладчик - я ничего никому не доказываю :) Я багу ловлю, которая "в теории" невозможна :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:31 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Это Вы берёте отладчик :) "Вот, я программировал, а теперь снимаю с полочки багодавилку..." :)

А детвора (всяческого возрасту) прямо в отладчике программирует :) И книжки для начинающих часто это и советуют. "Погоняйте, посмотрите, как ваш цикл работает..." :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:36 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Надо отличать "наугад" (перебор без организующих структур-моделей в голове) от целенаправленного поиска (имеем ясное представление о цели, догадку о пути(ях) к ней, грамотно организуем экспериментальную проверку путей, с отбрасыванием тупиковых) или случайного обнаружения неожиданного результата при целенаправленной работе в другом направлении.


Э... И причем тут отладчик? Или вы по-прежнему о забивании гвоздей микроскопом (использовании отладичка не по делу)?

Илья Ермаков писал(а):
Кроме того, для программирования экспериментальность всегда вынужденная. Это же не изучение свойств природных систем. Экспериментировать можно только с изучением свойств кем-то до тебя созданных артефактов. И если приходится много экспериментировать, то плохо они были созданы... Все мы через эти эксперименты проходили и проходим (когда спускаешься на уровень нижележащих платформ). К сожалению, многие даже не представляют, что эта ситуация - ненормальна. Тем более, что процесс такого "исследовательства" может приносить интерес и удовлетворение. Особенно, если нет представления о настоящем познании реального мира.


Абсолютно нормальная ситуация. Не могут все думать одинаково. Понять как думали до тебя и додумать лучше. Можно в качестве лозунга вешать :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:38 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Илья Ермаков писал(а):
Кроме того, для программирования экспериментальность всегда вынужденная.
Позволю себе заметить, что между научным экспериментом и "методом научно обоснованного тыка" нет ничего общего. Прежде всего, эксперимент тщательно готовится. И самому эксперименту предшествует научный прогноз. Потому что цель эксперимента -- сравнение фактических и ожидаемых результатов. На основании этого сравнения делается вывод о правильности или неправильности теории.

PS: Извините, если отвлёкся от темы. Дело, конечно, в моих комплексах :) Меня слишком раздражает "научное тыканье".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:42 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
А детвора (всяческого возрасту) прямо в отладчике программирует :) И книжки для начинающих часто это и советуют. "Погоняйте, посмотрите, как ваш цикл работает..." :)


А еще в студии есть "Edit and continue" - вообще классная штука ;) Даже модули выгружать не надо ;) Как раз можно циклы гонять и тут же править :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Четверг, 13 Август, 2009 17:50 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Э... И причем тут отладчик? Или вы по-прежнему о забивании гвоздей микроскопом (использовании отладичка не по делу)?

Я исключительно в качестве ответа на Ваш вопрос "а разве не делались открытия" :)
Бэконовский экспериментально-индуктивный метод в науке - это весьма далеко от "тыка".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Пятница, 14 Август, 2009 09:47 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
igor писал(а):
Илья Ермаков писал(а):
Кроме того, для программирования экспериментальность всегда вынужденная.
Позволю себе заметить, что между научным экспериментом и "методом научно обоснованного тыка" нет ничего общего. Прежде всего, эксперимент тщательно готовится. И самому эксперименту предшествует научный прогноз. Потому что цель эксперимента -- сравнение фактических и ожидаемых результатов. На основании этого сравнения делается вывод о правильности или неправильности теории.

Очень хорошее описание тестирования... :)
Если не совпадают результаты эксперимента, ученый начинает ДУМАТЬ, почему так произошло.
Программист-практик просто залезает в отладчик.
Не факт, что это - хорошо.
У меня пару раз были такие случаи в первых версих Borland C++ (не Билдер). При трансляции в отладочном режиме при запуске из-под среды все прекрасно работало. Стоило оттранслировать тот же текст в релизе - получались неправильные результаты. Отладка в среде, естественно, не помогала. Только при отладке в TurboDebuggere удалось найти ошибку.
Это я к тому, что в ББ вообще отсутствует так называемая отладочная трансляция. И это хорошо!
Поэтому и отладчика нет. ИМХО, в ББ он и не нужен. Уже сам язык заставляет программера думать строже. И обычных ляпов - намного меньше.
На рсдн есть пост, в котором приведен ну совершенно классический ляп для С/С++
Код:
if (p < 0,5) { std::cout << "Вот так спутники и падают..."; }

Обратите на запятую в константе 0,5. На С++ новичок такое запросто может написать, и компилятор вполне себе скушает! А в виртовских языках такое просто невозможно по определению!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Пятница, 14 Август, 2009 13:53 

Зарегистрирован: Пятница, 02 Декабрь, 2005 14:35
Сообщения: 210
Откуда: Россия, Томск
Илья Ермаков писал(а):
"Погоняйте, посмотрите, как ваш цикл работает..." :)

Для детворы, впервые в жизни видящей базовые конструкции языка типа циклов, очень полезны были бы визуальные анимированные модели, наглядно демонстрирующие работу конструкций при их правильном и ошибочном применении. Отладчики и "черепашки" в значительной степени эту роль выполняют, но, ИМХО, недостаточно эффективно. Помню, как я безуспешно бился с 5-классником на цикле FOR. Я не справился, парнишка бросил занятия. А будь у меня под рукой игрушка - "машинка" ЦИКЛ - результат был бы, возможно, иным. Правда, в то время у меня и нынешней черепашки не было, учил на абстрактной, сухой математике, мучил деток "программизмами", как изволят выражаться некоторые на форуме pedsovet.org :)

А что, пожалуй, можно слепить несколько диалоговых тренажеров-визуализаторов, объясняющих устройство конструкций и наглядно, ПОШАГОВО, с пояснениями показывающих все особенности их работы при задании различных исходных данных 8)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Пятница, 14 Август, 2009 14:14 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Показ по тексту Дракон-схем с бегунком :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Пятница, 14 Август, 2009 20:26 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
черепашки достаточно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Воскресенье, 16 Август, 2009 03:00 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Вообще, я лично замечал что начинающим (детям и не очень -- от возраста не шибко зависит) весьма сложно понять как же работают императивные ЯП. Т.е. народ изначально читает исходник декларативно т.е. без соблюдения очередности и порядка. И на основе всего того что на экране показано пытается делать некие предположения, построить какую-то в голове схему.

Возможно в этом виновата наша всё ещё слишком хорошая школа преподавания математики...

Так вот, для объяснения как же это всё на самом деле работает очень сильно помогает показать в отладчике работу программы. По шагам. Где видно как меняются переменные, за какой строчкой исполняется какая и т.д. и т.п.

Естественно существует не малая опасность что новичок как залезет в отладчик так оттуда и не вылезет. Вместо того чтобы подумать 10 минут будет сутки комбинировать в отладчики все возможные вариации а в результате так и не поймет почему оно не работало и почему же заработало. Т.е. в результате обучения не произойдет.

На эту тему вспоминается цитата с bash.org.ru:
Цитата:
DM82: Мне недавно рассказали как делают корабли в бутылках. В бутылку засыпают силикатного клея, говна и трясут. Получаются разные странные штуки, иногда корабли.


Так вот -- очень часто школьниками/студентами а иногда и профи, программы вот так вот и пишутся.

Самое печальное что запрет отладчика не помешает трясти бутылку: будет отладочная печать (через каждую строчку), будут бесконечные бестолковые модификации программы (типа, а вот тут мы заменим ка плюс на минус, запустим и посмотрим что будет -- вдруг сработает?) и т.д. и т.п.

Восприпятствовать бесконечному трясению бутылкой может только нежелание её трясти. И ничто иное. А нежелание трясти возникнет в случае если клиент увидит что подумать -- проще и быстрее чем трясти бутылку в ожидании когда же там наконец сложится кораблик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Воскресенье, 16 Август, 2009 12:42 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
черепашки -- достаточно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: об отладчике
СообщениеДобавлено: Воскресенье, 16 Август, 2009 17:28 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Главное, чтобы черепашка была правильная!

Изображение


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB