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

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

Фундаментальный курс, основанный на одноименной книге от профессоров MIT рассказывает об абстракции данных и кода, рекурсии, состоянии и метаязыковой абстракции. Первая часть соответствует первому разделу книги.

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

  • 1

    СИКП: Что такое информатика?

    Цель: Познакомиться с понятием информатики.

    теория (21:36)  
  • 2

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

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

    теория (50:45)  
  • 3

    СИКП: Процедуры как абстракции

    Цель: Рассмотреть важный подход при программировании: процедуры как абстракции.

    теория (10:18)   практика  
  • 4

    СИКП: Процедуры и порождаемые ими процессы 1

    Цель: Рассмотреть процедуры и процессы, линейную рекурсию и итерации.

    теория (07:51)  
  • 5

    СИКП: Процедуры и порождаемые ими процессы 2

    Цель: Рассмотреть процедуры и процессы, линейную рекурсию и итерации.

    теория (04:13)   практика  
  • 6

    СИКП: Древовидная рекурсия

    Цель: В качестве примера древовидной рекурсии рассмотрим вычисление последовательности чисел Фибоначчи, в которой каждое число является суммой двух предыдущих.

    теория (07:55)   практика  
  • 7

    СИКП: Порядки роста

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

    теория (07:09)  
  • 8

    СИКП: Возведение в степень

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

    теория (09:20)  
  • 9

    СИКП: Наибольший общий делитель

    Цель: Рассмотреть алгоритм поиска наибольшего общего делителя и реализовать его на языке программирования Scheme (LISP).

    теория (05:49)  
  • 10

    СИКП: Проверка на простоту

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

    теория (07:21)  
  • 11

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

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

    теория (10:46)  
  • 12

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

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

    теория (05:14)   практика  
  • 13

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

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

    теория (09:48)  
  • 14

    СИКП: Метод половинного деления

    Цель: Рассмотреть реализацию метода половинного деления (half-interval method) — простого, но мощного способа нахождения корней уравнения f(x) = 0, где f — непрерывная функция.

    теория (10:21)  
  • 15

    СИКП: Нахождение неподвижных точек функций

    Цель: Рассмотреть нахождение неподвижных точек функций. Число x называется неподвижной точкой (fixed point) функции f, если оно удовлетворяет уравнению f(x) = x.

    теория (06:28)  
  • 16

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

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

    теория (06:13)  
  • 17

    СИКП: Метод Ньютона

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

    теория (06:28)  
  • Course completed

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

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

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

Учащихся
3003
Сообщений
204
Упражнений
4
Часов
6

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

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