Computer Science Базовый курс

От первой строки до пределов вычислимого

Программирование на Python с нуля, структуры данных и алгоритмы, машина от вентиля до процессора, операционная система, сети, базы данных, языки и компиляторы, теория вычислений, криптография. Программа собрана по курсам MIT, Стэнфорда, Беркли, CMU, Кембриджа и Оксфорда.

66 из 66 глав написано

Плата курса

Каждая часть — микросхема, каждая глава — её вывод. Дорожка идёт через все главы по порядку; прочитанные выводы загораются.

INTRO·0

Вступление

Пять удивлений и как устроен курс

  1. 00 Что умеет программа
LANG·I

Язык

Python с нуля: от print до классов, тестов и функций как значений

  1. 01 Первая программа и первая ошибка
  2. 02 Имена и значения
  3. 03 Развилки
  4. 04 Снова и снова
  5. 05 Свои слова
  6. 06 Списки
  7. 07 Собеседник из строк
  8. 08 Словарь и телеграф
  9. 09 Задача внутри задачи
  10. 10 Функции как значения
  11. 11 Отчёт комиссии
  12. 12 Остров кроликов и лис
DATA·II

Структуры данных

Сложность, массивы, стеки, хеш-таблицы, деревья, кучи, графы

  1. 13 Сколько стоит программа
  2. 14 Как список лежит в памяти
  3. 15 Стек, очередь и калькулятор
  4. 16 Хеш-таблица: атака и защита
  5. 17 Сад деревьев поиска
  6. 18 Кто следующий
  7. 19 Шесть рукопожатий
ALGO·III

Алгоритмы

Поиск и сортировка, разделяй и властвуй, динамика, жадность, графы, случайность

  1. 20 Турнир сортировок
  2. 21 Разделяй и властвуй
  3. 22 Запомнить, чтобы не считать
  4. 23 Жадность и электричество
  5. 24 Навигатор
  6. 25 Потоки и пары
  7. 26 Подбросим монетку
CPU·IV

Машина

От битов и вентилей до процессора «Искра-8», кэшей и конвейера

  1. 28 Всё есть биты
  2. 29 Логика из выключателей
  3. 30 Машина считает
  4. 31 Память и такт
  5. 32 Ты — процессор
  6. 33 Рентген Python
  7. 34 Близко и далеко
  8. 35 Конвейер и предсказатель
OS·V

Операционная система

Процессы, планировщик, виртуальная память, гонки, хранение

  1. 36 Экскурсия по живой системе
  2. 37 Центр управления полётом
  3. 38 Гостиница с номерами
  4. 39 Гонки
  5. 40 Спасательная операция
NET·VI

Сети

Пакеты, TCP/IP, веб и распределённые системы

  1. 41 Один день из жизни пакета
  2. 42 Изобрести протокол
  3. 43 Анатомия этой страницы
  4. 44 Парламент острова Паксос
DB·VII

Хранить и находить

Базы данных, индексы, сжатие и поисковик

  1. 45 Архивариус
  2. 46 Библиотека и банк
  3. 47 Конкурс упаковки
  4. 48 Поисковик по нашим учебникам
LANG2·VIII

Языки

Грамматики, интерпретатор, компилятор для своей же машины, типы

  1. 49 Музей языков
  2. 50 Лингвист в экспедиции
  3. 51 Матрёшка
  4. 52 Замкнуть круг
  5. 53 Суд над null
TM·IX

Пределы вычислений

Автоматы, машина Тьюринга, неразрешимое, P и NP

  1. 54 Автоматы и регулярки
  2. 55 Машина Тьюринга
  3. 56 Разговор с Оракулом
  4. 57 Письмо Гёделя
  5. 58 Экспедиция коммивояжёра
SEC·X

Секреты и атаки

Шифры, открытый ключ, как ломают системы

  1. 59 Шифровальный отдел
  2. 60 Секрет на виду у всех
  3. 61 Учебный полигон
AI·XI

Горизонты

Игры, обучение машин, кубиты и белые пятна

  1. 62 Турнир ботов
  2. 63 Машина учится
  3. 64 Лаборатория кубитов
  4. 65 Белые пятна

Одиннадцать больших вопросов

По одному на каждую часть курса: часть заканчивается ответом на свой вопрос. Первый ответ — уже в главе 7, дальше примерно каждые шесть глав.

  1. 1

    Часть I · Язык

    Может ли программа напечатать саму себя?

    Чтобы напечатать свой текст, программа должна хранить его внутри — значит, быть длиннее самой себя. И всё же такие программы существуют. Как они устроены, вы разберёте уже в седьмой главе.

    Ответ — в главе 7 → ✓ Вы ответили
  2. 2

    Часть II · Структуры данных

    Почему одна программа решает задачу за секунду, а другая не справится и до конца Вселенной?

    Тот же компьютер, та же задача, разные идеи — и разница в тысячи раз, а иногда в бесконечность. Можно ли предсказать скорость программы, не запуская её?

    Ответ — в главе 13 → ✓ Вы ответили
  3. 3

    Часть III · Алгоритмы

    Как навигатор за секунду находит кратчайший путь среди миллионов дорог?

    Маршрутов через город столько, что их не перебрать ни за какое время. А телефон прокладывает путь раньше, чем вы успеваете убрать палец с экрана.

    Ответ — в главе 24 → ✓ Вы ответили
  4. 4

    Часть IV · Машина

    Как из выключателей получается компьютер?

    Внутри процессора нет ничего, кроме миллиардов крошечных выключателей. Как из «включено — выключено» вырастает машина, которая исполняет вашу программу?

    Ответ — в главе 32 → ✓ Вы ответили
  5. 5

    Часть V · Операционная система

    Как сотня программ работает на двух ядрах и не ломает друг другу данные?

    Браузер, музыка, мессенджер и сотни фоновых процессов, а ядер у процессора два или восемь. Кто решает, кому работать сейчас, и почему одна программа не может испортить память другой?

    Ответ — в главе 39 → ✓ Вы ответили
  6. 6

    Часть VI · Сети

    Как миллиарды компьютеров работают вместе, если ни один из них не главный?

    У интернета нет центра, машины падают, сообщения теряются. И всё же письмо доходит, а банк не теряет деньги.

    Ответ — в главе 44 → ✓ Вы ответили
  7. 7

    Часть VII · Хранить и находить

    Как поисковик за долю секунды находит нужное среди миллиардов страниц?

    Прочитать весь интернет за время, пока вы моргаете, нельзя. Значит, ответ готов заранее — но как, если вопрос ещё не задан?

    Ответ — в главе 48 → ✓ Вы ответили
  8. 8

    Часть VIII · Языки

    Как программа понимает другую программу?

    Python — тоже программа. Она читает ваш текст, понимает его и исполняет. В конце этой части вы напишете такую сами — для собственного компьютера.

    Ответ — в главе 52 → ✓ Вы ответили
  9. 9

    Часть IX · Пределы вычислений

    Есть ли задачи, которые не решит никакой компьютер?

    Не «пока не решили», а не решит никогда, сколько ни дай ему времени и памяти. Доказательство помещается на страницу.

    Ответ — в главе 56 → ✓ Вы ответили
  10. 10

    Часть X · Секреты и атаки

    Как договориться о секрете, если каждое слово подслушивают?

    Вы и сервер банка видите друг друга впервые, весь разговор идёт по чужим проводам — и всё же через секунду у вас общий секретный ключ.

    Ответ — в главе 60 → ✓ Вы ответили
  11. 11

    Часть XI · Горизонты

    Может ли машина научиться тому, чему её не учили?

    Правила игры в го или распознавания почерка никто не записал в программу. Откуда же машина их знает?

    Ответ — в главе 63 → ✓ Вы ответили

По каким программам

MIT 6‑3, Stanford CS, Berkeley EECS, CMU SCS, Harvard CS50, Cambridge Computer Science Tripos, Oxford, ETH Zürich, ВШЭ и стандарт ACM/IEEE CS2023.