Москва, Россия
Slack: @DmitryChmerenko
СИКП: Процедуры как абстракции
СИКП: Процедуры и порождаемые ими процессы 2
СИКП: Древовидная рекурсия
СИКП: Процедуры как возвращаемые значения
Отладка
Пакеты
Кортежи
Логика
Условные конструкции
Цикл while
Условия внутри тела цикла
Цикл for
Извлечение символов из строки
Детерминированность
Возврат значений
Окружение
Навигация
Редактирование файлов
Интерфейс командной строки
Потоки
Пайплайн (Конвейер)
Командная строка
Grep
Чтение файлов
Манипулирование файловой структурой
Игнорирование файлов (Gitignore)
Рабочий процесс
Понимание Git
Рабочая директория (Working Directory)
Анализ сделанных изменений
Анализ истории изменений (коммитов)
Условия и принятия решений
Итеративный процесс
Переменные, декларативное и императивное программирование
Строки и работа с символами
Цикл for и изменение переменных
Тесты и автоматическая проверка кода
Модули
Типизация
Чистые функции
Итераторы
Ссылки и изменяемость
Создание списков и добавление элементов
Утверждения (Asserts)
power-assert
Матчеры (Expectations)
Разработка через тестирование (TDD)
Jest
Подготовка данных
Зачем и как писать тесты?
Покрытие кода тестами (Code Coverage)
Модульные тесты
Плохие и хорошие практики тестирования
Изменение множеств
Изменение данных в словаре
Синтаксис
Операции над множествами
Инициализация новых значений и defaultdicts
Методы объектов множеств
Множества
Больше о декораторах
Позиционные аргументы
Больше об именованных аргументах
Именованные аргументы
Знакомство с map, filter, reduce
Функции высшего порядка
Встроенные map, filter, reduce
Замыкания
Анонимные функции
Рекурсия
Реализация пар
Барьеры абстракции
Точки
Рациональные числа
Пары
Моделирование
Интерфейсы
Создание абстракции
Семантика списков и словарей
Инварианты
Уровневое проектирование
Точки на координатной плоскости
Генераторные выражения
Функции-генераторы
Функциональный и процедурный подход
Генераторы списков
Генераторы множеств и словарей
Цели тестирования
Разработка через тестирование
Утверждения
Покрытие кода тестами
Фреймворк Pytest
Аккумулятор
Виртуальная файловая система
Манипуляции с виртуальной файловой системой
Обход дерева
Определения
Агрегация 2
Агрегация
Жадность
Символьные классы
Представление символов. Метасимвол.
Флаги
Просмотр вперед/назад
Группировка. Обратная связь
HTTP 1.0
Манкипатчинг
Побочные эффекты
Тестирование HTTP-запросов
Инверсия зависимостей
Тестирование ошибок
Фикстуры
Инстанцирование классов и экземпляры
Исключения
Наследование
Методы
Свойства
Инициализация и протоколы
Объекты-одиночки и глобальные переменные
Классы, пространства имен, атрибуты
Шаблонизатор
Функции
Условия (WHERE)
Онтология
Ограничения
Лимит (LIMIT)
Вставка и модификация данных
Соединения (JOINS)
Группировка (GROUP)
Автоинкремент
Изменение структуры таблицы (ALTER)
Транзакционность
Выборка данных
Сортировка (ORDER)
Третья нормальная форма
Создание таблиц
Сортировка массивов
Rest и деструктуризация
Модификация
Spread и создание новых массивов
Ссылки
Стек
Проверка существования значения
Управляющие инструкции
Вложенные массивы
Вложенные циклы
Удаление элементов массива
Обработка строк через преобразование в массив
Деструктуризация
Генерация строки в цикле
Big O
Проверка существования свойства
Хеш-таблицы
Обход свойств объекта
Объекты в действии
spread и создание новых объектов
Слияние
Вложенные объекты
Первая программа на Си
Переменные и циклы в Си
Тип float
Функции в Си
Условие if/else
Switch вместо if/else
Оператор Spread (распаковка аргументов)
Отображение (map)
Сигналы
Агрегация (reduce)
Фильтрация (filter)
Оператор Rest (упаковка аргументов)
Объекты первого класса
Семантика массивов
Статические свойства и методы
toString()
Контекст (This)
Упаковка и Распаковка (Boxing)
Особенности работы this со стрелочными функциями
Конструктор
Инкапсуляция
Класс
Прототипы
Связывание (bind)
Форматированное время
Функция Аккермана
Преобразование DNA в RNA
Сумма квадратов
Разница углов
Степень тройки
Без двух нулей
Счётчик одногодок
Вперёд в прошлое
Командная работа
Поиск в логах
Последовательность коммитов
Высоченная зарплата
Высокооплачиваемые работники
Разница температур
Студенческая жизнь
Фибоначчи
Сумма двоичных чисел
Физзбазз
Пары без функций
Тройка
Пары на строках
Обработка ссылок
Классификация отрезков
Вращение троек
Степени тройки
Длина последнего слова
Треугольник Паскаля
Сравнение версий
Список диапазонов
Самая длинная подстрока
Обратная польская запись
Вес Хэмминга
Чанкование
Зеркалирование матрицы
Представление массива в виде объекта
Сборщик строки запроса
Детектирование
Одинаковая четность
Поиск ближайшего соседа
NRZI кодирование
Возрастающая последовательность
Увеличение двумерного списка
Композиция функций
Фасад
Фильтр анаграмм
Римские цифры
Конвертер цветов
Транспонирование матриц
Скрэббл
IP конвертер
Интерактивные функции
Функции с проверкой типов
Горизонтальная гистограмма
Вращение матрицы
Построитель деревьев
Словарь с псевдонимами
Вертикальная гистограмма
Слияние словарей
Сумма интервалов
Умножение матриц
Улитка
Валидатор IPv6
Копилка
Морской бой
Поиск в двоичном дереве
Построение двоичного дерева
Список как словарь
Выравнивание
Вычислитель различий
Одинаковая чётность
JSON stringify
Приглашение
Конфликты
Запуск программы
Перемежовка последовательности
Слияние очередей
Декартово произведение
Частотность длин слов
Статистика матчей по командам
Найди Fizz и Buzz
Переворот числа
Счастливый билет
Идеальные числа
Инвертированный регистр
Счастливые числа
Чанкование потока
Переворот строки
Глубокое клонирование