4

Этап 4

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

8

Этап 8

1. Построение абстракций с помощью процедур. 1.1. Элементы программирования

50

Этап 50

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

04 июня—11 июня

57

Этап 57

2. Построение абстракций с помощью данных. 2.1. Введение в абстракцию данных

11 июня—16 июня

60

Этап 60

2.2. Иерархические данные и свойство замыкания

16 июня—29 июня

61

Этап 61

2.3. Символьные данные

29 июня—05 июля

62

Этап 62

2.4. Множественные представления для абстрактных данных

05 июля—10 июля

63

Этап 63

2.5. Системы с обобщенными операциями

10 июля—17 июля

64

Этап 64

3. Модульность, объекты и состояние. 3.1. Присваивание и внутреннее состояние объектов

17 июля—22 июля

65

Этап 65

3.2. Модель вычислений с окружениями

22 июля—27 июля

66

Этап 66

3.3. Моделирование при помощи изменяемых данных

27 июля—07 августа

67

Этап 67

3.4. Параллелизм: время имеет значение

07 августа—14 августа

68

Этап 68

3.5. Потоки

15 августа—01 сентября

4

Этап 4

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

8

Этап 8

1. Построение абстракций с помощью процедур. 1.1. Элементы программирования

50

Этап 50

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

04 июня—11 июня

57

Этап 57

2. Построение абстракций с помощью данных. 2.1. Введение в абстракцию данных

11 июня—16 июня

60

Этап 60

2.2. Иерархические данные и свойство замыкания

16 июня—29 июня

61

Этап 61

2.3. Символьные данные

29 июня—05 июля

62

Этап 62

2.4. Множественные представления для абстрактных данных

05 июля—10 июля

63

Этап 63

2.5. Системы с обобщенными операциями

10 июля—17 июля

64

Этап 64

3. Модульность, объекты и состояние. 3.1. Присваивание и внутреннее состояние объектов

17 июля—22 июля

65

Этап 65

3.2. Модель вычислений с окружениями

22 июля—27 июля

66

Этап 66

3.3. Моделирование при помощи изменяемых данных

27 июля—07 августа

67

Этап 67

3.4. Параллелизм: время имеет значение

07 августа—14 августа

68

Этап 68

3.5. Потоки

15 августа—01 сентября

16 февраля 2018 01 сентября 2018
Цель завершена 29 июня 2018

Автор цели

Общая

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

Это вспомогательная цель (подцель), для основной https://smartprogress.do/goal/290474/.

Книга "Структура и интерпретация компьютерных программ" Харольда Абельсона и Джеральда Джей Сассмана основана на курсе, который читался много лет в MIT. В книге изложены основные понятия и принципы программирования.

Википедия: используя Scheme (диалект языка LISP), авторы описали основные концепции программирования, включая абстракцию (данных и исполнения), рекурсию и метаязыковую абстракцию.

Мне нужны только первые три главы, которые я планирую изучить (теорию и практику) в течение ближайших 3,5 месяцев.

Решения практических заданий буду выкладывать в репозитории на гитхабе .

Отписываться здесь планирую не реже 1 раза в неделю.

P.S. Эту книгу я беру не в первый раз в руки, я ее уже изучаю, но хочу сделать подход более системным и структурированным.

 Критерий завершения

Изучено 3 первых раздела книги

 Личные ресурсы

Время

 Экологичность цели

Достижение этой цели поможет мне продвинуться в достижении цели стать программитом

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

    1. 1.2.1. Линейные рекурсия и итерация

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

    3. 1.2.3. Порядки роста

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

    5. 1.2.5. Нахождение наибольшего общего делителя

    6. 1.2.6. Пример: проверка на простоту

  2. 1. Построение абстракций с помощью процедур. 1.1. Элементы программирования

    1. 1.1.1. Выражения

    2. 1.1.2. Имена и окружение

    3. 1.1.3. Вычисление комбинаций

    4. 1.1.4. Составные процедуры

    5. 1.1.5. Подстановочная модель применения процедуры

    6. 1.1.6. Условные выражения и предикаты

    7. 1.1.7. Пример: вычисление квадратного корня методом Ньютона

    8. 1.1.8. Процедуры как абстракции типа «черный ящик»

  3. 1.3. Формулирование абстракций с помощью процедур высших порядков

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

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

    3. 1.3.3. Процедуры как обобщенные методы

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

  4. 2. Построение абстракций с помощью данных. 2.1. Введение в абстракцию данных

    1. 2.1.1. Пример: арифметические операции над рациональными числами

    2. 2.1.2. Барьеры абстракции

    3. 2.1.3. Что значит слово «данные»?

    4. 2.1.4. Расширенный пример: интервальная арифметика

  5. 2.2. Иерархические данные и свойство замыкания

    1. 2.2.1. Представление последовательностей

    2. 2.2.2. Иерархические структуры

    3. 2.2.3. Последовательности как стандартные интерфейсы

    4. 2.2.4. Пример: язык описания изображений

  6. 2.3. Символьные данные

    1. 2.3.1. Кавычки

    2. 2.3.2. Пример: символьное дифференцирование

    3. 2.3.3. Пример: представление множеств

    4. 2.3.4. Пример: деревья кодирования по Хаффману

  7. 2.4. Множественные представления для абстрактных данных

    1. 2.4.1. Представления комплексных чисел

    2. 2.4.2. Помеченные данные

    3. 2.4.3. Программирование, управляемое данными, и аддитивность

  8. 2.5. Системы с обобщенными операциями

    1. 2.5.1. Обобщенные арифметические операции

    2. 2.5.2. Сочетание данных различных типов

    3. 2.5.3. Пример: символьная алгебра

  9. 3. Модульность, объекты и состояние. 3.1. Присваивание и внутреннее состояние объектов

    1. 3.1.1. Внутренние переменные состояния

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

    3. 3.1.3. Издержки, связанные с введением присваивания

  10. 3.2. Модель вычислений с окружениями

    1. 3.2.1. Правила вычисления

    2. 3.2.2. Применение простых процедур

    3. 3.2.3. Кадры как хранилище внутреннего состояния

    4. 3.2.4. Внутренние определения

  11. 3.3. Моделирование при помощи изменяемых данных

    1. 3.3.1. Изменяемая списковая структура

    2. 3.3.2. Представление очередей

    3. 3.3.3. Представление таблиц

    4. 3.3.4. Имитация цифровых схем

    5. 3.3.5. Распространение ограничений

  12. 3.4. Параллелизм: время имеет значение

    1. 3.4.1. Природа времени в параллельных системах

    2. 3.4.2. Механизмы управления параллелизмом

  13. 3.5. Потоки

    1. 3.5.1. Потоки как задержанные списки

    2. 3.5.2. Бесконечные потоки

    3. 3.5.3. Использование парадигмы потоков

    4. 3.5.4. Потоки и задержанное вычисление

    5. 3.5.5. Модульность функциональных программ и модульность объектов

  • 2276
  • 16 февраля 2018, 07:53
Регистрация

Регистрация

Уже зарегистрированы?
Быстрая регистрация через соцсети
Вход на сайт

Входите.
Открыто.

Еще не зарегистрированы?
 
Войти через соцсети
Забыли пароль?