?

Log in

No account? Create an account

Об обучении программированию [4]

« previous entry | next entry »
Jan. 20th, 2008 | 10:55 pm

А вот более формализованное и расширенное описание того тезиса, с которого началась данная тема.


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

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


(источник)

Интересно получается - с одной стороны, интерес к подобной тематике достаточно явно коррелирует с лагерем "противников" текущего мэйнстрима сред исполнения и языков разработки. В то же время противоположная группа - "практики" ведут себя как викинги или янычары классического периода: забирая людей, они не только ничего не дают в теоретическом плане, но и наоборот - уничтожают рассадники всего, что непохоже на святую троицу современной практики C++/Java/C#.

Тотальное сужение кругозора обучаемых за счёт концентрации на мэйнстриме - фактор, который должен оказывать очень существенное отрицательное влияние на уровень обучения.

Link | Leave a comment |

Comments {12}

Alex Ott

(no subject)

from: alexott
date: Jan. 20th, 2008 09:13 pm (UTC)
Link

я все надеюсь, что хотя бы за счет вхождения F# в Visual Studio, преподавание функционального программирования станет реальностью

Reply | Thread

netch

(no subject)

from: netch
date: Jan. 20th, 2008 09:16 pm (UTC)
Link

В третьем C# уже обещают много вкусностей.
А про F# в VS - как скоро? И хорошо бы, чтобы оно не только под Вистой шло.:)

Reply | Parent | Thread

Alex Ott

(no subject)

from: alexott
date: Jan. 20th, 2008 09:20 pm (UTC)
Link

ну как я понял из недавних постов, начат активный процесс включения - выделены дополнительные инженеры и т.п. Так что похоже, что в следующем релизе оно может быть официально. Хотя оно и сейчас достаточно нормально интегрируется со средой.
Правда я все-равно предпочитаю Emacs, так что может допилю tuareg-mode до вменяемой поддержки f#

Reply | Parent | Thread

Maksym Shevchenko

(no subject)

from: r0land
date: Jan. 20th, 2008 10:33 pm (UTC)
Link

В некоторых кругах Ruby очень популярен.

Reply | Thread

netch

(no subject)

from: netch
date: Jan. 21st, 2008 07:37 am (UTC)
Link

"Узок их круг, страшно далеки они от народа" ™

Reply | Parent | Thread

Maksym Shevchenko

(no subject)

from: r0land
date: Jan. 21st, 2008 11:21 am (UTC)
Link

Ну не слишком уж и узок... Из моих знакомых PHP-шники на него переходят.

Reply | Parent | Thread

Микола

(no subject)

from: nahtigal
date: Jan. 20th, 2008 11:44 pm (UTC)
Link

По-перше, на це хочеться сказати, що саме практика зрештою визначала, яка саме з теорій залишиться, а яка кане в Лєту. Аналогія з інструментарієм програміста тут, як на мене, очевидна.

По-друге, я знаю дуже мало студентів, які справді знають C++. Більше того, я себе не відношу до людей, які його знають добре, хоч це, разом з pure C, мій основний інструмент вже багато років.

Ну і по-третє, мені якось не хочеться думати, що я "знищую" розсадники всього, що не схоже на "святу трійцю". Хочеться, щоби люди, які зараз виходять з різноманітних навчальних закладів могли хоч приблизно вирішувати реальні практичні задачі.

Reply | Thread

netch

(no subject)

from: netch
date: Jan. 21st, 2008 07:49 am (UTC)
Link

> що саме практика зрештою визначала, яка саме з теорій залишиться, а яка кане в Лєту.

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

> По-друге, я знаю дуже мало студентів, які справді знають C++.

Насколько их знание реально - в данном случаев мало принципиально.

> Ну і по-третє, мені якось не хочеться думати, що я "знищую" розсадники всього, що не схоже на "святу трійцю".

Знаешь про трёх китайских обезьян?

> Хочеться, щоби люди, які зараз виходять з різноманітних навчальних закладів могли хоч приблизно вирішувати реальні практичні задачі.

Мне тоже этого хочется. Только всё больше кажется, что для этого надо менять мэйнстрим.

Reply | Parent | Thread

Микола

(no subject)

from: nahtigal
date: Jan. 28th, 2008 01:08 am (UTC)
Link

Про трьох мавп не знаю. Також, я абсолютно не розумію, як зміни в мейнстрімі приведуть до того, що молоді кадри стануть більш боєготовими. Поясни, плс.

Reply | Parent | Thread

netch

(no subject)

from: netch
date: Jan. 28th, 2008 07:14 am (UTC)
Link

> Про трьох мавп не знаю.

Первая ничего не слышит, вторая ничего не видит, третья ничего никому не скажет.

> Також, я абсолютно не розумію, як зміни в мейнстрімі приведуть до того, що молоді кадри стануть більш боєготовими. Поясни, плс.

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

Reply | Parent | Thread

(no subject)

from: zyxman
date: Mar. 7th, 2008 01:33 am (UTC)
Link

проще надо быть (с)

Reply | Parent | Thread

Malx

from: anonymous
date: Mar. 6th, 2008 08:56 pm (UTC)
Link

Это все фигня!

Скоро понадобятся программисты человеческих компьютеров ;))))

http://video.google.com/videoplay?docid=-8246463980976635143

т.е компов использующих людей в качестве "вычислителей".

Reply | Thread