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

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

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

1.

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

теория (видео 21:36)

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

2.

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

теория (видео 50:45)

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

3.

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

теория (видео 10:18) / упражнение

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

4.

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

теория (видео 07:51)

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

5.

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

теория (видео 04:13) / упражнение

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

6.

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

теория (видео 07:55) / упражнение

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

7.

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

теория (видео 07:09)

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

8.

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

теория (видео 09:20)

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

9.

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

теория (видео 05:49)

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

10.

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

теория (видео 07:21)

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

11.

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

теория (видео 10:46)

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

12.

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

теория (видео 05:14) / упражнение

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

13.

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

теория (видео 09:48)

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

14.

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

теория (видео 10:21)

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

15.

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

теория (видео 06:28)

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

16.

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

теория (видео 06:13)

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

17.

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

теория (видео 06:28)

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

Испытания

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

Статистика
3905
учащихся
281
вопрос
и ответ
17
часов
Учитель