Курс «Структура и интерпретация компьютерных программ»

информатика
процедуры
абстрации
рекурсия
lambda
переменные

Последнее обновление: 18 мая 2025 г.

Попробовать →

Бесплатный курс

Включено в курс

17 уроков (видео и/или текст)
0 упражнений в тренажере
0 проверочных тестов
Самостоятельная работа
Дополнительные материалы
Доступ ко всем курсам

Описание

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

Чему вы научитесь

  • Работать с языком программирования Scheme (Lisp)
  • Создавать абстракции
  • Реализовывать наибольший общий делитель, проверку на простоту и другие алгоритмы
  • Делать рекурсивные вычисления

Программа

1

Информатика как наука

Обсуждаем, что такое информатика и чем занимается эта наука

2

Примитивные выражения, комбинирование и абстракция

Знакомимся с языком Lisp, рассматриваем примитивные выражения, комбинирование, процедуры и абстракции

3

Процедуры как абстракции

Изучаем «процедуры как абстракции» — важный подход при программировании

4

Процедуры и порождаемые ими процессы 1

Знакомимся с процедурами, процессами, линейной рекурсией и итерациями

5

Процедуры и порождаемые ими процессы

Продолжаем изучать процедуры, процессы, линейную рекурсию и итерации

6

Древовидная рекурсия

Рассматриваем вычисление последовательности чисел Фибоначчи как пример древовидной рекурсии

7

Порядки роста

Знакомимся с понятием «порядок роста», которое дает общую оценку необходимых ресурсов при увеличении входных данных процессов

8

Возведение в степень

Рассматриваем возведение числа в степень для лучшего понимания порядков роста

9

Наибольший общий делитель

Изучаем алгоритм поиска наибольшего общего делителя и реализуем его на языке программирования Scheme (LISP)

10

Проверка на простоту

Реализуем алгоритм проверки числа на простоту на языке программирования Scheme (LISP)

11

Процедуры в качестве аргументов

Рассматриваем важную особенность языка — возможность передачи процедуры как аргумента в другую процедуру

12

Построение процедур с помощью lambda

Учимся создавать процедуры на лету с помощью lambda

13

Создание локальных переменных

Учимся создавать локальные переменные в процедурах

14

Метод половинного деления

Рассматриваем реализацию метода половинного деления — простого, но мощного способа нахождения корней уравнений с непрерывными функциями

15

Нахождение неподвижных точек функций

Знакомимся с понятием «неподвижные точки функции» и учимся искать их

16

Процедуры как возвращаемые значения

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

17

Метод Ньютона

Рассматриваем и реализуем общий случай поиска корня с помощью метода Ньютона

Формат обучения

Рекомендуемые программы

Course Cover
  • Тренажер с практикой
  • Бессрочный доступ к теории
  • Асинхронный формат
Попробовать →

Бесплатный курс