Re[25]: TMTOWTDI
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.10.12 10:57
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>То есть вполне конкретное преобразование, а именно разворачивание свернутого выражения и изменение модальности, ты рассматриваешь как произвольное ? Я правильно тебя понял ?

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

I>Все мои примеры сделаны ровно по той же схеме — свернутая форма подразумевает глагол. При этом, даже если глаголы разные, все равно есть кое что общее, а именно — изменение состояния.

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

I>Я показал почему эта пословица есть императивная речь + продемонстрировал изменение модальности, а остальное это твои домыслы.

Нет, вы привели свои домыслы по поводу того, как построить императивное утверждение, которое нетривиальным образом связано с исходным.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[43]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 03.10.12 11:18
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


S>>Дык НЕ научились ведь, иначе что ты мне доказываешь?


I>Прикинь, как круто было бы — дал сразу лямбда-счисление и не надо 5 лет долбить уравнения, системы уравнений, задачи на упрощение выражений и тд и тд и тд.

Не знаю, что вы там 5 лет долбили, если подставлять значения не научились.
I>Вобщем пиши трактат и становись в очередь на Нобелевку.
То что для тебя достойно нобелевки — обыкновенное дело для среднего школьника, даже не битого математичкой.
Re[11]: Императивное программирование
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.10.12 11:29
Оценка:
Здравствуйте, Ikemefula, Вы писали:


I>В автомобиле нужно знать внутреннее устройство с определенной степенью детализации. Если ты просто расскажешь и покажешь двигатель и колеса, то ничего ты не добьёшься. Нужна вполне адекватная модель — руль, гидроусилитель, колеса, коробка передач, трансмиссия, подвеска, проводка, зажигания и связи между ними. Все это, повторяясь, внутреннее устройство, только с определенным уровнем детализации.

Ключевое слово — выделено.
Определённая степень детализации — это ровно "наблюдаемое поведение".
Блондинка понятия не имеет, как устроен гидроусилитель, и что он вообще есть. Ей достаточно знать, что когда поворачиваешь руль вправо — машинка тоже поворачивает вправо. Всё, на этом необходимая детализация заканчивается.

На самом деле всё ещё хуже — реальное внутреннее устройство автомобиля вообще неизвестно почти никому, кроме автомехаников.
Нарисованная в голове "знатока" картинка руля — гидроусилителя — рулевой рейки значительно упрощена с отбрасыванием массы существенных деталей — например, механизма подруливания задними колёсами, который отличает поворот от перестроения.
Механизм работы автоматической трансмиссии — это вообще rocket science. Помнится, в Популярной Механике была про это статья. Ровно после этого я бросил читать этот журнал, т.к. всё "объяснение" там сводилось к "ну, там унутре шестерёнки, которые крутятся".
Моя жена знает про АТ ещё меньше меня. И это абсолютно не мешает ей прекрасно водить машину.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[12]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.10.12 11:55
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Определённая степень детализации — это ровно "наблюдаемое поведение".

S>Блондинка понятия не имеет, как устроен гидроусилитель, и что он вообще есть. Ей достаточно знать, что когда поворачиваешь руль вправо — машинка тоже поворачивает вправо. Всё, на этом необходимая детализация заканчивается.

Это самое "наблюдаемое поведение" начинают наблюдать примерно с тех пор, когда берут в руки игрушки, велосипеды, самокаты и тд и тд. Продолжается это на уроках физики, дальше появляется опыт как пассажира. В итоге у всех современных людей в голове уже сформирована более-менее адекватная модель с нужной степенью детализации.
И при этом я нигде не утверждаю, что надо знать авто на уровне автомеханика.
Re[13]: Императивное программирование
От: Курилка Россия http://kirya.narod.ru/
Дата: 03.10.12 12:06
Оценка: 99 (1)
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Sinclair, Вы писали:


S>>Определённая степень детализации — это ровно "наблюдаемое поведение".

S>>Блондинка понятия не имеет, как устроен гидроусилитель, и что он вообще есть. Ей достаточно знать, что когда поворачиваешь руль вправо — машинка тоже поворачивает вправо. Всё, на этом необходимая детализация заканчивается.

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

I>И при этом я нигде не утверждаю, что надо знать авто на уровне автомеханика.

Вот ещё одно мнение, о том, что ваше "у всех" не совсем наблюдается в реальности.
Re[44]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.10.12 12:21
Оценка:
Здравствуйте, samius, Вы писали:

I>>Прикинь, как круто было бы — дал сразу лямбда-счисление и не надо 5 лет долбить уравнения, системы уравнений, задачи на упрощение выражений и тд и тд и тд.

S>Не знаю, что вы там 5 лет долбили, если подставлять значения не научились.

"В 4м они делают все руками, а надо дождаться пока все это не начнут делать в уме автоматически, а на это нужно очень много времени."
С выделенным текстом всё понятно ?

Еще раз — если ты умеешь подставить 2 в a + 2 и получить 4 то это не тоже самое, что ты освоил бета редукцию.
То есть, ни много ни мало, нужно ждать пока человек не научится упрощать и вычислять выражения в уме, причем
1 за очень короткое время
2 без ошибок
Вот тогда можно сказать он готов к лямбда счислению тому же.

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

Попробуй на досуге посмотреть результаты выпускных или вступительных экзаментов по математике российских школьников/абитуриентов, узнаешь много нового на тему, как школьники "свободно" владеют этой подстановкой. Чуть не все ошибки в вычислениях это ошибки в подстановках и упрощении выражений. Брошеные на пол-пути вычисления — тоже самое, слишком много времени тратят на ошибки и вычисления.
Собственно не нужно удивляться, почему в школе очень много времени удивляется всяким задачам на упрощение выражений.

Вобщем, продолжай хамить дальше, у тебя это хорошо получается.
Re[13]: Императивное программирование
От: Sinclair Россия https://github.com/evilguest/
Дата: 03.10.12 12:27
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>И при этом я нигде не утверждаю, что надо знать авто на уровне автомеханика.

Ну так вот наблюдаемое поведение алгебраических абстракций начинают наблюдать примерно с пятого класса. И к первому курсу мы вправе ожидать от произвольного студента способности хотя бы подставить x*y вместо a в выражении (a + b)^2 = a^2 + 2ab + b^2.
Все необходимые навыки для освоения программирования уже есть.
Человека, который знает про машину ровно столько, сколько можно узнать при освоении детской тележки с колёсиками, обучают вождению за 30 часов.
Человека, который в качестве базиса имеет школьный курс математики, крайне тяжело научить императивному программированию.
Потому что он не имеет никакого опыта работы с "абстрактным вычислителем".
По моему опыту работы с непрофильными студентами первых курсов, концепции "переменной" вызывают значительный баттхёрт.
Просто потому, что в школе x = 2 + a и x — a = 2 — одно и то же, и этому обучают пять лет подряд.
А в программе внезапно оказывается, что x — это не символ, а имя ячейки, в которую можно что-то положить, а потом забрать.
И что положить в холодильник слона можно только за четыре инструкции, потому что сначала нужно достать оттуда жирафа.

После того, как концепция "переменной-ячейки" усвоена, надо объяснять, что такое указатель. И это ещё один барьер, вокруг которого можно бегать кругами. Очень уж тяжело даётся простым людям эта концепция.

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

Да, в итоге на некоторых из жертв снисходит озарение, и картинка внезапно складывается.
Но к моменту, когда это произошло, их одноклассники, посаженные за Excel, уже не только освоили декларативное программирование, а наколбасили на нём тонны прикладных решений.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[45]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 03.10.12 12:41
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:



S>>Не знаю, что вы там 5 лет долбили, если подставлять значения не научились.


I>"В 4м они делают все руками, а надо дождаться пока все это не начнут делать в уме автоматически, а на это нужно очень много времени."

I>С выделенным текстом всё понятно ?
Как раз не все. Автоматически — это не приходя в сознание что ли? И я-то так не умею. Если не вожу пальцами по экрану, одним в формулу, другим в значение, то это не значит что я достиг автоматизма.

I>Еще раз — если ты умеешь подставить 2 в a + 2 и получить 4 то это не тоже самое, что ты освоил бета редукцию.

I>То есть, ни много ни мало, нужно ждать пока человек не научится упрощать и вычислять выражения в уме, причем
I>1 за очень короткое время
I>2 без ошибок
I>Вот тогда можно сказать он готов к лямбда счислению тому же.
Ошибки делают все, даже те кто изучил лямбда-счисление. И за рулем тоже, если что.

I>Когда дети строят графики функций на такие вычисления у них уходит очень много времени, поэтому все то, чем важна бета-редукция в лямбда-счислении, останется в стороне.

Чем она важна кроме того что это и есть подстановка?

I>Попробуй на досуге посмотреть результаты выпускных или вступительных экзаментов по математике российских школьников/абитуриентов, узнаешь много нового на тему, как школьники "свободно" владеют этой подстановкой. Чуть не все ошибки в вычислениях это ошибки в подстановках и упрощении выражений. Брошеные на пол-пути вычисления — тоже самое, слишком много времени тратят на ошибки и вычисления.

I>Собственно не нужно удивляться, почему в школе очень много времени удивляется всяким задачам на упрощение выражений.
А упрощать не нужно. Нужно подставить и вычислить. Можно даже не подставлять и вычислять, а тупо нарисовать стрелку: x -> f(x). Тут даже ошибиться негде.

I>Вобщем, продолжай хамить дальше, у тебя это хорошо получается.

Польщен

Но я обсуждаю с тобой не перспективы внедрения в школьную программу 4го класса лямбда-счисления. Я обсуждаю с тобой наличие в школьной программе (безотносительно классов) концепций, позволяющей понять суть map.
Re[46]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.12 08:11
Оценка:
Здравствуйте, samius, Вы писали:

I>>С выделенным текстом всё понятно ?

S>Как раз не все. Автоматически — это не приходя в сознание что ли? И я-то так не умею. Если не вожу пальцами по экрану, одним в формулу, другим в значение, то это не значит что я достиг автоматизма.

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


I>>Вот тогда можно сказать он готов к лямбда счислению тому же.

S>Ошибки делают все, даже те кто изучил лямбда-счисление. И за рулем тоже, если что.

Идеального эталона не существует. Это все что ты хотел сказать или была какая более глубокая мысль ?

I>>Когда дети строят графики функций на такие вычисления у них уходит очень много времени, поэтому все то, чем важна бета-редукция в лямбда-счислении, останется в стороне.

S>Чем она важна кроме того что это и есть подстановка?

Дает полноту по тьюрингу.

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

S>А упрощать не нужно. Нужно подставить и вычислить. Можно даже не подставлять и вычислять, а тупо нарисовать стрелку: x -> f(x). Тут даже ошибиться негде.

(\x. x x x) (\x. x x x)

Валяй.

I>>Вобщем, продолжай хамить дальше, у тебя это хорошо получается.

S>Польщен

S>Но я обсуждаю с тобой не перспективы внедрения в школьную программу 4го класса лямбда-счисления. Я обсуждаю с тобой наличие в школьной программе (безотносительно классов) концепций, позволяющей понять суть map.


А по моему ты просто хамишь, т.к. никаких аргументов на этом фоне не заметно.
Re[47]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 04.10.12 08:48
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


I>>>С выделенным текстом всё понятно ?

S>>Как раз не все. Автоматически — это не приходя в сознание что ли? И я-то так не умею. Если не вожу пальцами по экрану, одним в формулу, другим в значение, то это не значит что я достиг автоматизма.

I>

I>Наше исследование показало, что любая сложная сознательная психическая деятельность сначала носит развернутый характер. На первых этапах абстрактное мышление требует ряда внешних опорных средств, и только позднее, в процессе овладения определенным видом деятельности, логические операции автоматизируются и превращаются в «умственные навыки».

А где тут логические операции?

S>>Ошибки делают все, даже те кто изучил лямбда-счисление. И за рулем тоже, если что.


I>Идеального эталона не существует. Это все что ты хотел сказать или была какая более глубокая мысль ?

Я хотел сказать что нет смысла ждать пока кто-то перестанет ошибаться. Собственно это и не практикуется ни в школе ни в вузе.

I>>>Когда дети строят графики функций на такие вычисления у них уходит очень много времени, поэтому все то, чем важна бета-редукция в лямбда-счислении, останется в стороне.

S>>Чем она важна кроме того что это и есть подстановка?

I>Дает полноту по тьюрингу.

Сама по себе она ничего не дает. Лямбда-счисление без бета редукции да, неполно. Но я не предлагаю в школе давать лямбда счисление. Похоже на то, что это твоя идея.

S>>А упрощать не нужно. Нужно подставить и вычислить. Можно даже не подставлять и вычислять, а тупо нарисовать стрелку: x -> f(x). Тут даже ошибиться негде.


I>(\x. x x x) (\x. x x x)


I>Валяй.

Держи
(\x.xxx)(\x.xxx)(\x.xxx)

S>>Но я обсуждаю с тобой не перспективы внедрения в школьную программу 4го класса лямбда-счисления. Я обсуждаю с тобой наличие в школьной программе (безотносительно классов) концепций, позволяющей понять суть map.


I>А по моему ты просто хамишь, т.к. никаких аргументов на этом фоне не заметно.

А чем еще мне заняться? Ведь по сути ты со мной согласился, но продолжаешь возражать каждой букве. Абстракция для map в школе дана, и не надо лезть мне под кожу с лямбда счислением в 4м классе.
Re[14]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.12 08:50
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Ну так вот наблюдаемое поведение алгебраических абстракций начинают наблюдать примерно с пятого класса. И к первому курсу мы вправе ожидать от произвольного студента способности хотя бы подставить x*y вместо a в выражении (a + b)^2 = a^2 + 2ab + b^2.

S>Все необходимые навыки для освоения программирования уже есть.

Ну я бы не был так уверен, глядя на ошибки в вычислениях у абитуриентов или даже студентов, когда они скажем электротехнику решают

S>Человека, который знает про машину ровно столько, сколько можно узнать при освоении детской тележки с колёсиками, обучают вождению за 30 часов.


S>Человека, который в качестве базиса имеет школьный курс математики, крайне тяжело научить императивному программированию.


Наоборот, проще простого. Это самое императивное программирование многие начинают осваивать примерно в 4-6м классе. Со мной както работал чел, который начал программировать ажно в 3м классе. Зато не знаю ни одного человека, который бы начал программировать в 4-6м да сразу с функциональщины.

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

S>Потому что он не имеет никакого опыта работы с "абстрактным вычислителем".

S>По моему опыту работы с непрофильными студентами первых курсов, концепции "переменной" вызывают значительный баттхёрт.

У непрофильных наверняка и с математикой проблемы были серьёзные.

S>Просто потому, что в школе x = 2 + a и x — a = 2 — одно и то же, и этому обучают пять лет подряд.

...
S>После того, как концепция "переменной-ячейки" усвоена, надо объяснять, что такое указатель. И это ещё один барьер, вокруг которого можно бегать кругами. Очень уж тяжело даётся простым людям эта концепция.

Указатель дается тяжело, а вот ссылка — очень просто. Потому например во многих вузах используют для обучения Питон а уже потом дают Си с указателями.

S>После того, как вы объяснили людям указатели, вы пытаетесь дать им рекурсию, и начинается взрыв мозга, потому что x теперь одновременно хранит несколько значений. И вам нужен стек, и ещё много всего.


Нет никакого взрыва мозга. Нужно правильно дать задачу. см лекции в МИТ. На пост-СССР пространстве преподаватели почему так не умеют и не хотят

S>Да, в итоге на некоторых из жертв снисходит озарение, и картинка внезапно складывается.

S>Но к моменту, когда это произошло, их одноклассники, посаженные за Excel, уже не только освоили декларативное программирование, а наколбасили на нём тонны прикладных решений.

Я даже знаю много таких примеров, люди колбасят свои вычислялки пачками. Эксель это вообще ничего, пустое место то есть.
Пусть решат в экселе скажем какую задачку по физике или электротехнике, где нужен итерационный алгоритм или энергетический, поглядим чего у них выйдет.
Re[14]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.12 08:55
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Вот ещё одно мнение, о том, что ваше "у всех" не совсем наблюдается в реальности.


Неправильный подход в обучении. Составлять и выполнять пошаговые инструкции умеют, а "пошагово выполнять" что либо не умеют — загадка.

Мой сын вот знает, как пользоваться инструкцией по сборке авто из конструктора и знает, что пропускать шаги нельзя. Вобщем у тебя по ссылке какие то кошмары
Re[15]: Императивное программирование
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.10.12 09:16
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ну я бы не был так уверен, глядя на ошибки в вычислениях у абитуриентов или даже студентов, когда они скажем электротехнику решают

Ошибки есть у всех. Если у вас есть QA отдел, то сходите туда, и вам быстро развеют любые иллюзии про качество кода, даже написанного senior developer-ами.
Вопрос не в том, как построить безошибочную машину по написанию кода, а в том, чтобы человек начал приносить пользу.

I>Наоборот, проще простого. Это самое императивное программирование многие начинают осваивать примерно в 4-6м классе. Со мной както работал чел, который начал программировать ажно в 3м классе. Зато не знаю ни одного человека, который бы начал программировать в 4-6м да сразу с функциональщины.

О, как интересно. То есть пример этого отдельного человека уже считается доказательством победы императивного над разумным?
И вы по-прежнему зачем-то настаиваете на решениях, пригодных для обучения третьеклассников. Зачем вам это?

I>Тяжело дается освоение библиотек, вот это действительно тяжело. Надо понимать ввод-вывод и свойства вычислителя.

Омг. Библиотеки — это всего лишь библиотеки. Свойства вычислителя тут нужны ровно потому, что речь об императиве, и он сложен, т.к. у непрограммиста нет в голове нужных абстракций.

I>В функциональном, что характерно, ровно те же проблемы, только функциональщину раньше окончания школы сильно вряд ли можно скормить. Многим даже после окончания вуза она в голову не лезет.

Наблюдения не подтверждают этого утверждения.

I>У непрофильных наверняка и с математикой проблемы были серьёзные.

Неа. Я говорю о студентах первого курса ММФ НГУ.

I>Указатель дается тяжело, а вот ссылка — очень просто. Потому например во многих вузах используют для обучения Питон а уже потом дают Си с указателями.

Нет. Ссылка даётся ровно так же тяжело.
I>Нет никакого взрыва мозга. Нужно правильно дать задачу. см лекции в МИТ. На пост-СССР пространстве преподаватели почему так не умеют и не хотят
Одно из двух: либо преподаватели неправильные, либо императив требует от человека освоения чуждых ему концепций.

I>Я даже знаю много таких примеров, люди колбасят свои вычислялки пачками. Эксель это вообще ничего, пустое место то есть.

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

I>Пусть решат в экселе скажем какую задачку по физике или электротехнике, где нужен итерационный алгоритм или энергетический, поглядим чего у них выйдет.

Вы приведите пример задачи, а там посмотрим — нужен ли вообще "итерационный алгоритм", или у вас травма от императивного программирования.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[16]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.12 09:40
Оценка:
Здравствуйте, Sinclair, Вы писали:

I>>Ну я бы не был так уверен, глядя на ошибки в вычислениях у абитуриентов или даже студентов, когда они скажем электротехнику решают

S>Ошибки есть у всех. Если у вас есть QA отдел, то сходите туда, и вам быстро развеют любые иллюзии про качество кода, даже написанного senior developer-ами.
S>Вопрос не в том, как построить безошибочную машину по написанию кода, а в том, чтобы человек начал приносить пользу.

Ошибки есть у всех, но у всех разное количетсво. У одного по ошибке на строчку, у другого по ошибке на файл, у третьего — по ошибке на коммит. Берем самого лучшего за эталон и все становится просто.

I>>Наоборот, проще простого. Это самое императивное программирование многие начинают осваивать примерно в 4-6м классе. Со мной както работал чел, который начал программировать ажно в 3м классе. Зато не знаю ни одного человека, который бы начал программировать в 4-6м да сразу с функциональщины.

S>О, как интересно. То есть пример этого отдельного человека уже считается доказательством победы императивного над разумным?

Я не предлагаю начинать учить програмимрованию в 3м классе. Что касается примернов, то про 3й клас у меня он единственный да. А вот люди, которые начинали в 4-6м встречается на собеседованиях относительно часто.

S>И вы по-прежнему зачем-то настаиваете на решениях, пригодных для обучения третьеклассников. Зачем вам это?


А ты по прежнему похмеляешься коньяком ?

I>>Тяжело дается освоение библиотек, вот это действительно тяжело. Надо понимать ввод-вывод и свойства вычислителя.

S>Омг. Библиотеки — это всего лишь библиотеки. Свойства вычислителя тут нужны ровно потому, что речь об императиве, и он сложен, т.к. у непрограммиста нет в голове нужных абстракций.

Не императив сложен, а вычислитель сложен. С ним придется разбираться в любом случае, бери хоть какое хочешь программирование.
Доказательство простоты имерератива тривиальное — дошкольники уже понимают как пользоваться инструкциями, то есть выполнять. Школьники уже умеют их составлять. Все, это означает что в самом императиве нет никакой сложности. Собтсвенно о чем я говорю уже наверное вторую неделю.

I>>В функциональном, что характерно, ровно те же проблемы, только функциональщину раньше окончания школы сильно вряд ли можно скормить. Многим даже после окончания вуза она в голову не лезет.

S>Наблюдения не подтверждают этого утверждения.

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

I>>У непрофильных наверняка и с математикой проблемы были серьёзные.

S>Неа. Я говорю о студентах первого курса ММФ НГУ.

А почему вдруг они стали непрофильными ?

I>>Указатель дается тяжело, а вот ссылка — очень просто. Потому например во многих вузах используют для обучения Питон а уже потом дают Си с указателями.

S>Нет. Ссылка даётся ровно так же тяжело.

Я думаю дело в подходе к обучению.

I>>Нет никакого взрыва мозга. Нужно правильно дать задачу. см лекции в МИТ. На пост-СССР пространстве преподаватели почему так не умеют и не хотят

S>Одно из двух: либо преподаватели неправильные, либо императив требует от человека освоения чуждых ему концепций.

Преподаватели. Императив требует тоже самое что и функциональщина и программирование вообще — освоение вычислителя.

I>>Я даже знаю много таких примеров, люди колбасят свои вычислялки пачками. Эксель это вообще ничего, пустое место то есть.

S>Эксель — это показатель того, как люди решают сложные вычислительные задачи безо всякого понимания циклов, переменных, и прочей искусственной фигни.

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

I>>Пусть решат в экселе скажем какую задачку по физике или электротехнике, где нужен итерационный алгоритм или энергетический, поглядим чего у них выйдет.

S>Вы приведите пример задачи, а там посмотрим — нужен ли вообще "итерационный алгоритм", или у вас травма от императивного программирования.

Нужен, не боись, это не я придумал.
Re[48]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.12 10:26
Оценка:
Здравствуйте, samius, Вы писали:

I>>

I>>Наше исследование показало, что любая сложная сознательная психическая деятельность сначала носит развернутый характер. На первых этапах абстрактное мышление требует ряда внешних опорных средств, и только позднее, в процессе овладения определенным видом деятельности, логические операции автоматизируются и превращаются в «умственные навыки».

S>А где тут логические операции?

Здесь не имеется ввиду операции из алгебры логики

I>>Идеального эталона не существует. Это все что ты хотел сказать или была какая более глубокая мысль ?

S>Я хотел сказать что нет смысла ждать пока кто-то перестанет ошибаться. Собственно это и не практикуется ни в школе ни в вузе.

Наоборот, надо ждать до тех пор, пока ученик не выйдет на должный уровень по скорости/качеству. Если некоторую операцию ты выполняешь пять минут или с десятком ошибком, то сильно вряд ли ты освоишь вещь, где эта операция встречается повсеместно.

I>>(\x. x x x) (\x. x x x)

I>>Валяй.
S>Держи
S>(\x.xxx)(\x.xxx)(\x.xxx)

И что получилось ?

I>>А по моему ты просто хамишь, т.к. никаких аргументов на этом фоне не заметно.

S>А чем еще мне заняться?

Каждый решает сам, то есть поступает по своей природе
Re[16]: Императивное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.10.12 10:55
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


G>>>>Что-то я перестаю понимать что ты имеешь ввиду под "абстрактной вычислительной моделью" Может расскажешь?

I>>>машина тьюринга — абстрактная модель. В ней нет никаких value-type и тд и тд.
G>>CLR тоже абстрактная модель.

I>CLR относительно машины тьюринга вполне конкретная.


А причем тут машина тьюринга? Для написания программ, работающих на CLR нужно знание\понимание машины тьюринга? У меня куча обратных примеров.

G>>>>Вот вычислительная модель CLR абстрактна, в том смысле что конкретной реализации нет. Лямбда-исчисление тоже абстрактно. При некоторых ограничениях эти модели дают одинаковый результат. При этом модели сильно разные. Чему ты предлагаешь обучать?


I>>>Начинать с обычного императивного программирования и формировать нужные абстракции. Дальше можно и лямбда счисление и CLR и все что угодно.

G>>А почему бы не начать с лямбда-исчисления? Ведь начиная с него надо гораздо меньший путь пройти до map\fold, а с ними уже можно написать реальные программы.

I>Потому что лямбда-счисление это очень высокоуровневая абстракция.

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

I>Пойми простую вещь — математику осваивают с палочек.

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



I>Например зная ВМ весь школьный курс можно уложить примерно в страничку текста. Это значит, что страничку текста освоить на порядки сложнее, чем проштудировать 10 учебников и задачников.

ВМ опирается на школьный курс, лямбда исчисление не опирается на машину тьюринга. Подумай над этим.
Re[11]: Императивное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.10.12 11:04
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, gandjustas, Вы писали:


>>Да, для map надо рекурсивные функции и рекурсивные структуры данных объяснить. Дело двух занятий. Если же пойти по пути объяснения с битов, байтов и машинных команд, то к map и за два года не придешь.


I>Не смеши людей

Это к чему? У тебя другое мнение? Аргументировать можешь? Я рекурсивные функции могу за 2 часа объяснить. ФВП еще за час. Рекурсивные структуры данных — тоже два часа.
Причем я все это делал. Как ты думаешь, долго еще до map? Без углублений в теорию и типы данных это все очень простые концепции, в разы проще чем МТ.

Кстати в МТ композиция — охренительно сложная тема. Я в универском курсе еле осилил. Композиция функций — элементарщина.

G>>Чтобы управлять машиной надо знать что есть двигатель и колеса и как они связаны друг с другом. Но внутреннее устройство двигателя знать совершенно необязательно.


I>Это плохой пример.Тебе кажется, что с авто всё очень просто. Между тем внутреннее устройство автомобиля изучается например на уроках физики, неявно а косвенно — двигатель, тормоза, проводка, есть буквально строятся модели которые применимы и к автомобилю. В ряде случаев так и вовсе берутся примеры-задачи прямо относящиеся к автомобилю.

Да-да, я как раз об этом и говорю. Для того чтобы ездить мне все это не надо знать. Надо только понимать что двигатель соединен с колесами и как работает сцепление.

I>Далее, со многими вещами ты сталкиваешься буквально с первых лет, например ребенок уже знает что такое колеса, для чего оси, подшипники, как устроены тормоза и это закреплено самыми разными примерами из жизни.

Совершенно необязательно. У меня куча контр-примеров. Люди много лет ездят и не знают что такое подшипник.

I>В автомобиле нужно знать внутреннее устройство с определенной степенью детализации. Если ты просто расскажешь и покажешь двигатель и колеса, то ничего ты не добьёшься. Нужна вполне адекватная модель — руль, гидроусилитель, колеса, коробка передач, трансмиссия, подвеска, проводка, зажигания и связи между ними. Все это, повторяясь, внутреннее устройство, только с определенным уровнем детализации.

Че? Ты в автошколе давно был? Там гораздо примитивнее объясняется, и то этого много. При наличии всяких ABS и автоматических коробок передач вообще не надо знать устройства автомобиля.


I>В программировании ничего подобного нет и быть не может, это осваивается буквально с нуля, т.к. математика сама по себе "не работает".

Я не понял что с чем ты сравниваешь. Одно заблуждение с другим?
Re[17]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.12 11:15
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>А причем тут машина тьюринга? Для написания программ, работающих на CLR нужно знание\понимание машины тьюринга? У меня куча обратных примеров.


Для сравнения. Более менее адекватную модель вычислителя придется освоить, иначе программирования не получится.

I>>Потому что лямбда-счисление это очень высокоуровневая абстракция.

G>Высоко- или низко- уровневость определяется относительно. Когда идет начальное обучение и мозг не засорен другими моделями, то имеет смысл как раз обучать на высокоуровневых абстракциях.

Эти абстракции нужно выращивать,а не спускать сверху. Попробуй применить свой пример ан практике, например — дать матан в 3м классе. Ну, раз есть смысла обучать на высокоуровневых абстракциях, все должно прокатить на раз.

I>>Пойми простую вещь — математику осваивают с палочек.

G>Доказательство по аналогии? Не прокатило.

Иллюстрация. Все осваивается начиная с "пощупать" + "посмотреть". Вообще всё. Исключения — способности вложеные в тебя в виде кое какие безусловных рефлексов.

G>В отличии от арифметики, основная тема, которой нужно обучать в программировании — как составить большую программу из маленьких кусочков. Так вот в качестве маленьких кусочков как раз удобно использовать функции. Обычно люди понимают что такое функции и бета-редукцию им объяснить не сложно.


Первая проблема — дать пригодную модель вычислителя . Дальше её нужно будет улучшать, что бы она справлялась с более сложными задачами. Для этого нужно сделать так, что бы ученик мог "пощупать" и "посмотреть" программу на задачах которые ему отлично понятны. То есть, процесс обучения получается таким Ж
Задача 1 + пощупать + посмотреть -> концепция 1, задача 2 + пощупать + посмотреть-> концепция 2, задача N + пощупать + посмотреть -> концепция N

I>>Например зная ВМ весь школьный курс можно уложить примерно в страничку текста. Это значит, что страничку текста освоить на порядки сложнее, чем проштудировать 10 учебников и задачников.

G>ВМ опирается на школьный курс, лямбда исчисление не опирается на машину тьюринга. Подумай над этим.

возьми эксель и запрограммируй в ём какой нибудь энергетический алгоритм размещения графа.
Re[12]: Императивное программирование
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.10.12 11:59
Оценка:
Здравствуйте, gandjustas, Вы писали:

I>>Не смеши людей

G>Это к чему? У тебя другое мнение? Аргументировать можешь? Я рекурсивные функции могу за 2 часа объяснить. ФВП еще за час. Рекурсивные структуры данных — тоже два часа.

Верю. А за какое время студенты смогут освоить все это до уровня свободного владения ?

G>Причем я все это делал. Как ты думаешь, долго еще до map? Без углублений в теорию и типы данных это все очень простые концепции, в разы проще чем МТ.


Объяснения не интересуют. Важно время на то, что бы попробовать все вещи руками, то есть, освоить вычислитель, что бы более менее адекватная моделька сложилась в голове.

G>Да-да, я как раз об этом и говорю. Для того чтобы ездить мне все это не надо знать. Надо только понимать что двигатель соединен с колесами и как работает сцепление.


Ну то есть этого знать не надо, но только это и надо понимать. Опаньки !

I>>Далее, со многими вещами ты сталкиваешься буквально с первых лет, например ребенок уже знает что такое колеса, для чего оси, подшипники, как устроены тормоза и это закреплено самыми разными примерами из жизни.

G>Совершенно необязательно. У меня куча контр-примеров. Люди много лет ездят и не знают что такое подшипник.

Термина вполне возможно и не знают.

G>Че? Ты в автошколе давно был? Там гораздо примитивнее объясняется, и то этого много. При наличии всяких ABS и автоматических коробок передач вообще не надо знать устройства автомобиля.


Ты вероятно думаешь, будто я утверждаю, что надо знать устройство не хуже автомеханика или вообще конструктора ?
Re[49]: Императивное программирование
От: samius Япония http://sams-tricks.blogspot.com
Дата: 04.10.12 12:15
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, samius, Вы писали:


S>>А где тут логические операции?


I>Здесь не имеется ввиду операции из алгебры логики

А откуда?
Ну вот например,

В логике логическими операциями называют действия, вследствие которых порождаются новые понятия

Покажи как в бета-редукции порождаются новые понятия. Или уточни, о каких таких логических операциях та цитата.

I>Наоборот, надо ждать до тех пор, пока ученик не выйдет на должный уровень по скорости/качеству. Если некоторую операцию ты выполняешь пять минут или с десятком ошибком, то сильно вряд ли ты освоишь вещь, где эта операция встречается повсеместно.

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

S>>Держи

S>>(\x.xxx)(\x.xxx)(\x.xxx)

I>И что получилось ?

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

I>>>А по моему ты просто хамишь, т.к. никаких аргументов на этом фоне не заметно.

S>>А чем еще мне заняться?

I>Каждый решает сам, то есть поступает по своей природе

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