We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

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

Web-Programming

2021/2022
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Course type:
Elective course
When:
4 year, 1, 2 module

Instructor


Тихонов Николай Николаевич

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

Аннотация

Дисциплина "Веб программирование" знакомит студентов с основными подходами, технологиями, протоколами взаимодействия, используемыми в Веб программировании. Программа состоит из 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

Авторы

  • Пученкин Артем Викторович