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

2023/2024
Academic Year
RUS
Instruction in Russian
4
ECTS credits
Course type:
Compulsory course
When:
3 year, 3 module

Instructor


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

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

Аннотация

Дисциплина "Веб программирование" знакомит студентов с основными подходами, технологиями, протоколами взаимодействия, используемыми в Веб программировании. Программа состоит из 2х частей: первая посвящена языку программирования JavaScript и программирования с использованием этого языка, вторая рассматривает основные прикладные аспекты программирования для веб и используемые современные технологии.
Цель освоения дисциплины

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

  • Знакомство с языком программирования JavaScript
  • Знакомство с основными технологиями, подходами и решениями в области веб программирования
  • Умение выбрать нужную веб технологию, и внедрить в решение
  • Получение навыков создания работоспособного веб приложения
Планируемые результаты обучения

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

  • Выбирать необходимый для эффективного решения тип данных
  • Выделять общие части кода с помощью указанных методов
  • Выделять общую часть программ используя прототипное наследование
  • Запускать программные компоненты при наступлении определённых событий
  • Использовать асинхронные интерфейсы и структуры данных разных платформ (NodeJs, Браузер)
  • Использовать базовый синтаксис для решения прикладных задач
  • Использовать встроенные в браузер механики HTML элементов
  • Использовать встроенные функции языка для управления и трансформации типов
  • Использовать динамический контекст и определять его текущее значение
  • Использовать инкапсуляцию для сокрытия части реализации
  • Использовать менеджер пакетов для управления зависимостями проекта
  • Использовать подходы Объектно-ориентированно программирования для предотвращения возникновения проблем при масштабировании программ
  • Использовать подходы функционального программирования для асинхронных программ
  • Использовать протоколы более высокого уровня на основе HTTP
  • Использовать рекурсию и функции как объекты первого класса
  • Находить требуемый элемент в дереве DOM
  • Обеспечивать быстродействие для работы программы в реальном времени
  • Описывать структуру отображаемых данных в виде HTML
  • Определять область видимости обвяленных переменных
  • Определять объем необходимой памяти, а также понимать принцип работы автоматического сборщика мусора
  • Определять порядок выполнения инструкций при параллельном исполнении программ
  • Определять события браузера при пользовательском взаимодействии
  • Оценивать эффективность (сложность алгоритма) на базе выбранного типа
  • Передавать данные между веб серверами или между клиентом и сервером через протокол HTTP
  • Применять декларативный и императивный подходы в программировании
  • Применять интерпретатор JavaScript для запуска программ
  • Применять сборщик пакетов для компиляция исходного кода в бандл
  • Создавать изменяемые и неизменяемые структуры данных
  • Создавать надежные, расширяемые программные интерфейсы
  • Создавать необходимые структуры данных на базе примитивов
  • Создавать простые программы с использованием синтаксиса языка JavaScript
  • Создавать собственные модули, обеспечивать независимость модулей
  • Управлять отображением данных при помощи CSS
  • Управлять представлением в браузере посредством изменения дерева DOM
Содержание учебной дисциплины

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

  • Обзор синтаксиса JavaScript
  • Типы и структуры данных
  • Функции, области видимости и замыкания
  • Объекты и прототипы
  • Объектно-ориентированное программирование в JavaScript
  • Функциональное программирование в JavaScript
  • Асинхронное программирование в JavaScript
  • Веб инфраструктура
  • Html и CSS
  • Публичные интерфейсы браузера, DOM
  • Транспортные протоколы
Элементы контроля

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

  • неблокирующий Домашнее задание 1.
    Создание страницы на HTML
  • неблокирующий Домашнее задание 2
    Прохождение игр по CSS
  • неблокирующий Домашнее задание 3
    Создание игры «Крестики нолики» на JS
  • неблокирующий Домашнее задание 4.
    Создание таск трекера на React
  • неблокирующий Домашнее задание 5.
    Создание приложения «Книга рецептов» на React
  • неблокирующий Экзамен
    Билеты, в них теоретические вопросы
Промежуточная аттестация

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

  • 2023/2024 учебный год 3 модуль
    0.14 * Домашнее задание 1. + 0.14 * Домашнее задание 2 + 0.14 * Домашнее задание 3 + 0.14 * Домашнее задание 4. + 0.14 * Домашнее задание 5. + 0.3 * Экзамен
Список литературы

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

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

  • 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

Авторы

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