Computer Science Базовый курс
От первой строки до пределов вычислимого
Программирование на Python с нуля, структуры данных и алгоритмы, машина от вентиля до процессора, операционная система, сети, базы данных, языки и компиляторы, теория вычислений, криптография. Программа собрана по курсам MIT, Стэнфорда, Беркли, CMU, Кембриджа и Оксфорда.
66 из 66 глав написано
Плата курса
Каждая часть — микросхема, каждая глава — её вывод. Дорожка идёт через все главы по порядку; прочитанные выводы загораются.
Вступление
Пять удивлений и как устроен курс
Язык
Python с нуля: от print до классов, тестов и функций как значений
Структуры данных
Сложность, массивы, стеки, хеш-таблицы, деревья, кучи, графы
Алгоритмы
Поиск и сортировка, разделяй и властвуй, динамика, жадность, графы, случайность
Машина
От битов и вентилей до процессора «Искра-8», кэшей и конвейера
Операционная система
Процессы, планировщик, виртуальная память, гонки, хранение
Сети
Пакеты, TCP/IP, веб и распределённые системы
Хранить и находить
Базы данных, индексы, сжатие и поисковик
Языки
Грамматики, интерпретатор, компилятор для своей же машины, типы
Пределы вычислений
Автоматы, машина Тьюринга, неразрешимое, P и NP
Секреты и атаки
Шифры, открытый ключ, как ломают системы
Горизонты
Игры, обучение машин, кубиты и белые пятна
Одиннадцать больших вопросов
По одному на каждую часть курса: часть заканчивается ответом на свой вопрос. Первый ответ — уже в главе 7, дальше примерно каждые шесть глав.
-
1
Часть I · Язык
Может ли программа напечатать саму себя?
Чтобы напечатать свой текст, программа должна хранить его внутри — значит, быть длиннее самой себя. И всё же такие программы существуют. Как они устроены, вы разберёте уже в седьмой главе.
Ответ — в главе 7 → ✓ Вы ответили -
2
Часть II · Структуры данных
Почему одна программа решает задачу за секунду, а другая не справится и до конца Вселенной?
Тот же компьютер, та же задача, разные идеи — и разница в тысячи раз, а иногда в бесконечность. Можно ли предсказать скорость программы, не запуская её?
Ответ — в главе 13 → ✓ Вы ответили -
3
Часть III · Алгоритмы
Как навигатор за секунду находит кратчайший путь среди миллионов дорог?
Маршрутов через город столько, что их не перебрать ни за какое время. А телефон прокладывает путь раньше, чем вы успеваете убрать палец с экрана.
Ответ — в главе 24 → ✓ Вы ответили -
4
Часть IV · Машина
Как из выключателей получается компьютер?
Внутри процессора нет ничего, кроме миллиардов крошечных выключателей. Как из «включено — выключено» вырастает машина, которая исполняет вашу программу?
Ответ — в главе 32 → ✓ Вы ответили -
5
Часть V · Операционная система
Как сотня программ работает на двух ядрах и не ломает друг другу данные?
Браузер, музыка, мессенджер и сотни фоновых процессов, а ядер у процессора два или восемь. Кто решает, кому работать сейчас, и почему одна программа не может испортить память другой?
Ответ — в главе 39 → ✓ Вы ответили -
6
Часть VI · Сети
Как миллиарды компьютеров работают вместе, если ни один из них не главный?
У интернета нет центра, машины падают, сообщения теряются. И всё же письмо доходит, а банк не теряет деньги.
Ответ — в главе 44 → ✓ Вы ответили -
7
Часть VII · Хранить и находить
Как поисковик за долю секунды находит нужное среди миллиардов страниц?
Прочитать весь интернет за время, пока вы моргаете, нельзя. Значит, ответ готов заранее — но как, если вопрос ещё не задан?
Ответ — в главе 48 → ✓ Вы ответили -
8
Часть VIII · Языки
Как программа понимает другую программу?
Python — тоже программа. Она читает ваш текст, понимает его и исполняет. В конце этой части вы напишете такую сами — для собственного компьютера.
Ответ — в главе 52 → ✓ Вы ответили -
9
Часть IX · Пределы вычислений
Есть ли задачи, которые не решит никакой компьютер?
Не «пока не решили», а не решит никогда, сколько ни дай ему времени и памяти. Доказательство помещается на страницу.
Ответ — в главе 56 → ✓ Вы ответили -
10
Часть X · Секреты и атаки
Как договориться о секрете, если каждое слово подслушивают?
Вы и сервер банка видите друг друга впервые, весь разговор идёт по чужим проводам — и всё же через секунду у вас общий секретный ключ.
Ответ — в главе 60 → ✓ Вы ответили -
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.