Структура и интерпретация компьютерных программ
Включено в курс
Чему вы научитесь
- Работать с языком программирования Scheme (Lisp)
- Создавать абстракции
- Реализовывать наибольший общий делитель, проверку на простоту и другие алгоритмы
- Делать рекурсивные вычисления
Описание
Этот курс создан на основе одноименной книги профессоров MIT, и в нем вы изучите основы программирования. Вы узнаете больше о примитивных выражениях, комбинировании и абстракциях, о процедурах и порождаемых ими абстракциях. В итоге вы научитесь реализовывать алгоритмы поиска наибольшего общего делителя и проверки на простоту, строить процедуры с помощью Lambda, делать рекурсивные вычисления и находить корень с помощью метода Ньютона. Этот курс пригодится, если вы хотите более глубоко понимать основы программирования. Знания из этого курса помогают разработчикам развивать свои навыки в программировании.
Программа курса
-
2
Примитивные выражения, комбинирование и абстракция
Знакомимся с языком Lisp, рассматриваем примитивные выражения, комбинирование, процедуры и абстракции -
3
Процедуры как абстракции
Изучаем «процедуры как абстракции» — важный подход при программировании -
4
Процедуры и порождаемые ими процессы 1
Знакомимся с процедурами, процессами, линейной рекурсией и итерациями -
5
Процедуры и порождаемые ими процессы
Продолжаем изучать процедуры, процессы, линейную рекурсию и итерации -
6
Древовидная рекурсия
Рассматриваем вычисление последовательности чисел Фибоначчи как пример древовидной рекурсии -
7
Порядки роста
Знакомимся с понятием «порядок роста», которое дает общую оценку необходимых ресурсов при увеличении входных данных процессов -
8
Возведение в степень
Рассматриваем возведение числа в степень для лучшего понимания порядков роста -
9
Наибольший общий делитель
Изучаем алгоритм поиска наибольшего общего делителя и реализуем его на языке программирования Scheme (LISP) -
10
Проверка на простоту
Реализуем алгоритм проверки числа на простоту на языке программирования Scheme (LISP) -
11
Процедуры в качестве аргументов
Рассматриваем важную особенность языка — возможность передачи процедуры как аргумента в другую процедуру -
14
Метод половинного деления
Рассматриваем реализацию метода половинного деления — простого, но мощного способа нахождения корней уравнений с непрерывными функциями -
15
Нахождение неподвижных точек функций
Знакомимся с понятием «неподвижные точки функции» и учимся искать их -
16
Процедуры как возвращаемые значения
Добиваемся еще большей выразительной силы, создавая процедуры, возвращаемые значения которых сами являются процедурами -
17
Метод Ньютона
Рассматриваем и реализуем общий случай поиска корня с помощью метода Ньютона -
18
Дополнительные материалы
Статьи и видео, подобранные командой Хекслета. Помогут глубже погрузиться в тему курса
Формат обучения
Отзывы
Спасибо за этот прекрасный курс и подробные объяснения! Очень нравятся Ваши уроки, Рахим.
Спасибо за курс. Мотивирует меня оформить подписку =) Даже при условии наличия раздачи на рутрекере.
Спасибо, первая часть курса очень понравилась. Жалею что у меня не было такого курса в университете. Жду с нетерпением вторую часть курса.
Посмотрел, случайно данный курс на youtube, очень понравился, зарегистрировался чтобы сказать спасибо за проделанную работу. Надеюсь на продолжение данного курса, по оставшимся частям книги. Курс действительно очень хорош и затрагивает фундаментальные вещи, поэтому не забрасывайте его. Имхо, таким курсам нужно уделять, как можно больше времени, от новичков, таких как я, точно не будет отбоя:) Лично для меня оказалось лучше и увлекательней смотреть видео и слушать ваши пояснения чем читать книгу. Собственно вопрос: планируете ли продолжать? И да, еще раз спасибо!