Основные возможности платформы Hexlet не доступны в вашем браузере. Пожалуйста, обновитесь.

PHP: Построение абстракций

Этот курс является адаптацией под php знаменитого курса "Структура и Интерпретация Компьютерных Программ", который преподается на первом курсе МИТ (Massachusetts Institute of Technology) с 70 годов.

Сначала рекомендуем пройти курс: Основы PHP

Содержание курса

  • 1

    Введение

    Цель: Познакомиться с курсом, узнать о декларативном программировании и других парадигмах программирования и понять, почему это важно знать каждому программисту.

    теория (14:22)  
  • 2

    Hello World

    Цель: Написать свою первую программу и узнать про способы ее запуска

    теория (06:29)   тесты   практика  
  • 3

    Абстракция с помощью функций

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

    теория (06:08)   тесты   практика  
  • 4

    Комбинирование функций

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

    теория (09:11)   тесты   практика  
  • 5

    Линейно-рекурсивный процесс

    Цель: Познакомиться с понятием вычислительных процессов и, конкретно, линейно-рекурсивным процессом.

    теория (09:26)   тесты   практика  
  • 6

    Линейно-итеративный процесс

    Цель: Научиться строить рекурсии с аккумулятором. Познакомиться с оптимизацией хвостовой рекурсии.

    теория (08:26)   тесты   практика  
  • 7

    Функции первого класса. Передача как аргументов

    Цель: Научиться передавать анонимные функции как аргументы других функций.

    теория (05:56)   тесты   практика  
  • 8

    Функции первого класса. Возврат как значения

    Цель: Научиться строить более обобщенные функции и генерировать из них конкретные.

    теория (03:52)   тесты   практика  
  • 9

    Что такое данные?

    Цель: Попытаться понять, что такое данные в рамках языка программирования, и как можно построить структуру данных на примере pair.

    теория (07:43)   тесты   практика  
  • 10

    Абстракция данных

    Цель: Познакомиться с идеей абстракции данных на примере создания структуры, представляющей рациональное число.

    теория (09:27)   тесты   практика  
  • 11

    Замкнутые множества

    Цель: Познакомиться с понятием замыкания при использовании математической операции на примере вложенных пар.

    теория (08:10)   тесты   практика  
  • 12

    Map

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

    теория (05:39)   тесты   практика  
  • 13

    Фильтрация

    Цель: Познакомиться с еще одной полезной функцией высшего порядка: filter.

    теория (02:32)   тесты   практика  
  • 14

    Свертка

    Цель: Написать функцию, позволяющую производить свертку нескольких значений.

    теория (08:20)   тесты   практика  
  • 15

    Деревья

    Цель: Изучить структуру данных «двоичное дерево» и ее реализацию в PHP с помощью списков.

    теория (09:48)   тесты   практика  
  • 16

    Стандартные интерфейсы

    Цель: Рассмотреть концепцию разделения программы на функциональные блоки, работающие с общей структурой данных.

    теория (06:23)   тесты   практика  
  • 17

    Оператор присваивания

    Цель: Рассмотреть концепцию присваивания и изменения состояния.

    теория (06:31)   тесты   практика  
  • 18

    Объекты

    Цель: Продолжить изучение оператора присваивания и перейти к созданию объектов.

    теория (03:41)   практика  
  • 19

    Преимущества присваивания

    Цель: Рассмотреть полезные и положительные аспекты сохранения состояния.

    теория (06:02)   тесты   практика  
  • 20

    Недостатки присваивания

    Цель: Рассмотреть проблемы, связанные с использованием присваивания и сохранения состояния.

    теория (11:13)   тесты   практика  
  • Course completed

  • Практика после курса

    Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.

    # Задание % завершений
    1 Сглаживание функций 76%
    2 Одинаковая четность 72%
    3 Композиция функций 75%
    4 Рекурсивный реверс 66%
    5 Плоское дерево 59%

Подробнее о курсе

Учащихся
5244
Сообщений
1044
Упражнений
19
Часов
13

Автор

Image

Кирилл Мокевнин

Со-основатель и технический директор образовательного проекта Hexlet. Со-организатор конференции Nastachku.ru. В прошлом руководил филиалом undev.ru в Ульяновске, а до этого работал в Qik (Skype). Создает инженерную культуру в компаниях и несет в массы XP, DDD и DevOps. Евангелист ментального программирования.