OberonCore
https://forum.oberoncore.ru/

Семантический редактор
https://forum.oberoncore.ru/viewtopic.php?f=93&t=1542
Страница 3 из 34

Автор:  Валерий Лаптев [ Среда, 01 Июль, 2009 14:17 ]
Заголовок сообщения:  Re: Семантический редактор

Alexey_Donskoy писал(а):
Однако ж в этой теме задача шире ставится - автоматизация тренажа не по конкретному технологическому инструменту, а по моделированию. Не уверен, что такая задача в принципе может иметь решение...

Хотя бы потому, что всегда возможны разные модели для решения той или иной задачи. Тогда преподавателю предстоит а) оценить адекватность предложеной студентом модели; б) сравнить эффективность этой модели с эффективностью эталонной. Как автоматизировать пункт (а) ?

10 апреля мой аспирант защитил диссер, в котором предложил подход к оценке качества разработки объектно-ориентированных продуктов... :)
Так что есть подходы. Тем более, есть подходы к оценке небольших по объему студенческих лабов...

Автор:  Alexey_Donskoy [ Среда, 01 Июль, 2009 15:11 ]
Заголовок сообщения:  Re: Семантический редактор

Чтобы уж окончательно поставить точки, заметим, что сама объектно-ориентированная методология не является идеальным подходом и не всегда может быть рекомендована.

"Всё равно что сегодня учреждать бурсы для подготовки деревенских дьячков" (Стругацкие, "Волны гасят ветер").

А так, конечно, есть подходы :)
Асимптотический процесс... То есть это мы так думаем, что асимптотический... А на самом деле - асимптотически приближающийся к определённому аттрактору, который далёк от от решения первчиной задачи, ради которой и затевалось обучение...

Автор:  Валерий Лаптев [ Среда, 01 Июль, 2009 15:39 ]
Заголовок сообщения:  Re: Семантический редактор

Для "правильной" постановки мышления требуется "долбить гаммы". А "гаммы" относительно легко автоматизировать и тем более проверять.
Так что автоматизация "долбежки гамм" - самое то, что требуется.

Автор:  Alexey_Donskoy [ Среда, 01 Июль, 2009 21:11 ]
Заголовок сообщения:  Re: Семантический редактор

Что-то в этом есть! :)

Автор:  Сергей Прохоренко [ Среда, 01 Июль, 2009 21:23 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
Для "правильной" постановки мышления требуется "долбить гаммы". А "гаммы" относительно легко автоматизировать и тем более проверять.
Так что автоматизация "долбежки гамм" - самое то, что требуется.


А ЧТО ИМЕННО ПРОВЕРЯЕМ???

Если "гаммы" (т.е. методы программирования) будут автоматизированы в семантическом редакторе, то зачем их тогда проверять? Ведь проверка сведется к проверке элементарного умения работать с графическим пользовательским интерфейсом. За что боролись, то и получили: автоматизация инструмента приводит к снижению требований к квалификации пользователей. Меньше искусства, меньше необходимых знаний, опыта, интуиции, больше ремесла.

Можно, конечно, проверить умение моделировать - с последующей записью модели средствами семантического редактора. Примерно как в школе по сформулированной словами задаче требуется создать математическую модель - задать переменные, записать уравнения, неравенства и области определения переменных. Если модель, введенная в семантический редактор, работает, то "зачет", если нет, то "незачет". Моделей может быть много - чем больше из них работают, тем выше оценка. Вопрос - а нужно ли ради оценки умения моделировать навешивать на семантический редактор средства оценки? Это ведь не слишком трудоемко - запустить программу, сгенерированную семантическим редактором, на исполнение с тестовым набором данных. Да и умение моделировать - это скорее задача из области физики, прикладной математики, теории систем или иной предметной области, а не программирования.

Можно проверить и знание основ программирования, то есть, таких вещей, как модули, экспорт, области видимости, передача параметров в/из процедуры, ООП и т.п. Но для этого лучше использовать именно тесты типа ЕГЭ (только более адекватные), а использование для этого семантического редактора - это стрельба из пушки по воробьям. К тому же тест может быть сплошным - охватывать все вопросы и нюансы, а для проверки тех же знаний в процессе программирования придется программировать сотни задач, и при этом некоторые вопросы могут ускользнуть из поля зрения, и останутся непроверенными.

Я это к тому, что семантический редактор - это позарез нужная вещь для реальной работы (не учебы), а средства автоматической оценки - необязательный довесок, необходимость которого очень сомнительна. Обучение работе с семантическим редактором должно быть не сложнее обучения работе с MS Word или MS Excel, и вряд ли этому надо уделять много времени и внимания. Если уж использовать семантический редактор в образовании, то не столько как инструмент, сколько как объект для его совершенствования силами студентов. Семантический редактор - это, с одной стороны, образец, на котором можно продемонстрировать парадигмы и методы программирования. С другой стороны, это объект, в котором можно реализовать какие-то новые идеи студента или преподавателя.

Автор:  Валерий Лаптев [ Четверг, 02 Июль, 2009 14:26 ]
Заголовок сообщения:  Re: Семантический редактор

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

Автор:  Сергей Прохоренко [ Четверг, 02 Июль, 2009 20:11 ]
Заголовок сообщения:  Re: Семантический редактор

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


Непонятно, что такое "это", которое "и проверяется". Семантический редактор - "это ... инструмент, избавляющий от дурацких ошибок". Что же тогда ещё проверять, если ошибок заведомо нет :?: А идеальный результат - это когда ошибок нет в квадрате? Или когда использованы именно те средства семантического редактора, которые больше нравятся преподавателю? А если студент сделал не хуже, но по-другому, то как автоматическое средство оценки это оценит?

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

Может быть, проверяется понимание студентом необходимости использовать цикл для поиска или перебора всех элементов контейнера? Так это и обезьяна поймет после однократного объяснения, а не то, что студент. Зачем это проверять? А если с контейнером надо сделать что-нибудь более сложное, то нужно не упражняться в хитрых алгоритмах, где легко допустить ошибку (ведь мы же учим НАДЕЖНОМУ программированию), а вставить библиотечную функцию (сортировку, поиск и т.п.), а в сложных случаях объект или компонент. Ну не проверять же способность студента выбрать функцию из хорошо комментированного тематического каталога! Если он не абсолютный тупица - найдет за 20 секунд максимум. Тут тоже нечего проверять.

Семантический редактор создается, чтобы радикальным образом улучшить технологию программирования, сделать сложные вещи легко доступными даже непрограммисту. :D Зачем же тащить из прошлого какие-то проверочные средства, ориентированные на устаревшую текстовую технологию программирования? Тем более, что это может задержать создание собственно семантического редактора :(

Автор:  Axcel [ Четверг, 02 Июль, 2009 20:46 ]
Заголовок сообщения:  Re: Семантический редактор

> Сергей Прохоренко ...
Цитата:
Программирование с помощью семантического редактора должно давать заведомо правильный результат, если использована правильная модель прикладной области (а этот вопрос уже выходит за рамки программирования). Студент вызывает конструктор (wizard) цикла и вводит параметры (предусловие и постусловие для каждой ветки, необходимость однократного прохождения цикла несмотря на предусловие, индекс цикла, его начальное и конечное значение и шаг), а дальше всё происходит автоматически


Лично я уже много раз убеждался, что все это проще всего сделать именно на обычном ЯП (например паскале)

Автор:  Илья Ермаков [ Четверг, 02 Июль, 2009 21:08 ]
Заголовок сообщения:  Re: Семантический редактор

Я вот читаю и про себя обычно соглашаюсь с тем направлением, которое задаёт Сергей.
Но вот как только он начинает описывать конкретику - ну хоть тресни, не согласен. Не понимаю я, зачем вводить искусственную модальность - "визарды" и им подобные средства. Пошаговое взаимодействие с компьютером - это противоестественно. Это навязывание компьютером логики пользователю. Программирование взаимодействия.
Должна же быть гладкость - вижу целиком модель и в любой её точке меняю её так, как нужно. Гладко отливаю туда мысль. Т.е. на уровне семантического представления нужно как-то сохранить и даже усилить те преимущества, которые таки даёт текст - гладкость работы.

Автор:  Сергей Прохоренко [ Четверг, 02 Июль, 2009 22:01 ]
Заголовок сообщения:  Re: Семантический редактор

Илья Ермаков писал(а):
Я вот читаю и про себя обычно соглашаюсь с тем направлением, которое задаёт Сергей.
Но вот как только он начинает описывать конкретику - ну хоть тресни, не согласен. Не понимаю я, зачем вводить искусственную модальность - "визарды" и им подобные средства. Пошаговое взаимодействие с компьютером - это противоестественно. Это навязывание компьютером логики пользователю. Программирование взаимодействия.
Должна же быть гладкость - вижу целиком модель и в любой её точке меняю её так, как нужно. Гладко отливаю туда мысль. Т.е. на уровне семантического представления нужно как-то сохранить и даже усилить те преимущества, которые таки даёт текст - гладкость работы.


А я и не спорю. Я долго сомневался, употреблять ли слово wizard, и, как оказалось, правильно сомневался. В том смысле, что оказался неправильно понят. Я употребил это слово только для того, чтобы дать один из примеров конструкторов. Конечно, это самый худший пример. Чем продираться через последовательность диалоговых окон, лучше сразу видеть все места, где нужна настройка (или чтобы они добавлялись по мере понимания семантическим редактором замысла программиста).

Пойду на курсы русского языка :)

Автор:  Валерий Лаптев [ Пятница, 03 Июль, 2009 09:07 ]
Заголовок сообщения:  Re: Семантический редактор

1. Студент должен выбрать правильный конструктор.
2. Более того, студент для решения задачи должен выбрать правильную ПОСЛЕДОВАТЕЛЬНОСТЬ конструкторов
3. В каждом конструкторе, например, цикла, нужно задать правильные предусловия, постусловия, инвариант и т.д. - тут о конкретике нужно конкретно говорить.
От ошибок он избавлен только в части синтаксиса, но никак не семантики решаемой задачи.
4. В результате действий студента создается семантическая модель. Имея семантическую модель, имеем богатое поле возможностей для ее обработки. Интерпретатор может ее выполнить и сравнить результаты с эталонными результатами, записанными в системе.
На основе этого можно делать вывод о круге знаний и незнаний студента.
Можно непосредственно сравнивать семантическую модель с эталонной, заданной преподом в системе и на основании этого тоже делать выводы.
Это - при "долбежке гамм".
Тут есть интереснейшее поле для исследований: наработать "гаммы", потом простые пьесы, потом "этюды" для развития конкретной техники разработки (проектирования и программирования).

Для "этюдов" еще есть подход. Модель "этюда" - слишком велика, и "этюд" может быть исполнен в разной манере. Поэтому этюд можно обмеривать и на основании набора метрик делать выводы о качестве (что и сделал мой аспирант).
Это кроме того, что работать "этюд" должен правильно.

Автор:  Валерий Лаптев [ Пятница, 03 Июль, 2009 09:18 ]
Заголовок сообщения:  Re: Семантический редактор

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

Для одного цикла и то дофига чего вводить, а уж для последовательности конструкций...
Цитата:
Может быть, проверяется понимание студентом необходимости использовать цикл для поиска или перебора всех элементов контейнера? Так это и обезьяна поймет после однократного объяснения, а не то, что студент. Зачем это проверять?

Неверно! Кто поймет, а кто и нет - имею богатейший опыт как раз полного отсутствия понимания.
Вот для этого "долбежка гамм" и нужна - пока не поймет.
Цитата:
А если с контейнером надо сделать что-нибудь более сложное, то нужно не упражняться в хитрых алгоритмах, где легко допустить ошибку (ведь мы же учим НАДЕЖНОМУ программированию), а вставить библиотечную функцию (сортировку, поиск и т.п.), а в сложных случаях объект или компонент. Ну не проверять же способность студента выбрать функцию из хорошо комментированного тематического каталога! Если он не абсолютный тупица - найдет за 20 секунд максимум. Тут тоже нечего проверять.

Знание стандартных функций - одна из "гамм", которые тоже нужно "долбить".
Можно вставить разные функции, которые в принципе задачу-то решают, но по-разному.
Тем более - объект или компонент.
Используемое средство должно быть адекватно.
Вы не сталкивались, когда студент для вычисления х*х пишет pow(x,2)?
Я такое наблюдаю - через одного.
А особенно когда начинаются задачи на циклы с рядами, где нужно просто предыдущий член умножить на соответствующий модифицирующий множитель. Особенно с факториалами показательно.
Вместо того, чтобы написать n = n * i студет пишет внутри общего цикла отдельный цикл для вычисления факториала. Хотя достаточно просто умножить на индексную переменную.
Цитата:
Семантический редактор создается, чтобы радикальным образом улучшить технологию программирования, сделать сложные вещи легко доступными даже непрограммисту. :D Зачем же тащить из прошлого какие-то проверочные средства, ориентированные на устаревшую текстовую технологию программирования? Тем более, что это может задержать создание собственно семантического редактора :(

[/quote]
Дело не в текстовом представлении, а именно в наработке "правильной" техники "проигрывания гамм".

Автор:  Alexey_Donskoy [ Пятница, 03 Июль, 2009 14:03 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
Вы не сталкивались, когда студент для вычисления х*х пишет pow(x,2)?
Отнюдь. Семантикой в данном случае является именно "x в квадрате", всё остальное - технические детали реализации. С чего Вы уверены, что умножение эффективнее возведения в квадрат? Об этом нито не может знать лучше исполнителя, полноправным представителем которого является обсуждаемый семантический редактор!

Грустно, но опять наблюдается "инженерно-технический" подход вместо нормального, правильного.

Давно поставленный вопрос, который все игнорируют, в т.ч. и преподаватели, пишущие учебники - что более необходимо оптимизировать - эргономику для человека или эффективность кода для процессора?

Практически все компиляторы давно заменяют умножение на 2^n эффективным битовым сдвигом. Кто мешает предусмотреть столь же тривиальный шаблон x^2 = x*x при необходимости?

Это серьёзный вопрос. И эргономика технологии сильно коррелирует с надёжностью разработки, а, стало быть, учить надо не только математически правильным, но и эргономичным технологиям!

Валерий Лаптев писал(а):
А особенно когда начинаются задачи на циклы с рядами, где нужно просто предыдущий член умножить на соответствующий модифицирующий множитель.
В принципе в ту же степь. Объединить циклы не намного сложнее, чем вынести общий множитель за скобки или константное выражение за пределы цикла.

Вы забываете, что семантика тоже бывает разная. Как минимум, многоуровневая.
Математические объекты выгоднее описыать математическим языком, команды процессора - ассемблером, ну и т.п.
В Ваших же "гаммах" все уровни свалены в одну кучу. Это методически неверный подход.

Автор:  Alexey Veselovsky [ Пятница, 03 Июль, 2009 21:39 ]
Заголовок сообщения:  Re: Семантический редактор

Собственно а чем поможет тут семантический редактор как программа? То что обсуждается здесь -- сильно смахивает на создание новго ЯП,(возможно разумно функционального) более высокоуровневого чем Паскаль/Оберон + создание транслятора с него на оный паскаль или оберон.

Редактор (ака IDE) может быть полезен в том плане, что скажем в левом окошечке мы пишем на языке высокоуровневом некий код, а в правом окошечке сразу видим в какой код на Обероне оно преобразуется.

Автор:  Сергей Прохоренко [ Пятница, 03 Июль, 2009 22:18 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
Сергей Прохоренко писал(а):
Может быть, проверяется понимание студентом необходимости использовать цикл для поиска или перебора всех элементов контейнера? Так это и обезьяна поймет после однократного объяснения, а не то, что студент. Зачем это проверять?

Неверно! Кто поймет, а кто и нет - имею богатейший опыт как раз полного отсутствия понимания.
Вот для этого "долбежка гамм" и нужна - пока не поймет.


Неужели таких тупых абитуриентов принимают в ВУЗы на программирование? Вроде бы и конкурс немаленький - сужу по московским вузам (у меня сын как раз сейчас поступает). Ну ладно, уговорили, пусть будет и средство оценки, но только после семантического редактора.

У меня просьба к Валерию Лаптеву выкладывать рабочие концепции семантического редактора в этом форуме для обсуждения по мере появления, желательно с черновыми иллюстрациями и указанием, к какому уровню и блоку общей модели семантического редактора относится выкладываемая концепция - чтобы иметь целостное представление. Мне кажется, что приглашение принять участие в обсуждении нужно направить Евгению Зуеву, Сергею Гурину, Сергею Дмитриеву, Кириллу Осенкову и другим специалистам, которые близко подошли к идее семантического редактора и древовидной структуры программы, но не являются активными участниками этого форума.

Автор:  Валерий Лаптев [ Суббота, 04 Июль, 2009 09:04 ]
Заголовок сообщения:  Re: Семантический редактор

1. Повторяю. Сам семантический редактор мне нафиг не нужен. Только как средство в обучающей среде.
Если из этого удастся выудить промышленную составляющую - ради Бога.
2. Рано принимать участие. Когда будет хоть какая-то готовность в виде программ - тогда можно и позвать.

Алексею Донскому.
Я не согласен, что x*x эквивалентно pow(x,2). Для математика - да.
Может быть, для непрофессионала от программирования такие вопросы неважны, а для программистов - важны. И тут не в оптимизации дело, а именно в том, чтобы сразу на автомате выбирать адекватное средство для конкретного случая.

Ибо профессионал должен понимать, что в первом случае - одна команда умножения, а во втором случае - вызов функции со всеми накладными расходами. Я мне еще не попадался компилятор, который заменил бы вызов функции на одну команду умножения.
Именно для этого в С++ добавили слово inline. Это программист должен соображать, какую функцию написать подставляемой и сообщить компилятору, что эту функцию можно непосредственно подставить как макрос (собственно, макрос и есть, только вычислительный по терминологии не помню кого).
Аналогично и в случае с факториалом.

Автор:  Geniepro [ Суббота, 04 Июль, 2009 09:27 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
мне еще не попадался компилятор, который заменил бы вызов функции на одну команду умножения.

Для суперкомпилятора не проблема частично вычислить функцию pow с аргументами x и 2 и упростить её до x*x.

Three Futamura Projections и не только

Автор:  Валерий Лаптев [ Суббота, 04 Июль, 2009 09:41 ]
Заголовок сообщения:  Re: Семантический редактор

Сергей Прохоренко писал(а):

Неужели таких тупых абитуриентов принимают в ВУЗы на программирование? Вроде бы и конкурс немаленький - сужу по московским вузам (у меня сын как раз сейчас поступает). Ну ладно, уговорили, пусть будет и средство оценки, но только после семантического редактора.


Чтобы было понятно, каких приходится учить.
У нас в городе есть три препода, которые поставляют нам элиту. Только очень отдельные люди едут поступать в центр. Уровень элиты таков.
Недавно на кафедру заходил выпускник - один из разгильдяев в своем выпуске. Разгильдяй, потому что диплом защитил не в июле, как нормальный студент, а 23 декабря, за неделю до истечения полномочий комиссии. Приехал он из Сиднейского университета, где преподает базы данных и пишет диссер на соискание степени phd.
Еще недавно приходил нормальный студент, который сейчас в аспирантуре на кафедре Карпова в питерском политехе. Выпускников-кандидатов наук у нас тоже хватает - я и считать уже перестал.
Таких у нас примерно половина (последнее время стало меньше - треть).
Но есть вторая половина. Из школ, в которых программирование вообще не изучали. Или вообще из села. Вот с такими нужна "долбежка". Потом, конечно, из них вырастают вполне нормальные дипломники. Но поначалу требуется много времени и нервов, чтоб не выгнать, а все же хоть как-то научить.
Поэтому хочется поручить долбежку железному ящику. И чтоб не отвлекаться на мелочи вроде скобку не поставил или точку с запятой забыл - нужен развитый редактор.
А заодно и одинаковый для всех способ оценки выполненной работы.

Вот такая у нас простая жисть в провинциальном городе Астрахани...
:mrgreen:

Автор:  Geniepro [ Суббота, 04 Июль, 2009 10:09 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
Поэтому хочется поручить долбежку железному ящику. И чтоб не отвлекаться на мелочи вроде скобку не поставил или точку с запятой забыл - нужен развитый редактор.

Напомнило заметку Криса Окасаки (одного из известнейших ФПшников), которую я здесь уже пару раз пиарил раньше:

In praise of mandatory indentation for novice programmers
Суть там в том, что он был сам поражён, насколько значимые отступы (как в Питоне или Хаскелле) облегчают обучение програмированию людей. Это даже более значимо, чем основная парадигма языка -- императив/декларатив/функциональщина...

Нет скобок/точек с запятой -- нет проблемы! :lol:

Автор:  Alexey_Donskoy [ Суббота, 04 Июль, 2009 11:11 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
1. Повторяю. Сам семантический редактор мне нафиг не нужен. Только как средство в обучающей среде. Если из этого удастся выудить промышленную составляющую - ради Бога.
...Я не согласен, что x*x эквивалентно pow(x,2). Для математика - да. Может быть, для непрофессионала от программирования такие вопросы неважны, а для программистов - важны.
Уважаемый Валерий! Мне кажется, что Вы допускаете очень распространённую и имеющую далеко идущие последствия ошибку.

Вы забываете о том, что программирование (в отличие от математики, да и информатики) является прикладной дисциплиной. Из этого следует, что первична задача, для которой выбирается адекватный инструмент. Например, а) ЭВМ, б) программирование на ЯВУ. Но не обязательно!

Повторяю, что семантикой задачи диктуется "икс в квадрате". Все остальные измышления есть синтаксис конкретного исполнителя. Учить синтаксису конкретного исполнителя необходимо в специальном профессиональном учебном заведении. В школе надо учить информатике, и в её рамках - выбору адекватного метода решения и инструмента, а вовсе не разнице между x*x и x^2.

Валерий Лаптев писал(а):
И тут не в оптимизации дело, а именно в том, чтобы сразу на автомате выбирать адекватное средство для конкретного случая. Ибо профессионал должен понимать, что в первом случае - одна команда умножения, а во втором случае - вызов функции со всеми накладными расходами.
Профессионал должен понимать, что адекватность в данном случае есть не что иное, как учёт специфики исполнителя, который в конечном итоге оборачивается именно заботой об эффективности. А исполнители бывают очень разные. Например, процессор может поддерживать плавающую арифметику или нет, может иметь конвейер или нет. А, если вспомнить более экзотические примеры, вроде форт-процессоров, то задача адекватности из просто весёлой превращается в весьма нетривиальную.

Поэтому правильным решением будет отнести все эти различия на уровень компилятора и его оптимизатора.

Валерий Лаптев писал(а):
мне еще не попадался компилятор, который заменил бы вызов функции на одну команду умножения.
Это минус Вам (тем более, что Вы в области образования работаете).

Валерий Лаптев писал(а):
Аналогично и в случае с факториалом.
Вы меня совсем огорчаете отсутствием системного подхода. Неужели не понятно, что оптимизация цикла есть именно оптимизация цикла, мелкий технический вопрос, который не имеет фундаментального значения! Да, безусловно, обучаемый должен знать определённые паттерны преобразований (в т.ч. алгоритмических, наряду с математическими вроде вынесения общего множителя за скобку). Да, в этом (и только в этом) предлагаемая Вами технология полезна.

Но в целом Ваши высказывания по этой теме напоминают дилетантский тезис "информатика - это программирование" (добавить по вкусу "на Бейсике" или "на Обероне").

Предлагаю простейший тест: "Для чего нужен компьютер?"
а) для игрушек;
б) для программирования на языке XXX;
в) для повышения эффективности решения прикладных задач.

"Для чего нужно учить информатике?"
а) для ЕГЭ ("культурный", но неосознанный вариант ответа - "для фундаментального образования");
б) для умения программировать на языке ХХХ;
в) для умения выбирать адекватный инструмент решения прикладных задач.

Тогда всё встанет на свои места.

Страница 3 из 34 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/