Чёрная Лямбда ефрейтора Волкова: новое направление и гранты на летнюю школу


    Не далее чем в июле прошла очередная школа GoTo. В этот раз мы решили внести некоторое разнообразие в стандартный набор Ардуин, Питонов, и прочих, и случился Хаскелль. Небольшое отделение из 6 юношей (кусочек нашего общего взвода в 60 человек) бодро промаршивало по $\lambda$-исчислению, основам синтаксиса, прошло посвящение в ФП написанием факториала, посворачивало списки, научилось словосочетанию "параметрически полиморфная функция высшего порядка" и присущему этому пониманию типов и тайпклассов под предводительством ефрейтора Волкова.


    А ещё у нас были элементы инфобеза, криптовалюты, React Native, nix, и, конечно, git.


    И мы начали писать книгу про Haskell.


    В общем, получилось задорно.


    (Под катом картинки участников, лямбды, илосос, анонс нового направления и гранты)




    Для того, чтобы завлечь детей, мы назвали направление "Прикладное Программирование: Курс Молодого Бойца 2" (как логическое продолжение КМБ1). В уверенности, что их ждёт логическое продолжение Telegram-ботов, они даже не подозревали...


    Начали мы с $\lambda$-исчисления.
    Привет, лямбда!
    Через интересные выражения типа $(\lambda d.d)(\lambda d.dd)(\lambda d.ddd)(\lambda d.dx)$ мы выяснили, почему $20 / 2 = 5 * 2$, что сходится, а что расходится, что такое $\alpha$ equivalence и parser combinators, только без parser. И узнали, как работает каррирование.


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


    data AA = A | C | G | T

    В конце первой недели участников ждала прогрессивная преподавательская концепция: спортивный зачёт. Узнав свой вопрос, нужно было пробежать ~350м и ответить сразу после; думать во время бега.


    Haskell BABY: Не щиплет глазки!
    Дверь в нашу аудиторию


    Где-то здесь мы изучили git; я посчитал своим долгом сказать про посылку патчей по почте, но мы всё же использовали GitHub и GitLab. Сделали простые сайты на Pages.


    $ git format-patch <...>


    Прошли функции высшего порядка и затронули свёртки (folds). Решили задачу про илососов: дана квадратная матрица ilosos_id / sample_id (строки — илососы, столбцы — измерения качества сосания), найти класс (первый, второй, ...) каждого из илососов.


    Илосос


    [0.2, 0.44, 0.9, 0.3, 0.6] => 0.488 => Ilosos3


    Сначала вектор сворачивается в среднее (здесь — арифметическое), а потом преобразуется в конкретный тип: Ilosos3 :: Ilosos.


    Ещё мы начали использовать stack: эту задачу можно было сдавать только как stack-проект, и только через git.


    Прошёл второй зачёт с устной и письменной частями (в обоих случаях средний балл — 0.6) и лекция по MapReduce tenich, и настало время инфобез-интермиссии (спонтанные получасовочки случались и раньше; эта же интермиссия продлилась три пары).


    Мы обсудили, как работают криптовалюты from the ground up — от хэшей и до (почти) биткоина, что не так с мессенджерами (централизация коммуникаций, фрагментация, не-secure by default...), и — немножко — в чём вообще важность свобод и почему глобальная слежка — не всегда замечательная идея.


    Поколение ЕГЭ


    Попутно выяснилось, что антиутопии нынче не в ходу: 80% аудитории не читало ни "1984", ни "Мы", ни "Дивный новый мир".


    Происходило это уже не в аудитории, а в открытом λектории.


    Аудитория
    До: интересные плакаты и иллюстратор книги, Степан Дмитриев


    Лекторий
    После: слева направо: закатывают глаза, опускают глаза, *тело*


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


    Я здесь уже пишу, функтор ты контравариантный!

    Стало понятно, что тимворк — это сложно.


    После окончания интермиссии мы разделились: маленькие любители криптографии пошли писать RSA (и прочие MapReduce), а маленькие графоманы — писать книгу по Haskell.


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


    Обложка книги
    Обложка книги


    И написали же! (Пока что только главу, но всё же.) — More on that later.


    А ещё были мастерклассы: по React Native (@kulikovpavel) и Scala (@tvorogme).


    В общем, получилось задорно.




    Но мало. Так, внимательный читатель заметит, что слова на букву "м" выше нет. И про криптовалюты мы только поговорили, а свою не сделали. И даже распределённый чатик на libp2p не успели.


    Поэтому хочется повторить, и с размахом.


    Поэтому мы вводим новое направление: Чёрная Лямбда.


    Чёрная Лямбда


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


    Это не плохо, но несколько ограничивает.


    Поэтому на Лямбде мы будем двигаться в две стороны: в одну — абстракции срывая, и в другую — абстракции вводя. Вниз и вверх, в железо и в математику соответственно. Напишем hello world на Питоне — и расковыряем его интерпретатор. Напишем свой $\mu$питон. Поковыряем байткод и структуры данных. Клавиатуру и её прошивку и merkle-деревья. Таки сделаем свою криптовалюту. На Rust'е. Попишем на C, чтобы понять, зачем Rust нужен. Изучим моноиды, и поймём, почему полугруппа — это как группа, только чуть меньше.


    В планах — пары на улице, прогулочный семинар, странные плакаты и светодиоды в волосах. И ботать.


    Приходите. Будет приятно, вдвойне. Следующая смена — с 16 по 29 августа.


    А если поботать — можно получить скидку или даже грант на приход. Вот таски.


    Алгебра вдвойне вкусней, если это lambda way!


    Веселитесь.


    К участию мы приглашаем юных программистов с 13 до 18 лет включительно, подробности о школе здесь. Для участия необходимо пройти небольшой диагностический тест, также есть возможность получить гранты и скидки, выполнив одно из заданий наиболее выдающимся макаром.
    Если вам уже есть 18, возможно, вам было бы интересно быть ментором или спикером — пишите.

    Проектная школа программирования GoTo
    Образовательный проект для юных программистов
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 4

      +1

      Меня сильно смутила глубина всасывания 15 метров у илососной машины. Она что, "создаёт вакуум в полторы атмосферы"?

        +1

        Ну вот, я так и знал: глубина всасывания 6 метров, длина рукава 14 метров. http://dorkomteh.ru/excapedia/technic/dorkomtehnika_dkt_325_na_shassi_kamaz_-6540


        А я почти поверил в чудо… Никогда, наверное, не забуду, как говорил мне лет пять назад один дорожный рабочий про комунальный пылесос подобных габаритов, то ли вакуумный экскаватор, да искренне так: "Грязь, камни, кирпичи — всё засасывает. Там вакуум двенадцать атмосфер!"

          0

          Интересно, вот тут говорят про глубину 20м и длину шланга 50м.


          А в чём техническая сложность "создания такого вакуума"?

            +3

            В том, что откачать можно не больше, чем есть. Если вокруг одна атмосфера, то полный вакуум создаст перепад давления, ну-ка, посчитаем, 1-0=1 атмосфера. Всё, предел. Примерно 10 метров водяного столба. Для подъёма на болшую высоту насос должен быть снизу, положительное давление (относительно атмосферного) не ограничено природными условиями. Только прочностью и мощностью установки.


            Впрочем, на Венере, при атмосферном давлении более 100 атм., можно засасывать воду с глубины километра. Но вряд ли ктото согласится отправить КамАЗ на Венеру — шибко дорого выйдет.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое