Бакалавриат
2021/2022





Веб-программирование
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Когда читается:
4-й курс, 1, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Тихонов Николай Николаевич
Язык:
русский
Кредиты:
6
Контактные часы:
60
Программа дисциплины
Аннотация
Дисциплина "Веб программирование" знакомит студентов с основными подходами, технологиями, протоколами взаимодействия, используемыми в Веб программировании. Программа состоит из 2х частей: первая посвящена языку программирования JavaScript и программирования с использованием этого языка, вторая рассматривает основные прикладные аспекты программирования для веб и используемые современные технологии.
Цель освоения дисциплины
- Знакомство с языком программирования JavaScript
- Знакомство с основными технологиями, подходами и решениями в области веб программирования
- Умение выбрать нужную веб технологию, и внедрить в решение
- Получение навыков создания работоспособного веб приложения
Планируемые результаты обучения
- Выбирать необходимый для эффективного решения тип данных
- Выделять общие части кода с помощью указанных методов
- Выделять общую часть программ используя прототипное наследование
- Запускать программные компоненты при наступлении определённых событий
- Использовать асинхронные интерфейсы и структуры данных разных платформ (NodeJs, Браузер)
- Использовать базовый синтаксис для решения прикладных задач
- Использовать встроенные в браузер механики HTML элементов
- Использовать встроенные функции языка для управления и трансформации типов
- Использовать динамический контекст и определять его текущее значение
- Использовать инкапсуляцию для сокрытия части реализации
- Использовать менеджер пакетов для управления зависимостями проекта
- Использовать подходы Объектно-ориентированно программирования для предотвращения возникновения проблем при масштабировании программ
- Использовать подходы функционального программирования для асинхронных программ
- Использовать протоколы более высокого уровня на основе HTTP
- Использовать рекурсию и функции как объекты первого класса
- Находить требуемый элемент в дереве DOM
- Обеспечивать быстродействие для работы программы в реальном времени
- Описывать структуру отображаемых данных в виде HTML
- Определять область видимости обвяленных переменных
- Определять объем необходимой памяти, а также понимать принцип работы автоматического сборщика мусора
- Определять порядок выполнения инструкций при параллельном исполнении программ
- Определять события браузера при пользовательском взаимодействии
- Оценивать эффективность (сложность алгоритма) на базе выбранного типа
- Передавать данные между веб серверами или между клиентом и сервером через протокол HTTP
- Применять декларативный и императивный подходы в программировании
- Применять интерпретатор JavaScript для запуска программ
- Применять сборщик пакетов для компиляция исходного кода в бандл
- Создавать изменяемые и неизменяемые структуры данных
- Создавать надежные, расширяемые программные интерфейсы
- Создавать необходимые структуры данных на базе примитивов
- Создавать простые программы с использованием синтаксиса языка JavaScript
- Создавать собственные модули, обеспечивать независимость модулей
- Управлять отображением данных при помощи CSS
- Управлять представлением в браузере посредством изменения дерева DOM
Содержание учебной дисциплины
- Обзор синтаксиса JavaScript
- Типы и структуры данных
- Функции, области видимости и замыкания
- Объекты и прототипы
- Объектно-ориентированное программирование в JavaScript
- Функциональное программирование в JavaScript
- Асинхронное программирование в JavaScript
- Веб инфраструктура
- Html и CSS
- Публичные интерфейсы браузера, DOM
- Транспортные протоколы
Элементы контроля
- Лабораторная работа - Простая программа на JavaScript
- Лабораторная работа – Структуры данных
- Лабораторная работа – Алгоритмы
- Лабораторная работа – Инкапсуляция и наследование
- Лабораторная работа – Управление общим состоянием
- Лабораторная работа – Обработка данных и оптимизация
- Лабораторная работа – Асинхронное выполнение
- Лабораторная работа - Веб приложение
- Экзамен
- Лабораторная работа - Простая программа на JavaScript
- Лабораторная работа – Структуры данных
- Лабораторная работа – Алгоритмы
- Лабораторная работа – Инкапсуляция и наследование
- Лабораторная работа – Управление общим состоянием
- Лабораторная работа – Обработка данных и оптимизация
- Лабораторная работа – Асинхронное выполнение
- Лабораторная работа - Веб приложение
- Экзамен
Промежуточная аттестация
- 2021/2022 учебный год 2 модуль0.05 * Лабораторная работа – Структуры данных + 0.25 * Лабораторная работа - Веб приложение + 0.05 * Лабораторная работа – Обработка данных и оптимизация + 0.05 * Лабораторная работа – Инкапсуляция и наследование + 0.05 * Лабораторная работа – Асинхронное выполнение + 0.05 * Лабораторная работа – Управление общим состоянием + 0.05 * Лабораторная работа – Алгоритмы + 0.4 * Экзамен + 0.05 * Лабораторная работа - Простая программа на JavaScript
Список литературы
Рекомендуемая основная литература
- Gamma, E., Helm, R., Johnson, R. E., & Vlissides, J. (2009). Design Patterns : Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley Professional. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1599365
- Goralski, W. (2017). The Illustrated Network : How TCP/IP Works in a Modern Network (Vol. Second edition). Amsterdam: Morgan Kaufmann. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1450801
- Haverbeke, M. (2019). Eloquent JavaScript, 3rd Edition : A Modern Introduction to Programming (Vol. Third edition). San Francisco, CA: No Starch Press. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1739634
- Введение в HTML5 : учебное пособие. — 2-е изд. — Москва : ИНТУИТ, 2016. — 133 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100680 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Каскиаро, М. Шаблоны проектирования Node.js. Воспользуйтесь самыми мощными компонентами и шаблонами платформы Node.js для создания масштабируемых модульных приложений / М. Каскиаро, Л. Маммино ; перевод с английского А. Н. Киселева. — Москва : ДМК Пресс, 2017. — 396 с. — ISBN 978-5-97060-485-4. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/108127 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Computer Networks : A Systems Approach. (2019). Princeton, New Jersey: Larry Peterson and Bruce Davie. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsotl&AN=edsotl.OTLid0000771
- Государев И.Б. - Введение в веб-разработку на языке JavaScript: учебное пособие - Издательство "Лань" - 2019 - ISBN: 978-5-8114-3539-5 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/118648
- Диков А.В. - Клиентские технологии веб-дизайна. HTML5 и CSS3: учебное пособие - Издательство "Лань" - 2019 - ISBN: 978-5-8114-3822-8 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/122174