Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  14:29[Войти] | [Зарегистрироваться]
Обсуждение темы:
Информатика-21. Форум проекта

Форум открыт по просьбам читателей сайта проекта для обсуждения Оберона/Компонентного Паскаля/Блэкбокса как технологической платформы для современной общей системы преподавания программирования, параллельной и дополняющей систему преподавания математики. Мнения за и против, вопросы как и почему, и т.п.

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

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 1147 сообщений

Добавить свое сообщение


Дополнительные ссылки
  1. Проект «Информатика—21»
  2. Обсуждение темы "Мысли об Обероне" на Королевстве

Уважаемые участники форума!
Обращаем ваше внимание на тот факт, что данная тема никоим образом не допускает offtopic и предполагает максимальную корректность высказываний: модераторы удалят без предупреждения любые сообщения с вульгарным или неуместным контентом, переходом на личности и т.п.



Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 827—818 | 817—808 | 807—798 | ...>>>
Всего сообщений в теме: 1147; страниц: 115; текущая страница: 34


№ 817   15-05-2006 06:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 809« (Руслан Богатырев)
___________________________

3. Конкретизирующее программирование
Изменение конфигурационного файла целевой системы (напр., на XML). Написание скрипта/макроса, подправляющего/конкретизирующего функционал системы.


Попробуем формализовать.

Имеется интерпретатор некоторого языка.
Язык может быть странным, возможно алгоритмически неполным.
Написание программы и её выполнение интерпретатором почему-то называется конкретизирующим программированием. Почему? В чём отличие от синтезирующего прог-я?


№ 816   15-05-2006 06:44 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 814« (captain cobalt)
___________________________

Надо наконец разобраться с конкретизирующим программированием.

Как определяются понятия "универсальный" и "специализированный"?

Из универсальной и специализированной программы какая будет сложнее, а которая проще?


Определяются где и кем? Гвоздь -- он универсален или специализирован? Зависит от точки зрения. Конкретизация, на мой взгляд, может быть как по отношению к универсальному ПО, так и к специализированному.

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

Что касается простоты: она напрямую не зависит от универсальности/специализированности. Можно иметь крайне сложную универсальную вещь (из которой потом конкретизируется результат) и простую специализированную. А можно и наоборот.


№ 815   15-05-2006 06:35 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 813« (Сергей Перовский)
___________________________

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

Да, это важное замечание. Напомню слова Рендела Брайанта (Randal Bryant, декана факультета компьютерных наук в Carnegie Mellon University): "Нам необходимо очнуться от спячки. Студенты, которые изучали в средней школе информатику, обучены тому, как писать программы на Java. Их научили писать код, который делает скучные вещи вроде сортировки списка чисел. Они ничего не знают о крупных идеях в области компьютерных наук".

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

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

В ИТ-индустрии на самом деле есть программисты и программисты. Те и другие кодируют. Но разница между ними -- как между математиком и плотником.


№ 814   15-05-2006 06:35 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 805« (Руслан Богатырев)
___________________________

Надо наконец разобраться с конкретизирующим программированием.

Как определяются понятия "универсальный" и "специализированный"?

Из универсальной и специализированной программы какая будет сложнее, а которая проще?


№ 813   15-05-2006 06:16 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 788« (AK)
___________________________
>>>Сообщение 745 - Сергей Перовский:
>>>Но человеческий мозг _не может_ обучаться по принципу от общего к частному.
Только проделав путь к обобщению самостоятельно, на многих примерах, он способен это обобщение использовать.
>>>На самом деле ситуация с точностью до наоборот. Причем обоснованная _научными_ экспериментами в течении многих десятков лет и разработанной соответствующей теорией.
Ссылки в студию. Если за основу брать не труды по педагогике, в которой постановка чистого эксперимента практически невозможна, а модели механизмов работы мозга (прежде всего теорию нейронных сетей), то становится понятно, что абстрактные понятия могут быть сформированы только на основе конкретных, что все обучение идет от частного к общему.
Подбором примеров, использованием эмоционально сильных образов, педагог может интенсифицировать этот процесс. Но сформировать абстрактное понятие у человека не имеющего никакого опыта в нужной сфере невозможно.

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

И о важности инструмента: если решать задачи на сложение в приделах сотни, то разницы между римской системой и позиционной можно и не заметить. Но задачу о стоимости 2,5 кг яблок по 13,50 в римской системе решить проблематично.
Но, поскольку в школьном курсе мы не можем дойти до по настоящему сложных задач по программированию, мы не можем показать школьникам преимущества инструмента, позволяющего справится со сложностью.




№ 812   15-05-2006 05:36 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 811« (Сергей Губанов)
___________________________

Так почему Вас так удивляет, что BlackBox-совские модули нельзя запустить на машине, на которой не установлен BlackBox?

Ответ простой: степень распространенности run-time. Для BlackBox распространенность минимальная. Значит, для показа друзьям нужен отчуждаемый .EXE. Это понятно. Так разве BlackBox (как и ETH Oberon) такого не позволяет?


№ 811   15-05-2006 05:30 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 802« (Дмитрий)
___________________________

...получить результат отдельно от среды (принести показать друзьям). Инструмент должен быть отделен от результата...

Windows программы нельзя запустить на машине, на которой предварительно не была установлена Windows. Java программы нельзя запусть на машине, на которой предварительно не была установлена JVM. C# программы нельзя запусть на машине, на которой предварительно не была установлена .Net. Так почему Вас так удивляет, что BlackBox-совские модули нельзя запустить на машине, на которой не установлен BlackBox?


№ 810   15-05-2006 05:06 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 800« (Сергей Губанов)
___________________________

В Обероне и Компонентном Паскале есть сборщик мусора, так что переделывая книгу Шеня с Паскаля на Оберон многие задачи можно реализовать через настоящее использование динамической памяти - списки и деревья реализовывать не через массивы, а через POINTRER TO RECORD.

Вполне разумно.

Приведу выдержку из предисловия к книге: "Книга написана по материалам занятий программированием со школьниками математических классов школы N57 г. Москвы  и студентами младших курсов (Московский государственный университет, Независимый Московский университет). <...> В качестве языка для записи программ был выбран паскаль.  Он достаточно прост и естествен, имеет неплохие реализации (например, Turbo Pascal 3.0 и 5.0 фирмы Borland) и позволяет записать решения всех рассматриваемых задач. Возможно, Модула-2 или Оберон были бы более изящным выбором, но пока что они менее доступны."

Думаю, при переводе задач Шеня на Оберон стоит поконсультироваться с автором. Оберон он знает и держал в голове при написании книги.


№ 809   15-05-2006 04:57 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 808« (Alexey Veselovsky)
___________________________

Привиди, пожалуйста, коротенькие примеры (исходники) каждого типа программирования, как ты их понимаешь. А то спорить без них можно долго упорно и безрезультативно.

1. Синтезирующее программирование
Ручное: написание функционально законченного кода (процедура, модуль) на языке программирования (напр., Обероне). Автоматическое: препроцессор, генератор исходного текста на основе описания на (проблемном) языке.

2. Сборочное программирование
Формирование программы (системы) из готовых компонентов и модулей (состыковка).

3. Конкретизирующее программирование
Изменение конфигурационного файла целевой системы (напр., на XML). Написание скрипта/макроса, подправляющего/конкретизирующего функционал системы.


№ 808   15-05-2006 04:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 805« (Руслан Богатырев)
___________________________

Ответ на »сообщение 796« (Alexey Veselovsky)
___________________________

Тут я с Вами не соглашусь.

В своей работе "Научные основы доказательного программирования" Андрей Петрович Ершов (надо будет выложить) выделял три вида программирования:

1) синтезирующее (автоматическое, автоматизированное или ручное манипулирование знанием о задаче с синтезом соответствующей программы);
2) сборочное (построение программы из уже существующих и корректных фрагментов)
3) конкретизирующее (построение специализированных программ из универсальных заготовок).

...

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


Привиди, пожалуйста, коротенькие примеры (исходники) каждого типа программирования, как ты их понимаешь. А то спорить без них можно долго упорно и безрезультативно.


<<<... | 827—818 | 817—808 | 807—798 | ...>>>
Всего сообщений в теме: 1147; страниц: 115; текущая страница: 34


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования