• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

HSE Campus in St PetersburgBachelor's programmesSchool of Computer Science, Physics and Technology

For visually-impairedFor visually-impairedUser profile (HSE staff only)Search

01.03.02 Applied Mathematics and Informatics

Bachelor’s Programme

Applied Mathematics and Information Science

Java Script Programming Language

2026/2027
Academic Year
RUS
Instruction in Russian
4
ECTS credits
Delivered at:
Department of Informatics
Course type:
Elective course
When:
4 year, 1, 2 module

Instructor


Зарубин Антон Александрович

Программа дисциплины

Аннотация

Дисциплина относится к базовой части профессионального цикла. Реализуется в 1–2 модулях 4 курса. Для успешного освоения необходимы знания по дисциплинам «Алгоритмы и структуры данных», «Основы программирования» (на любом языке высокого уровня), «Веб-технологии» (базовое понимание HTML/CSS). Пререквизитом также является знакомство с основами JavaScript (переменные, функции, массивы, объекты) — студенты, не владеющие этой базой, допускаются к курсу только после самостоятельного прохождения вводного тренажера.
Цель освоения дисциплины

Цель освоения дисциплины

  • Цель курса — сформировать у студентов системные инженерные компетенции в области современной веб-разработки на стеке JavaScript/TypeScript с использованием React и Next.js, включая глубокое понимание работы языка «под капотом», архитектуры приложений, оптимизации производительности и командной разработки.
Планируемые результаты обучения

Планируемые результаты обучения

  • Знает внутреннее устройство JavaScript (event loop, контексты выполнения, стек вызовов, сборка мусора);
  • Знает принципы прототипного наследования и замыканий;
  • Знает синтаксис и возможности TypeScript (типы, generics, utility types);
  • Знает жизненный цикл React‑компонента и способы оптимизации рендеров;
  • Знает различия CSR, SSR, SSG, принципы гидратации и потоковой передачи в Next.js.
  • Умеет писать асинхронный код на промисах и async/await, обрабатывать ошибки;
  • Умеет реализовывать сложные функции (debounce, throttle, Promise.all, мемоизацию) и привязывать контекст;
  • Умеет типизировать API и стейт‑менеджеры, использовать generic‑функции;
  • Уметь создавать адаптивные, семантические и доступные веб‑интерфейсы;
  • Умеет создавать адаптивные, семантические и доступные веб‑интерфейсы;
  • Умеет разрабатывать React‑приложения с использованием хуков, контекста и Redux Toolkit;
  • Умеет настраивать маршрутизацию и серверный рендеринг в Next.js, исправлять ошибки гидратации;
  • Умеет деплоить приложения на Vercel, настраивать базовый CI/CD.
  • Владеет инструментами отладки (Chrome DevTools, React DevTools);
  • Владеет методами профилирования и оптимизации производительности;
  • Владеет практиками код‑ревью и парного программирования;
  • Владеет основами работы с GitHub Actions и автоматическим тестированием (Jest, React Testing Library).
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Раздел 1. Продвинутый JavaScript: типы, функции, замыкания, прототипы, асинхронность, среда выполнения
  • Раздел 2. TypeScript как инструмент разработки
  • Раздел 3. Браузер, HTML/CSS
  • Раздел 4. React: компоненты, хуки, состояние, архитектура, производительность
  • Раздел 5. Next.js: SSR, гидратация, получение данных, деплой
Элементы контроля

Элементы контроля

  • неблокирующий Одз
    Одз – суммарная оценка за домашние задания (лучшие 4 из 6) – максимум 20 баллов. В течение курса выдаётся 6 домашних заданий (после каждого спринта). В зачет идут 4 задания (студент может пропустить два без штрафа или заменить низкие результаты). Каждое ДЗ оценивается по 10-балльной шкале, затем баллы суммируются.
  • неблокирующий Орк
    Орк– оценка за рубежный контроль (коллоквиум в середине курса) – максимум 20 баллов; Рубежный контроль проводится после спринта 3 (конец октября) в форме коллоквиума по материалам блоков 1–2 (продвинутый JavaScript и TypeScript). Формат проведения: Студенту заранее (не менее чем за 2 недели) предоставляется список вопросов (20–25 вопросов), охватывающих ключевые темы: приведение типов, контекст this, замыкания; прототипное наследование, классы; асинхронность (Promise, async/await), Event Loop; утечки памяти, сборщик мусора; основы TypeScript (типы, generics, utility types, типизация функций и API). На коллоквиуме студент отвечает на 3 вопроса из списка (вопросы выбираются случайным образом или преподавателем). На подготовку ответа по каждому вопросу даётся до 5 минут, на устный ответ – до 3–4 минут (суммарно до 15 минут на студента). Допускается использование заранее подготовленных кратких конспектов (не более 1 страницы А4), но не готовых текстов ответов.
  • блокирующий Опроект
    Опроект – оценка за сквозной проект (суммарно за этапы 1–3) – максимум 50 баллов; Описание итогового экзамена Итоговый экзамен (2 модуль, декабрь) проводится в форме защиты финальной версии сквозного проекта. Проект должен быть полностью завершён: работающий дашборд на Next.js (TypeScript, React, Redux Toolkit), развёрнутый на Vercel, с тестами и документацией. Структура защиты (10 минут): Демонстрация работающего приложения (3 мин). Презентация архитектуры, сложных моментов, метрик производительности (3 мин). Ответы на вопросы преподавателя (4 мин). Финальный проект (защита) Система оценивания сквозного проекта (максимум 50 баллов) Оценка за проект складывается из трёх частей: Часть Максимум баллов Что оценивается Работающий продукт 25 Приложение запускается, выполняет все основные функции (добавление, удаление, фильтрация задач, статистика), данные сохраняются, нет критических ошибок. Качество кода и тесты 15 Код на TypeScript (без any), чистая архитектура, есть README, написаны тесты (хотя бы простые). Защита проекта 10 Презентация, демонстрация работы, ответы на вопросы преподавателя. Порядок сдачи/пересдачи экзамена: Экзамен проводится в сессионный период. Для студентов, получивших неудовлетворительную оценку, предусматривается возможность пересдач. Все пересдачи проводятся в соответствии с Регламентом вуза в период пересдач, ее проводит преподаватель, выставивший оценку по промежуточной аттестации. Время для проведения пересдачи определяется Учебным офисом в рамках расписания дополнительной сессии. Первая пересдача защиты проекта проводится преподавателем курса, выставившим исходную оценку. Формат сохраняется: повторная защита проекта (уточненная версия решения, доработанные эксперименты и презентация). Накопленные баллы за ДЗ и активность при этом не пересдаются и не пересматриваются.Вторая и последующие пересдачи, при необходимости, проводятся в порядке, предусмотренном внутренними документами университета: в формате устной защиты перед комиссией не менее чем из трех человек. Состав комиссии и дата такой пересдачи утверждаются распоряжением руководителя департамента или академического руководителя ОП. Итоговая оценка за вторую (комиссионную) пересдачу определяется коллегиальным решением членов комиссии и является окончательной.
  • неблокирующий Опракт.з
    Опракт.з. – оценка за активность на семинарских занятиях (воркшопах) – максимум 10 баллов; Активность на практических занятиях (воркшопах) — до 10 баллов Активность на воркшопах оценивается преподавателем и ассистентами по итогам каждого занятия. Баллы начисляются за: Критерий Макс. баллов за занятие Описание Участие в решении задач 0.5 Студент активно участвует в выполнении практических задач, предлагает решения. Демонстрация кода 0.5 Студент показывает своё решение, объясняет логику. Помощь сокурсникам 0.5 Студент помогает другим участникам группы разобраться с материалом. Ответы на вопросы преподавателя 0.5 Студент отвечает на вопросы по теме занятия. Итого за занятие до 2 Порядок начисления: Баллы фиксируются преподавателем или ассистентом во время занятия. Студент может получить от 0 до 2 баллов за одно занятие. Пропуск занятия без уважительной причины — 0 баллов за это занятие. Избыточные баллы не суммируются (максимум 10 баллов за курс). Пересдача: не предусмотрена (активность накапливается только во время занятий).
Промежуточная аттестация

Промежуточная аттестация

  • 2026/2027 2nd module
    Итоговая оценка за курс формируется на основе накопленной балльной системы и затем переводится в 10‑балльную шкалу НИУ ВШЭ. Общая сумма баллов по курсу: Окурс = Опракт.з + Орк +Опроект +Одз Опракт.з. – оценка за активность на семинарских занятиях (воркшопах) – максимум 10 баллов; Орк– оценка за рубежный контроль (коллоквиум в середине курса) – максимум 20 баллов; Опроект – оценка за сквозной проект (суммарно за этапы 1–3) – максимум 50 баллов; Одз – суммарная оценка за домашние задания (лучшие 4 из 6) – максимум 20 баллов. Максимальная сумма баллов: 100 баллов. Далее суммарная оценка Окурс переводится в 10‑балльную шкалу по установленной шкале. Шкала перевода в 10-балльную систему НИУ ВШЭ Оценка (10-балльная) Оценка (100-балльная) Комментарий 10 100 Максимальный результат 9 90–99 Отлично 8 80–89 Очень хорошо 7 70–79 Хорошо 6 60–69 Хорошо 5 50–59 Удовлетворительно 4 40–49 Минимальный порог прохождения 3 30–39 Неудовлетворительно 2 20–29 Явно неудовлетворительно 1 10–19 Практическое отсутствие выполнения
Список литературы

Список литературы

Рекомендуемая основная литература

  • 45381 - Хорошо ли вы знаете JavaScript? - Ф.К. - ДМК Пресс - 9785937003607 - 2025 - https://hse.alpinadigital.ru/document/45381 - Alpina
  • Попов, С. Е. JavaScript. Основы программирования : учебно-методическое пособие / С. Е. Попов. — Елец : ЕГУ им. И.А. Бунина, 2020. — 121 с. — ISBN 978-5-00151-175-5. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/331940 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Янцев, В. В. Разработка web-страниц на HTML, CSS и JavaScript : учебное пособие для вузов / В. В. Янцев. — Санкт-Петербург : Лань, 2024. — 148 с. — ISBN 978-5-507-49640-2. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/422462 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Рекомендуемая дополнительная литература

  • Диков, А. В. Клиентские технологии веб-программирования: JavaScript и DOM : учебное пособие / А. В. Диков. — Санкт-Петербург : Лань, 2020. — 124 с. — ISBN 978-5-8114-4074-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/126934 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Уилсон, Г. Проектирование ПО на примере инструментов на JavaScript : руководство / Г. Уилсон , перевод с английского А. А. Слинкина. — Москва : ДМК Пресс, 2024. — 382 с. — ISBN 978-5-93700-316-4. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/464300 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Любавина Светлана Вячеславовна
  • Юнышева Анастасия Владимировна