Не верь, не бойся, не проси - [entries|archive|friends|userinfo]
phantom

[ website | My Website ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

[Dec. 30th, 2020|09:43 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
Упорядоченность пары, списка

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

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

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

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

Но почему такая разница с программированием? В нём нужно так же долго и нудно вводить неупорядоченность, и часто она там неестественна. Может быть, всё начинается с факта, что ячейки памяти пронумерованы? Ну, а в ленточном компьютере ячейки, не имея явной нумерации, всё равно, имеют последовательность, порядок, направленность? И сам факт, что компьютер "построил человек, а не бог"? Или всё же упорядоченность более корневая, чем хаос?

Ладно, конкретизируя это в программировании, функциональном, естественно, выписал упорядоченную пару как тип. Определил конструктор pair, предикат pair?, проекции former и latter, и две обычных функций (преобразования пары): swap и sort. Последняя, однако, высосана из пальца: для неё нужен предопределённый оператор сравнения (или передавать его параметром). Больше для этого типа определять, кажется, нечего.

Допустим, теперь мы берёмся за определение типа неупорядоченной пары. Неважно, что будет внутри black box. Пусть будут две переменные, и со случайным периодом будем их менять местами, смеха ради. С конструктором, предикатом всё понятно, а также понятно, что swap и sort не имеют смысла, разве что sort будет отображать в упорядоченную пару.

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

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

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

Некоторые скажут "а у меня в питоне так можно". В схеме тоже можно использовать values, и в других многих языках. Но суть та же, и она ломает всю игру. Потому что функции, возвращающие множественные значения, по сути, возвращают тупл, кортеж, упорядоченную пару. И опять одно опирается на другое, а не наоборот.

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

P. S. Для простоты я опустил ещё одно важное отличие определения пары между математикой и программированием. А именно, тот факт, что пара в программировании соответствует не множеству, а мультимножеству в математике. И невозможно в теории множеств атом объединить в пару с собой же, он будет "схлопываться" на себя в синглетон (об этом стоит подумать отдельно).

P. P. S. А, вот, я сообразил, как запрограммировать второй вариант. Нужно проекцию one, в смысле, взятия одного из элементов (случайным образом), оформить, как я сказал. А вторая проекция будет зваться another, на вход ей будет приходить (та же) пара и элемент, а на выходе будет (второй) элемент взятый как множество минус (теоретико-множественный минус) этот элемент. Подставлять параметром надо элемент, возвращённый первой функцией. Иначе придётся бросать ошибку (а есть ли она на этом уровне определений?). С виду кривовато, но тогда не будет опираться определение ни на какую упорядоченную структуру. Полностью ли отменяет это построение конец моей истории? Надо думать дальше.
LinkLeave a comment

Comments:
[User Picture]
From:[info]rex_weblen
Date:December 31st, 2020 - 12:15 am
(Link)
Я тоже думал над эти вопросом.

Мой вывод таков, что упорядоченная структура естественна, что ли более физичная. Если что-то размещается в физическом пространстве, то там будет какой-то порядок, который перейдет на элементы в множестве. Можно представить те же ленты в машинах Тьюринга/Поста или если явно записать конечное множество в строчку {x,y,z} то мы неявно задаем порядок x > y > z. Это все банальности, но те же рассуждения работают и в большей размерности, так как их тоже можно упорядочить и порядок унаследуется структурами данных. Так как наши компьютерные технологии имеют физическую реализацию из этого вытекает первичность упорядоченных структур в программировании. Вопрос, правда ли математика свободна от физического и поэтому выбирает неупорядоченные структуры? Или это был просто сознательный или случайный выбор основателей Теории множеств.
Вроде как теория типов аля Сalculus Of Constructions эквивалентна логике первого порядка, и по этому на ней можно строить математику, но там будут не вычисляемые функции.

А что касается неупорядоченной пары в программировании, то там и не должно быть функций former,latter. Должна быть функция in: Pair(T) -> T -> Bool . Тогда пара из одинаковых элементов будет эквивалентна множеству из одного элемента. Но где-то все равно будет упорядочено, хотя бы в памяти компьютера
From:[info]phantom
Date:December 31st, 2020 - 02:13 am
(Link)
Так логический тип ещё не определён. Он ведь тоже опирается на пару true/false. Но я только что придумал, как реализовать проекции в неупорядоченной паре, добавил к посту как "P. P. S.".

Да, текстуально математика и программирование эквивалентны, изоморфизм программ-доказательств (Карри-Ховарда). Сalculus Of Constructions это coq? Я тут повтыкал в его библиотеку и код, но трудно там сориентироваться с ходу.

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

Математика свободна от физики - для меня это очевидно. Загадка, почему физика абсолютна несвободна от математики.

Порядок в физическом пространстве я бы раскритиковал. Нету в двумерном и трехмерном пространстве "естественного" порядка. В одномерном физическом пространстве только есть. И как только мы записываем текст, сразу появляется. Например, перечисляя что-либо, скажем, точки в пространстве, сразу вводим порядок.

Но мысль твою я ухватил, проявление компьютера в "реальном мире" при переходе в физику форсирует порядок. Но, возможно, только пока мы пользуемся лентой или линейной памятью? Может быть, этого можно избежать в dataflow programming, где программа - это граф? Или в компьютере на клеточных автоматах, "игра жизнь"?
[User Picture]
From:[info]rex_weblen
Date:December 31st, 2020 - 03:22 pm
(Link)

>Сalculus Of Constructions это coq

типа того

>Математика свободна от физики - для меня это очевидно. Загадка, почему физика абсолютна несвободна от математики.

C этим я не согласен. Само существование математики оправдывается тем, что это хороший язык для физики. Или как говорят нарратив описывающий физическую реальность. Для того, чтобы представить как это работает не нужно особо сложной математики. Например, мы можем проверить, что наше понимание натуральных чисел верно. Если кто-то утверждает, что 6 + 1 = 5, то мы можем обратиться к счету физических предметов, и таким образом экспериментально фальсифицировать это утверждение. Таким образом происходит якорение математики в физике, где якорь это условно просто математика. Причем, простая математика не значит элементарная: например, тензорное исчисление это якорение в ОТО. При этом физика в математике, конечно, ничего не доказывает, а доказывает все логика. И логика позволяет расширять имеющуюся математику индуктивным способам, получаю более сложную математику. Например, из натуральных чисел, получая бесконечные кардиналы. И уже валидность и научность этой сложной математики базируется на логике и фальсифицируемости математики простой. Поэтому нет ничего удивительного, что математика так хорошо подходит физике, ведь это платье сшитое на заказ.

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

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

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

>"P. P. S."

Это очень похоже на то как упорядоченная пара конструируется в обычной теории множеств (x,y) = {x,{x,y}}.
From:[info]phantom
Date:January 6th, 2021 - 05:45 pm
(Link)
Ага, я видел, как пара там конструируется обычно. Но как там определяется проекции, например, "взять второй элемент"?
[User Picture]
From:[info]rex_weblen
Date:January 7th, 2021 - 02:23 am
(Link)
Ну, в порядке бреда, в ZF, если заведомо известно, что в множестве всего два элемента, то можно брать элемент с наименьшим рангом как первую проекцию. А вторую проекцию как разницу элемента с наибольшим рангом и наименьшим.

Но скорее там проекции вообще не вычислимые функции. И все определяется через универсальное свойство.
From:[info]phantom
Date:January 6th, 2021 - 06:17 pm
(Link)
На одномерной последовательности чисел, целых, рациональных или вещественных, порядок задаётся естественным образом вслед за натуральными числами, по построению структур. А там уже естественный порядок задаётся функцией инкремента, самой "корневой" функцией натуральных чисел.

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

Порядок на некривых пространствах размерностью 2 и выше задаётся нумерацией, собственно. Т.е. биекцией на натуральные числа. Например, для бесконечных матриц (последовательности с 2 индексами) - типична нумерация побочными диагоналями... но неестественна.
From:[info]phantom
Date:January 6th, 2021 - 06:22 pm
(Link)
Это извечный спор математика и физика, платониста и материалиста, Аполлона и Кибелы. Мы принадлежим разным логосам, противоположным религиозным догмам.

Но будем спорить. Например, начнём с вопроса: как ты объясняешь существование математических структур, не имеющих никаких приложений в физике и, очевидно, для которых таких приложений не появится никогда?
[User Picture]
From:[info]rex_weblen
Date:January 7th, 2021 - 02:41 am
(Link)
А не важно есть ли приложения в физике или нет. Важно, что элементарные конструкции в математике как-то соответствуют физическому опыту людей. Натуральные числа соответствуют, тому как пастух считал овец. Целые числа, тому как сверял дебет торговец. Действительные числа, соответствуют измерениям инженера. И отсюда у людей появилась интуиция числа.

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

Можно конечно придумывать произвольные математические структуры. Например можно придумать множества с пятью тернарными операциями, на которые есть какие-то соотношение. Но это будет не интересно. А то, куда направлено внимание в математики это тоже часть математики по сути.
From:[info]phantom
Date:January 7th, 2021 - 02:08 pm
(Link)
Очень даже интересно, мне, например. И в "универсальной алгебре" это объект для изучения. Впрочем, неважно, куда "внимание" направлено кучки математиков из элитарных стойл "академии", ведь именно приложения и деньги диктуют текущую актуальность "внимания". И всегда диктовали, за редкими исключениями. Поэтому аргументы к "интересности" - это порочный круг, самореализующееся предсказание.

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

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

Цель человека в том, чтобы осознать это, и сделать шаг, отбросив несущественные свойства, прийти к абсолютной форме. И не все, кстати, народы даже смогли этот шаг сделать для (натурального) числа. Но когда этот шаг сделан, то это уже трансцедентальный шаг за пределы. И к слову, обычная интуиция в этом истинном мире пасует. Да она даже в "физике" пасует часто.
From:(Anonymous)
Date:December 31st, 2020 - 03:43 am
(Link)
это очень новая парадигма! свежая
From:[info]phantom
Date:December 31st, 2020 - 01:50 pm
(Link)
Очень смешно, хаха.
[User Picture]
From:[info]_______
Date:January 4th, 2021 - 09:40 pm
(Link)
Как на русский лучше перевести «conditional data»?

Пример:
data TLColor: Red | Green | Blue end
. Т. е. это то, что ещё называется sum type. Общепринятого перевода вроде бы нет, т. к. это термин, использующийся только в этой книге --- https://papl.cs.brown.edu/2020/intro-struct-data.html#%28part._.Defining_and_.Creating_.Conditional_.Data%29
From:[info]phantom
Date:January 6th, 2021 - 05:24 pm
(Link)
Ну, у меня два ответа: традиционный (т) и радикальный (р).

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

т) У Кришнамурти это не первая книга, поэтому нужно посмотреть, если перевели его предыдущие книги (Programming Languages: Application and Interpretation), какие использовали там термины. И продолжить скучную традицию, так сказать. Ещё стоит учесть историю самого автора - в этом случае он работал над схемой и рэкетом, значит, можно посмотреть и другие переводы схем-литературы (Essentials of Programming Languages?).

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

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

р) Не думаю, что это случай Кришнамурти, но многие изобретатели "практичных языков" просто тупые, "чукча не читатель", чтобы узнать, как оно называется в миру. И поэтому "изобретают" термины, а не для того, чтобы выебнуться. Особенно всякие там Россумы, в голове бардак, и в языке (типа питона) бардак. Современная же тенденция отойти от схемы и прийти к питону, начиная с МИТ, и кончая вот этой книгой с "пиретом", не радует. Насаждает бардак уже в головах учащихся.

т) Вообще, тот тип называется обычно ADT = algebraic data type = алгебраический тип данных. Можно начать со статьи: https://en.wikipedia.org/wiki/Algebraic_data_type и там по ссылкам. Но кто как называет его и частные случаи... Также переводить ли "условный тип данных" или "условные данные" зависит от взглядов автора и переводчика на типизацию и вывод типов. Есть нюансы, и хорошо бы в них разбираться при переводе: часто путают динамическую типизацию и нетипизированность (я уж молчу про "слабую" типизацию).

р) Область молодая, терминология неустоявшаяся. Да если даже если и устоялась, что с того. Найди свои названия, и не бойся быть непонятым. Особенно если не с кем говорить на эту тему. Если цель не перевести книгу для кого-то, а самому разобраться, то своя терминология будет "наиболее правильной".
[User Picture]
From:[info]_______
Date:January 6th, 2021 - 08:29 pm
(Link)
>т) Если ты переводишь книгу, то нужно быть скучным, как традиционно переводят
>на русский книги по программированию. То есть тупо "условный тип данных" и
>сноску из лучших побуждений: "в миру это обычно называется так". Кстати, автор
>имеет в виду не совсем "условный тип данных", а "условные данные", но это ещё
>корявей.

Об том и речь, что «условный» выглядит неудачно.

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

Прекрасно, ага. Значит ли это, что вся учёба должна быть за пределами школы и
универа? Потому что в школе я точно не могу от них требовать читать книги на
английском. В моём личном случае на первом курсе нам препод советовал книги на
английском, но говорил, что у него нет права строить программу курса на
английских книжках, поэтому основной книгой была выбрана какая-то дебильная
переведённая из серии head first. Я им конечно постоянно говорю, что без
английского вам дальше делать нечего, и читать надо именно самим, а не целиком
скармливать яндекс/гугл переводчику целые страницы. Но это так себе работает,
по-моему.

>Современная же тенденция отойти от схемы и прийти к питону, начиная с МИТ, и
>кончая вот этой книгой с "пиретом", не радует. Насаждает бардак уже в головах
>учащихся.

Ну надо сказать, что Шрирам сам ругает Python и не считает его пригодным для
обучения программированию, насколько я знаю. И от Scheme он сам не отходит,
есть версии курсов Bootstrap для школьников как с Pyret, так и с WeScheme[1].

>т) Вообще, тот тип называется обычно ADT = algebraic data type =
>алгебраический тип данных. Можно начать со статьи:
>https://en.wikipedia.org/wiki/Algebraic_data_type и там по ссылкам. Но кто как
>называет его и частные случаи... Также переводить ли "условный тип данных" или
>"условные данные" зависит от взглядов автора и переводчика на типизацию и
>вывод типов. Есть нюансы, и хорошо бы в них разбираться при переводе: часто
>путают динамическую типизацию и нетипизированность (я уж молчу про "слабую"
>типизацию).

Про ADT я в курсе конечно, да.

>р) Область молодая, терминология неустоявшаяся. Да если даже если и устоялась,
>что с того. Найди свои названия, и не бойся быть непонятым. Особенно если не с
>кем говорить на эту тему. Если цель не перевести книгу для кого-то, а самому
>разобраться, то своя терминология будет "наиболее правильной".

Я у самого Шрирама спрашивал например про название одной из глав[2],
выяснилось, например, что «Sub-Domains» у него это ограничение областей
функций. Типа есть `max :: List -> A`, так вот у неё область ограничена в
том смысле, что на пустом списке функция смысла не имеет, поэтому не
определена.

Надо мб и про conditional спросить у него же, чтобы подробнее расписал.

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

[1] https://bootstrapworld.org/materials/spring2021/en-us/courses/algebra-wescheme/
[2] https://papl.cs.brown.edu/2016/processing-lists.html#%28part._struct-prob-sub-dom%29
From:[info]phantom
Date:January 6th, 2021 - 09:45 pm
(Link)
Так спроси, раз он отвечает. Интернет ведь не только для качалова, а и средство коммуникации. Даже с оригинальными авторами, кто ещё жив.

Какова цель школьного образования? Привить человеку "ядро культуры". Можно ли усвоить современное "ядро" без английского? Нет. Значит, нужно научить английскому в дошкольном и начальном школьном образовании, чтобы к середине школы, и уж точно к университету, он читал техлитературу без словаря. Я, вот, осилил к универу, и это было непросто, помнится. Как сейчас, не знаю, надеюсь, эта идея пробивается в РОНО и получает поддержку, или кто там рулит сейчас. Как учить эффективно языку - другой вопрос. Я бы использовал естественную лёгкость освоения второго языка "как родного" в самом юном возрасте (дошкольном).

Программирование нужно осваивать, упражняясь. С упором на практику, язык учебника не так важен, учебник вторичен. Да и язык программирования не так важен.

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

Сам я начинал с бейсика, традиция, освящённая веками. Это ещё хуже питона засоряет мозг. Долгие годы чистил сознание, выработка стройной системы была затруднена этим самым бейсиком.

И это общее мнение, что с бейсика начинать - программистов будущих портить. Значит, важен первый язык. Я бы начал с самых чистых языков. И если это физматшкола, то лучше всего - функциональный ЯП. И чем чище, тем лучше. Даже схема недостаточно чиста, там императивные конструкции допускаются. Хаскелл, может быть? В некоторых университетах его как первый язык учат:
https://wiki.haskell.org/Haskell_in_education#Haskell_as_a_first_language

Тут я также утверждаю, что освоить "чистые" варианты, "грязные" сам уже студенто освоит... В общем, я против "практичного" подхода плодить "быдлокодеров" со школьной скамьи.
[User Picture]
From:[info]_______
Date:January 6th, 2021 - 10:18 pm
(Link)
>Какова цель школьного образования?

Школа, армия, тюрьма. Ну ты понял. И я в своё время так и воспринимал её, а
всем интересным занимался сам в свободное время за пределами школы.

>Можно ли усвоить современное "ядро" без английского? Нет. Значит, нужно
>научить английскому в дошкольном и начальном школьном образовании, чтобы к
>середине школы, и уж точно к университету, он читал техлитературу без словаря.
>Я, вот, осилил к универу, и это было непросто, помнится.

Да всё понятно, я ж только за. У них вот, по их же словам, английский со 2
класса, а что толку-то, если они даже кейворды типа else читают неправильно.
Есть подозрение, что это потому, что у них вместе с этим ещё пытаются немецкий
преподавать (поэтому каша в голове), но нахуя, спрашивается, если русский
толком ещё не доучили. И вот то же else они читают так, как будто это немецкое
слово.

>Как сейчас, не знаю, надеюсь, эта идея пробивается в РОНО и получает
>поддержку, или кто там рулит сейчас.

Ага, конечно. Сейчас модно soft skills, вся вот эта убогая болтология ни о чём,
рассчитанная на дебилов, видимо.

Единственное, что радует, --- это свобода. Могу в поурочном планировании писать
одно (по утверждённым учебникам), а в реальности заниматься совсем другим.

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

Да, после Pyret будет точно Python, потому что неизбежно, потому что удобный
язык для быстрого скриптования каких-то вещей, для ЕГЭ им пригодится (можешь
глянуть, как оно будет в 2021 году, всё на компьютере). Для сравнения ещё можно
показать например Haskell, который будет многим похож кстати на Pyret, ADT
например или pattern matching они должны опознать. Ну и основное --- не
инструкции, а выражения, которые редуцируются. Это типа в первой же главе
книжки описывается подробно. И типа вот, есть два подхода: Python и Haskell.
Возможно, ещё Prolog какой-нибудь, но его я сам не трогал, и не знаю, стоит ли.

Параллельно с этим ещё дал им задание в прошлой четверти поставить Линукс
какой-нибудь на виртуалку, и там научиться базовым вещам в терминале. Мотивация
была озвучена такая: оно (а) нужно более-менее всем людям, чья работа связана с
IT сейчас; и (б) посмотрите на учебный план топовых факультетов типа ФКН ВШЭ
или ФМКН СПбГУ и заметьте, что в 1 или максимум 2 семестре есть предмет,
посвящённый Линуксу, и лучше эти вещи выучить заранее, т. к. ничего сложно в
них нет. Ну и предполагается, что они должны также заметить, что многие вещи
проще намного делать в терминале. Всяческая обработка текста например (отсюда
вытекает важность представления информации в plain text везде, где это можно).

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

А ты посмотри на Pyret-то, там чисто функциональщина же, выражения и значения
как результат их вычисления. Функции для повторяющихся выражений, тесты(!) для
функций пишутся до написания тела функции, выглядит так:

fun f(a, b):
  a + b
where:
  f(1, 2) is 3
  f(-1, 1) is 0
  f(0.1, 0.2) is 0.3
end


Есть сопоставление с образцом:

fun my-len(l):
  cases (List) l:
    | empty      => 0
    | link(f, r) => 1 + my-len(r)
  end
end


За две четверти дошли до главы про списки https://papl.cs.brown.edu/2019/processing-lists.html
From:[info]phantom
Date:January 6th, 2021 - 11:37 pm
(Link)
Не, вообще, всё замечательно, и главный компонент - это ты. В школьном возрасте учитель-энтузиаст - это счастье ученика.

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

Насчёт soft skills, это, боюсь, не болтовня, а проза жизни. Как питон. Если идёт чел наниматься быдлокодером, его, в первую очередь, оценят как "коммуникатора", "тим-плеера" и пр., потом спросят за питон и "веб". А уж знание ФП только минусом будет. Мне кажется, это два противоположных направления - учить практиков-прагматиков-питонистов, и учить лисперов-адептов-брахманов.
From:[info]phantom
Date:January 6th, 2021 - 11:44 pm
(Link)
Я пролистнул книгу, неплохая с виду. И Кришнамурти и схемерам можно доверять в плане ФП и квалифицированности.

Я даже, помню, как-то пробовал, кажется, онлайн курс по ЯП брать у него. Кажется, по его книге или по EoPL. Только быстро забил, домашние задания не понравились, и я понял, как мне самому двигаться к совершенству, альтернативным способом.

Да, ещё для детей, мотивации и развлечения, я бы посоветовал geogebra-у попробовать, для обучения геометрии по-новому. Впрочем, ты, кажется, под влиянием, Вербицкого и ко., а он геометрию школьную за предмет не держит, и учебник Погорелова презирает, как оказывается.
[User Picture]
From:[info]_______
Date:January 6th, 2021 - 11:58 pm
(Link)
Geogebra можно, да, но я математику у них не веду. И их училка про
существование Геогебры знает вроде. Я со своей стороны хочу им подсунуть
например такое --- https://math.ru/lib/files/pdf/rasomn.pdf --- этого точно у
них на математике нет и не будет, а знать надо, на первом курсе легче будет.

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

Я не то чтобы под влиянем, я классе в 7 помню как не понимал, зачем заучивать
наизусть какую-то «теорему», какое-то и без того очевидное предложение --- это
был один из первых уроков геометрии, заучить формулировку теоремы было
домашкой. С тех пор у меня с планиметрией как-то не очень. Хотя в 11 классе
конечно мы решали много задач, и по стереометрии тоже, для ЕГЭ, и я их успешно
на экзамене решил, но осадок остался.

А тут же --- про функции/множества --- всякие шокирующие факты типа того, что в
квадрате столько же точек, сколько и в отрезке. Мне кажется, такое больше
должно внимания привлечь.
From:[info]phantom
Date:January 7th, 2021 - 02:25 am
(Link)
Да уж, ЕГЭ и Болонская система - это дегуманизация, механизация образования, не поддерживаю.

Теоремы не заучивать надо, а доказывать. Обычно это доступно только в университете, к сожалению (не в смысле, что не хватит ума, а в смысле "нематематичности" школы, ориентации на заучивание).

Должно привлечь, по-любому. Но я бы посоветовал "школу Опойцева", по-моему, это то, что надо. Его книга "Интуиция и математика" (под псеводнимом Босс) на меня произвела неизгладимое впечатление. По школьной программе его не продвинулся, но кажется, это то, что доктор прописал.
[User Picture]
From:[info]_______
Date:January 6th, 2021 - 08:30 pm
(Link)
Кстати ещё, что удивительно по-моему, HtDP до сих пор не переведена. SICP перевели, а эту --- нет.
From:[info]phantom
Date:January 6th, 2021 - 09:51 pm
(Link)
Так SICP - олдовый, а HtDP - "свежачок". Грубо говоря, до 2000 года ещё инерция СССР, даже ЯП русском, подход академика Ершова, кстати, а после - новая Россия, переведут только за деньги, прибыль или смерть не опубликуют. Ещё грубее говоря, это провинция и реставрация местечковости, кто не выучит английский, марширует с ней же на задворки цивилизации.