Приглашаем школьников и студентов, интересующихся программированием, на цикл лекций, посвященных различным системам типизации. Лекции проводятся в рамках открытого лектория летней школы «Слон». Первые две лекции пройдут уже в эти выходные: 21 и 22 мая, в 18:00 в здании НБИК факультета МФТИ по адресу г.Москва, ул.Максимова, д.4.

Типы данных — тема, которой в учебном курсе уделяется непростительно мало времени (иногда и вовсе минут 10 на первом занятии), и рассматривается она обычно применительно к конкретному языку программирования. Цель нашего цикла лекций — показать, какое значение система типов имеет для программирования вообще, а не для конкретного языка. Какие непростые решения приходится принимать разработчикам языков программирования в погоне за удобством и надежностью языка. Какие нестандартные типы данных бывают и как использовать их в своих программах с наибольшей пользой. И наконец, какая математика скрывается за системами типов.

  • На первой лекции (21 мая) мы расскажем чем отличаются статическая типизация от динамической, а сильная от слабой. Обсудим языки, в которых типизации нет вообще. Покажем, почему сложно корректно определить даже простейшие арифметические и логические операции.
  • Вторая лекция начнет тему типизации в объектно-ориентированных языках. Разберемся, зачем вообще создавать свои собственные типы данных aka классы. Научимся правильно переопределять операторы (посмотрим на подходы разных языков к этой проблеме). Поговорим, что такое класс классов и причем тут статические переменные функции. Поговорим про то, как тип данных поддерживает т.н. «инварианты» объектов вашей программы и какую роль в этом играют конструкторы. И, если успеем, начнем долгий разговор про наследование типов и интерфейсы объектов.
  • В третей лекции (12 июня) мы продолжим разговор про ООП и поговорим про то, зачем нам может потребоваться множественное наследование. Обсудим альтернативы: интерфейсы и миксины. Поговорим про обобщенное программирование и шаблоны; а чтобы не было скучно разберемся с тем, кто от кого наследует из List<Animal> и List<Cat> и узнаем, почему Function<Cat> и Function<Animal> наследуются не так.
  • На четвертой лекции (13 июня) мы поговорим про самые основы математики типов данных. В лекции будет две части: про лямбда-исчисление и числа Черча (как ввести в язык числа, если в языке программирования нет даже их). И про алгебраические типы данных: что такое сумма типов и произведение типов, для чего нужны рекурсивные типы и что за зверь такой — монада (на примере простеньких монад MayBe и List).
  • Также, возможно, будет проведена дополнительная лекция про указатели и типы данных, управляющие памятью.


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

upd: Дата следующей лекции уточнена (12-13 июня): 13 июня, понедельник (пожалуйста, перед тем как приходить на лекцию, проверьте изменения даты!).
Поделиться с друзьями
-->

Комментарии (12)


  1. FemaleLogix
    21.05.2016 00:36

    A видео лекций будет? Если да, то можно ли будет посмотреть их в открытом доступе? Для тех, кто интересуется темой, но не может приехать.


    1. prijutme4ty
      21.05.2016 00:38

      Постараемся записать. Если получится, то лекции точно будут в открытом доступе.


      1. Halt
        22.05.2016 18:10

        Обязательно запишите! Я бы с удовольствием просмотрел, особенно теоретические вопросы.


      1. shishmakov
        22.05.2016 21:36

        А где отследить их появление можно?


        1. prijutme4ty
          24.05.2016 01:46

          Записи первых двух лекций выложены; к сожалению, на записи местами довольно плохо видно, что показывает проектор, но все же видно.
          Следующие записи появятся на странице летней школы. Если ничего не изменится, они пройдут 12-13 июня.


          1. Halt
            24.05.2016 13:58
            +1

            Было бы неплохо и слайды выложить в открытый доступ.


            1. prijutme4ty
              24.05.2016 14:06

              Слайды к первой лекции добавлены. На второй лекции слайдов не было, код набирался в процессе лекции.


              1. Halt
                24.05.2016 14:21

                Спасибо, нашел.


  1. saboteur_kiev
    21.05.2016 01:23
    +1

    «ул.Максимова, д.4.»
    Хабр — международный ресурс. Можно хотя бы город указывать?


    1. prijutme4ty
      21.05.2016 01:26
      +1

      Пардон. Дефолт-сити, Москва, т.е.


  1. impwx
    21.05.2016 22:27

    Эх, в мою бы школьную юность кто про ковариантность и монады рассказывал…


    1. msdos9
      22.05.2016 21:36

      Эх, хорошо, что в мою школьную юность, был бейсик на бк-01001