Таймкоды к курсу "Основы программирования"

January 15, 2023 · View on GitHub

Общее оглавление курса тут: Fundamentals.md

Карта специальности инженер-программист

Введение в программирование (1 часть)

Семинар: Обсуждение плана и материалов курса «Основы программирования»

Настройка среды: Node.js, npm, git, eslint

Базовый синтаксис JavaScript

Базовый синтаксис JavaScript, продолжение

Семинар: Базовый синтаксис языка JavaScript

Семинар: автоматическая проверка лабораторных работ

Введение в программирование (2 часть)

Функции, лямбды (стрелочные функции), контексты, замыкания в JavaScript

Массивы, объекты, классы, прототипы в JavaScript

Языки программирования: обзор, сравнение, выбор

JavaScript: Ответы на вопросы

Частичное применение и каррирование в JavaScript

Функции высшего порядка, колбеки, события на JavaScript

Работа со строками, шаблонами и юникодом в JavaScript

Регулярные выражения и парсинг в JavaScript

Примеси, обертки, декораторы, мемоизация в JavaScript

Консоль и командная строка в JavaScript и Node.js

Чеининг функций и объектов, обработка ошибок в JavaScript

Таймеры, таймауты, EventEmitter в JavaScript и Node.js

Итерирование, циклы и итераторы в JavaScript

Архитектурный подход к программированию

Функциональное программирование на JavaScript

Реактивное программирование на JavaScript

Асинхронное программирование на callback`ах в JavaScript

Проекции и отображения наборов данных в JavaScript

Коллекции, множества, хештаблицы в JavaScript

Неблокирующее асинхронное итерирование в JavaScript

Структуры данных: списки, стек, очередь, дэк в JavaScript

Proxy и Symbol в JavaScript

Сериализация и десериализация в JavaScript и Node.js

Асинхронность с библиотекой async.js

Фабрики и пулы объектов в JavaScript, factorify, poolify

Подход к изучению программирования (выступление на дне факультета Информатики КПИ 12 декабря 2018)

Асинхронность на промисах, Promise, all, then, catch, race

Типизированные массивы в JavaScript

Шаблон Singleton (синглтон) в JavaScript

Функциональные объекты, функторы и монады в JavaScript

Асинхронные функции, async/await, thenable, обработка ошибок

Асинхронные адаптеры: promisify, callbackify, asyncify...

Асинхронные коллекторы данных

Утечки памяти в Node.js и JavaScript, сборка мусора и профилирование

Рекурсия: косвенная и хвостовая, стек, выход

Дженерики и обобщенное программирование

Генераторы и асинхронные генераторы в JavaScript

Итераторы и асинхронные итераторы в JavaScript

Фасад - петтерн для скрытия сложности

Адаптер (Adapter) - паттерн достижения совместимости

Стратегия (Strategy) - выбор взаимозаменяемого поведения

Линзы в JavaScript - функциональные аналоги геттера и сеттера

Перечислимый тип (enum) в JavaScript и TypeScript

Графы и запросы к графовым структурам на JavaScript

Паттерн Команда (Command) действие и параметры как объект

Тестирование: юниттесты с примерами на JavaScript

Инверсия управления и внедрение зависимостей в Node.js

Слои, связанность и связность кода в JavaScript

Измерение производительности кода и оптимизация в JavaScript и Node.js

Слой доступа к данным, курсор, транзакция

HTTP запросы в браузере и Node.js: XMLHttpRequest, fetch

Метапрограммирование с примерами на JavaScript

Тестирование: системное и интеграционное тестирование на JavaScript

Отмена асинхронных операций, cancellable callback and Promise в JavaScript

Асинхронная композиция функций на JavaScript

Thenable и легковесный await в JavaScript

Конкурентная асинхронная очередь на JavaScript

Паттерн Revealing Constructor - открытый конструктор

Модель акторов для параллельных вычислений

Have Objects Failed? Или что не так с ООП?

Интроспекция и рефлексия в JavaScript

История развития языков программирования

Парадигмы программирования (обзор)

Примеси, обертки, декораторы, мемоизация

Ответы на вопросы по курсу "Основы программирования" 2019-2020

Антипаттерны процедурного программирования

Семинар: выполнение лабораторных работ на JavaSript по курсу "Основы программирования"

Массивы в JavaScript (методы Array)

Code Review: как это и зачем

Семинар: Code Review, ответы на вопросы

Мономорфный и полиморфный код, инлайн-кэш, скрытые классы в JavaScript

Ассоциация, агрегация и композиция объектов в JavaScript

Рефакторинг: причины, цели, техники и процесс

Принцип подстановки Барбары Лисков

Композиция функций (pipe, compose) в JavaScript

Примеси в JavaScript: mixin, extend, Object.assign, class λ-mixin

Прототипное программирование и прототипное наследование в JavaScript

Мемоизация функций: memoize в JavaScript

Функции-обертки: Wrappers в JavaScript

Новое в JavaScript: ES.Next, ECMAScript 2020, ES11, ES10, ES9, ES8, ES7, ES6, ES2020, ES2019

Вступительная лекция по инженерии программного обеспечения (КПИ 1 курс) 2021-09-01

Автоматное программирование c примерами на JavaScript

Контрактное программирование с примерами на JavaScript и Node.js

JavaScript - Практические задачи #1: Пример исправления, лайвкодинг, оптимизация и рефакторинг

JavaScript и Node.js: Добавь в Github личную карту знаний