open atlas

base-cs

Базовый CS с нуля

Начни без теории CS. Закончи, понимая, как компьютер исполняет твой код и что на самом деле значит каждая программная конструкция.

12 юнитов·100 уроков·~67 ч

Начать трек
01

Что такое компьютер

Компьютер хранит всё битами и собран из двухпозиционных переключателей.
02

Память

Память — длинный ряд пронумерованных ячеек; адрес — номер, значение — то, что в ячейке.
03

Процессор

CPU вечно повторяет один цикл: достать инструкцию, расшифровать, исполнить.
04

От машинного кода к языку

Высокоуровневый код переводится — компиляцией или интерпретацией — в инструкции, которые исполняет CPU.
05

Значения и типы

Биты сами по себе ничего не значат; тип — правило, как их читать.
06

Переменные и состояние

Переменная — именованная ячейка памяти; присваивание меняет её содержимое.
07

Поток управления

Ветвления и циклы — это выбор CPU, какую инструкцию исполнить следующей.
08

Функции и стек вызовов

Каждый вызов кладёт кадр на стек; возврат снимает его обратно.
09

Данные в памяти

Массивы — соседние ячейки; объекты — помеченные ячейки — и то и другое раскладка в памяти.
10

Абстракция

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

Когда программа падает

Ошибка — это сообщение машины, что она не может продолжать; stack trace говорит где.
12

Время и конкурентность

Async существует, потому что CPU не должен простаивать, пока медленное устройство отвечает.

Проекты по этому треку

Guided-проекты, которые закрепляют изученное здесь.

◆ Проекты

Движок поиска маршрутов

Четыре алгоритма поиска — одна общая задача: добраться из A в B по взвешенной сетке. Ты построишь BFS, DFS, Dijkstra и A* на одной модели графа, а затем запустишь их бок о бок и увидишь, как они расходятся: DFS бросается в тупик, BFS равномерно растекается, Dijkstra ползёт наружу по стоимости, A* тянется к цели. Именно здесь раздел про алгоритмы перестаёт быть набором фактов и становится инструментами, между которыми ты выбираешь осознанно.

◆ Проекты

Крошечная стековая виртуальная машина

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

Следующий трек

Алгоритмы с нуля

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