OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 22 Ноябрь, 2019 16:49

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




Начать новую тему Ответить на тему  [ Сообщений: 679 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 34  След.
Автор Сообщение
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Среда, 01 Июль, 2009 14:17 

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Среда, 01 Июль, 2009 15:11 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1040
Откуда: Россия, Чебоксары
Чтобы уж окончательно поставить точки, заметим, что сама объектно-ориентированная методология не является идеальным подходом и не всегда может быть рекомендована.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Среда, 01 Июль, 2009 15:39 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3109
Откуда: Астрахань
Для "правильной" постановки мышления требуется "долбить гаммы". А "гаммы" относительно легко автоматизировать и тем более проверять.
Так что автоматизация "долбежки гамм" - самое то, что требуется.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Среда, 01 Июль, 2009 21:11 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1040
Откуда: Россия, Чебоксары
Что-то в этом есть! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Среда, 01 Июль, 2009 21:23 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Валерий Лаптев писал(а):
Для "правильной" постановки мышления требуется "долбить гаммы". А "гаммы" относительно легко автоматизировать и тем более проверять.
Так что автоматизация "долбежки гамм" - самое то, что требуется.


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

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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Четверг, 02 Июль, 2009 14:26 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Четверг, 02 Июль, 2009 20:11 
Аватара пользователя

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


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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Четверг, 02 Июль, 2009 20:46 

Зарегистрирован: Понедельник, 05 Июнь, 2006 09:49
Сообщения: 327
Откуда: Ленинград, Емельянов Алексей Николаевич
> Сергей Прохоренко ...
Цитата:
Программирование с помощью семантического редактора должно давать заведомо правильный результат, если использована правильная модель прикладной области (а этот вопрос уже выходит за рамки программирования). Студент вызывает конструктор (wizard) цикла и вводит параметры (предусловие и постусловие для каждой ветки, необходимость однократного прохождения цикла несмотря на предусловие, индекс цикла, его начальное и конечное значение и шаг), а дальше всё происходит автоматически


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Четверг, 02 Июль, 2009 21:08 
Модератор
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Четверг, 02 Июль, 2009 22:01 
Аватара пользователя

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


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

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


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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Пятница, 03 Июль, 2009 21:39 

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Пятница, 03 Июль, 2009 22:18 
Аватара пользователя

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

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


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

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


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

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3109
Откуда: Астрахань
1. Повторяю. Сам семантический редактор мне нафиг не нужен. Только как средство в обучающей среде.
Если из этого удастся выудить промышленную составляющую - ради Бога.
2. Рано принимать участие. Когда будет хоть какая-то готовность в виде программ - тогда можно и позвать.

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

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


Последний раз редактировалось Валерий Лаптев Суббота, 04 Июль, 2009 09:32, всего редактировалось 2 раз(а).

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

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Валерий Лаптев писал(а):
мне еще не попадался компилятор, который заменил бы вызов функции на одну команду умножения.

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

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


Последний раз редактировалось Geniepro Суббота, 04 Июль, 2009 10:12, всего редактировалось 1 раз.

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

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3109
Откуда: Астрахань
Сергей Прохоренко писал(а):

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


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

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


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

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Валерий Лаптев писал(а):
Поэтому хочется поручить долбежку железному ящику. И чтоб не отвлекаться на мелочи вроде скобку не поставил или точку с запятой забыл - нужен развитый редактор.

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Суббота, 04 Июль, 2009 11:11 
Аватара пользователя

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

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

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

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

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

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

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

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

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

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 679 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 34  След.

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


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

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


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

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