О курсе «Проектирование веб-приложений»
Бакалавриат 2025/2026. Обязательный курс для направления «Информатика и вычислительная техника».
Основная информация
- Название: Проектирование веб-приложений
- Статус: обязательный курс
- Направление: Информатика и вычислительная техника
- Департамент: Департамент компьютерной инженерии
- Кампус: Московский институт электроники и математики им. А.Н. Тихонова (МИЭМ)
- Период: 4-й курс, 1–3 модуль (сентябрь — декабрь)
- Язык: русский
- Преподаватель: Пискунов Андрей Дмитриевич (adpiskunov@miem.hse.ru)
Цели курса
-
Практические навыки и теоретические знания в области разработки веб-приложений: от анализа требований до внедрения и поддержки, ключевые концепции и технологии.
-
Понимание архитектуры современных веб-приложений: клиент-серверная архитектура, межсерверное взаимодействие, эксплуатация приложений.
-
Навыки командной работы: работа в коллективе, современные инструменты разработки, реализация проектов.
Результаты обучения
- Владение клиент-серверной архитектурой, создание эффективных и безопасных веб-приложений.
- Знание принципов системного анализа, формулирование требований, разработка ТЗ.
- Основы работы с веб-фреймворками, базами данных, масштабируемыми приложениями.
- Навыки командной работы и использования современных инструментов разработки.
- Принципы эксплуатации веб-приложений: производительность, безопасность.
Содержание дисциплины
- Введение в веб-разработку — история и эволюция веб-технологий, современные подходы, архитектурные паттерны.
- Клиент-серверная архитектура — принципы построения, протоколы взаимодействия, безопасность и производительность.
- Веб-фреймворки и технологии — современные фреймворки, интеграция с БД, API и микросервисы.
- Системный анализ и проектирование — анализ требований, проектирование архитектуры, техническое задание.
- Командная разработка — инструменты разработки, системы контроля версий, CI/CD.
- Эксплуатация и поддержка — развёртывание, мониторинг, логирование, масштабирование.
Формат занятий и расписание
- День недели: суббота
- Лекция: 11:10–12:40 (одна пара)
- Практические занятия: 4 пары подряд после лекции
- Формат: офлайн
- Аудитория: уточняется у администрации
Лекции: теория, примеры, опросы, студенческие доклады (темы выбираются из списка, доклад согласовывается с преподавателем).
Практика: выполнение заданий преподавателя или работа над проектом; за активность начисляются баллы.
Контроль: промежуточная защита проекта (8-я неделя), финальная защита (12-я неделя).
Правила курса
Посещаемость
Посещение лекций не является строго обязательным. Отсутствие влияет только на компонент «Лекции и активность» (20% итоговой оценки). Обязательны: промежуточная и финальная защиты проекта, консультации по проекту при необходимости. Студенты сами отвечают за освоение материала.
Домашние задания
- Сдача: код — GitHub или GitLab; документация — Smart LMS.
- Опоздание до 1 недели — коэффициент 0,6 (60% оценки); до 2 недель — 0,4 (40%); более 2 недель — работа не принимается.
- Работы должны быть оригинальными, источники указывать обязательно.
Проектная работа
- Команды 2–4 человека, формируются в начале курса.
- Тема предлагается студентами и согласовывается с преподавателем.
- Работа ведётся дома и на практиках; каждый этап защищается на занятиях, в конце — финальная презентация.
Код и документация
Следование принятым в индустрии стандартам кодирования, понятные комментарии, обязательная техническая документация, наличие тестов.
Академическая честность
Запрещены: плагиат (копирование чужого кода без указания источника), подделка результатов тестирования. Разрешены: использование библиотек с указанием источника, обсуждение подходов с одногруппниками, использование ИИ для обучения и отладки с указанием, разбор открытого кода с указанием источника.
Использование ИИ
Допускается для изучения концепций и отладки; использование нужно указывать в комментариях. Запрещена сдача сгенерированного кода без понимания; преподаватель может проверить понимание.
Важные даты и дедлайны
Ключевые события
| Дата | Событие |
|---|---|
| 2 сентября | Начало курса, первая лекция |
| 9 сентября | Формирование команд |
| 23 сентября | Выбор темы проекта |
| 27 сентября | Представление проекта (загрузка до 11:00, защита с 13:00) |
| 4 октября | Представление проекта, пересдача (коэф. 0,6) |
| 11 октября | Представление проекта, пересдача (коэф. 0,4) |
| 18 октября | Proof of Concept (RAT-PoC): загрузка до 11:00, защита с 13:00 |
| 25 октября | Proof of Concept, пересдача (коэф. 0,6) |
| 1 ноября | Proof of Concept, пересдача (коэф. 0,4) |
| 28 октября | Прототип |
| 11 ноября | MVP (Minimum Viable Product) |
| 25 ноября | MUP (Maximum Usable Product), финальная защита |
Дедлайны домашних заданий
Анализ приложения, CRUD API, тесты API, настройка проекта, SPA-приложение, Backend API, Backend с БД, пользовательские истории, архитектурная диаграмма, Docker-контейнер, развёртывание — сроки и вес в оценке уточняются в SMART LMS и на занятиях.
Программа по модулям
Модуль 1. Введение в веб-разработку: основы веб-технологий, клиент-серверная архитектура, HTTP/HTTPS, RESTful API, GraphQL, безопасность (OWASP Top 10, аутентификация, авторизация). Практика: анализ приложений, создание CRUD API.
Модуль 2. Frontend (JavaScript/TypeScript, React, Vue.js, Angular, state management) и Backend (Node.js, Python Django/Flask, Java Spring, БД, ORM/ODM, JWT, middleware). Практика: SPA, backend с API и БД.
Модуль 3. Системный анализ и проектирование (требования, пользовательские истории, ТЗ, архитектурные паттерны, UML). DevOps: Docker, Docker Compose, CI/CD, мониторинг, логирование. Инструменты: Git, GitHub/GitLab, code review. Итог: развёртывание приложения и финальная презентация.
Этапы проекта: формирование команд и выбор темы → представление проекта (концепция) → RAT-PoC → прототип → MVP → MUP и финальная защита.
Требования к проекту: команда 2–4 человека, полнофункциональное веб-приложение на современном стеке (например, React/Vue + Node.js/Python), ТЗ и документация API, развёрнутое приложение.
Система оценивания
Подробные критерии — в разделе Работа над проектом (описание этапов и критериев).
- 1 модуль: 19/100 (представление проекта + RAT-PoC).
- 2–3 модули: 81/100 (активность, опросы, этапы проекта).
Учитываются: посещаемость и активность, опросы, доклады, домашние задания, поэтапные и финальная защиты проекта (функциональность, качество кода и документации).
Литература и ресурсы
Основная: Чистый код (Роберт Мартин), Паттерны проектирования (Фримен Э.), Пользовательские истории (Паттон Дж.), Программист-фанатик (Фаулер Ч.).
Дополнительная: Docker на практике, Использование Docker, Осваиваем Kubernetes, Паттерны Kubernetes, предметно-ориентированное проектирование в Enterprise Java.
Электронные ресурсы: ЭБС «Лань», iBOOKS, материалы в LMS. Рекомендуемые онлайн-документации: MDN Web Docs, React Documentation, Node.js Documentation, Docker Documentation.
Контакты и поддержка
- Преподаватель: Пискунов Андрей Дмитриевич — adpiskunov@miem.hse.ru
- Консультации: на практических занятиях и в официальном чате курса (chat.miem.hse.ru)
- Платформы: SMART LMS ВШЭ (материалы и задания), GitHub/GitLab (код и проекты)
Технические требования: ноутбук (рекомендуется) или компьютеры в инженерных классах; стабильный интернет; VS Code, Git, Docker. Для кода — GitHub или GitLab.
Адаптация: при особых потребностях возможны доступные форматы материалов, продление дедлайнов по согласованию, индивидуальные консультации.
Последнее обновление: февраль 2025
Источник: Официальная программа ВШЭ