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

HSE Campus in St PetersburgBachelor's programmesSchool of Computer Science, Physics and TechnologyBachelor's Programme in Applied Mathematics and Information ScienceCourses

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

Go Programming Language

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

Instructors


Гусев Григорий Дмитриевич


Митин Пётр Алексеевич


Сушков Валентин Юрьевич


Чумаков Антон Сергеевич

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

Аннотация

Дисциплина направлена на формирование у студентов профессиональных компетенций в области проектирования и реализации современных серверных приложений с использованием языка программирования Go. Основное внимание уделяется принципам построения конкурентных систем, разработке веб-сервисов, взаимодействию с системами управления базами данных, а также внедрению практик непрерывной интеграции и эксплуатации программного обеспечения в условиях, приближенных к промышленным.
Цель освоения дисциплины

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

  • Формирование у студентов теоретических знаний и практических навыков в области проектирования и реализации конкурентных серверных приложений на языке Go, включая владение моделью параллелизма, принципами построения веб-сервисов и интеграции с современными системами хранения данных.
  • Развитие у обучающихся компетенций самостоятельной разработки масштабируемого серверного программного обеспечения, готового к эксплуатации в промышленной среде.
Планируемые результаты обучения

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

  • Знает синтаксис и модель конкурентного выполнения языка Go (горутины, каналы, контексты), принципы построения веб-серверов на `net/http` и gRPC, основы микросервисной архитектуры, паттерны отказоустойчивого взаимодействия с внешними API, а также методы обеспечения наблюдаемости программных систем (логирование, метрики)
  • Умеет проектировать веб-приложения с чётким разделением слоёв ответственности, применять паттерн Repository для абстракции доступа к СУБД, реализовывать middleware для аутентификации и ограничения трафика, конфигурировать сервисы, настраивать сбор метрик Prometheus, а также разрабатывать сценарии непрерывной интеграции и доставки (CI/CD) с контейнеризацией
  • Имеет навыки написания и отладки конкурентного кода, профилирования производительности и выявления утечек памяти, модульного и интеграционного тестирования HTTP-сервисов, кодогенерации типовых компонентов, построения дашбордов мониторинга, а также проектирования архитектуры высоконагруженных сервисов и прохождения собеседований по системному дизайну
Содержание учебной дисциплины

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

  • Раздел 1. Основы языка Go и конкурентное программирование
  • Раздел 2. Веб-сервер, проектирование API и компоненты веб-приложений
  • Раздел 3. Разработка веб-сервиса, работа с базами данных и микросервисная архитектура
  • Раздел 4. Мониторинг, логирование и автоматизация жизненного цикла
  • Раздел 5. Углублённые темы и производительность
Элементы контроля

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

  • неблокирующий Домашнее задание
    Пример задания: Текстовая игра В рамках выполнения задачи вы научитесь писать базовый код, поработаете со структурами, методами, функциями, if-ами, map-ами. Никаких дополнительных специфичных знаний вам не потребуется. Основная цель задания – поупражняться в моделировании объектов. Когда-то давно, когда компьютеры были большими, интернет – медленным, а графических ускорителей не было вовсе, уже существовали многопользовательские игры. Они имели текстовый интерфейс и назывались MUD, Multi User Dungeon. Мы пишем простую игру, которая реагирует на команды игрока. Максимальное количество очков за данное задание на платформе AllCups – 4. При наборе 4 очков ДЗ считается сданным и оценивается в 10 баллов на портале. Решения, не набравшие 4 очка, оцениваются в 0 баллов на портале. Для отправки ДЗ откройте соответствующую ему страницу на AllCups. В левой части экрана будут приведены описание задания, ссылки на исходные материалы, а также критерии оценивания. В правой части экрана расположено окно для загрузки решения. Перетащите в него нужный файл или нажмите на любое место в области загрузки и в открывшемся окне укажите требуемый файл. После указания файла внизу появится кнопка «Отправить». По нажатию на неё решение отправляется на проверку. Проверка занимает некоторое время, так что наберитесь терпения. Результаты проверок можно посмотреть в правой части экрана под областью загрузки. Лучшее решение помечено зеленой галочкой и соответствующей надписью. В качестве решения принимаются файлы с расширением .go или .zip. Важно, если возникает потребность в отправке нескольких файлов одним архивом (например, main.go + директория со вспомогательными функциями), то архивируйте именно указанные файлы, а не директорию с ними. Так, вышеобозначенный пример не стоит отправлять как архив папки solution, содержащей нужные файлы.
  • неблокирующий Рубежный контроль
    Описание (может варьировать на усмотрение преподавателя): На выполнение теста отводится 90 минут. Тест состоит из 20 вопросов по всем пройденным темам. По каждой из тем обучающемуся выводится пять утверждений, среди которых он должен отметить верные. За каждую из тем обучающийся получает 1 балл при правильном выборе всех верных утверждений. Максимальное количество баллов –20.
  • блокирующий Экзамен
    Описание: Письменный экзамен проводится в форме ответов на вопросы экзаменационного билета. На подготовку ответа выделяется 2,5 часа. Экзамен состоит из нескольких задач разной стоимости. Каждая задача имеет вполне определенный ответ, который нужно выписать. Кроме ответа, нужно привести и его обоснование. Задача подразумевает довольно глубокое знакомство с теоретическим материалом.
Промежуточная аттестация

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

  • 2026/2027 2nd module
    Формула оценивания: О_ИТОГ = SUM_7_ДЗ + SUM_2_РК+ SUM_ЭКЗ
Список литературы

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

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

  • Go: идиомы и паттерны проектирования. 2-е изд. - 978-601-08-4721-7 - Боднер Джон - 2025 - Астана: Спринт Бук - https://ibooks.ru/products/399827 - 399827 - iBOOKS
  • Язык программирования Go, Донован, А. А. А., 2016

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

  • Go на практике - Батчер М., Фарина М. - Издательство "ДМК Пресс" - 978-5-97060-477-9 - 2017 - русский - https://e.lanbook.com/book/97351 - ЛАНЬ - 97351
  • Нестеров, С. А.  Базы данных : учебник и практикум для вузов / С. А. Нестеров. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2026. — 258 с. — (Высшее образование). — ISBN 978-5-534-18107-4. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/583591 (дата обращения: 02.07.2026).

Авторы

  • Кузнецов Антон Михайлович
  • Юнышева Анастасия Владимировна