• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Контакты

Адрес: 123458, Москва, Таллинская улица, 34 (м. "Строгино").

Телефон:
(495) 772-95-90 *11086
(915) 317-30-12

E-mail: avbelov@hse.ru

Руководство
Заместитель руководителя Воронцова Татьяна Дмитриевна
Статья
On the construction of Barnes–Wall lattices and their application in cryptography

Kuninets A., Malygina E., Leevik A. G. et al.

Journal of Computer Virology and Hacking Techniques. 2026. No. 22.

Глава в книге
On the Electro-Hydrodynamical Boundary Value Problem for the Unit Cell of Cation-Exchange Membrane

Yulia O. Koroleva, Alexander V. Korolev.

In bk.: Proceedings of the 9th International School-Seminar on Nonlinear Analysis and Extremal Problems (NLA-2026). Irkutsk, Russia, June 22–26, 2026.. Irkutsk: ISDCT SB RAS, 2026. P. 132-133.

Препринт
New bound on S1× S2-setting Bell locality of a nonseparable Werner state

Loubenets E. R.

quant-ph. arxiv.org. Cornell University, 2026. No. 2607.18050.

Алгоритмизация и программирование

2025/2026
Учебный год
RUS
Обучение ведется на русском языке
7
Кредиты
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс обязательный
Когда читается:
2-й курс, 1-3 модуль

Преподаватели

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

Аннотация

Целями освоения дисциплины Алгоритмизация и программирование является ознакомление студентов с методами решения прикладных задач и их реализации на языке программирования Си и С++. В процессе изучения дисциплины студенты приобретают навыки проектирования и разработки программных приложений, которые будут использоваться при выполнении различных заданий и работ по дисциплинам, изучаемым на последующих курсах. В результате освоения дисциплины студент должен знать: 1) Основы информатики. 2) Основные структуры данных и методы их обработки. 3) Различия между языками программирования высокого и низкого уровня. 4) Язык программирования Си и возможности стандартной библиотеки. 5) Язык программирования С++ и возможности стандартной библиотеки.6) Инструменты разработки: git и cmake.Должен уметь: 1) Формализовать прикладную задачу, выбирать для неё подходящие структуры данных и алгоритмы решения. 2) Программировать алгоритмы, используя средства языка Си и С++. 3) Разрабатывать тестовые случаи и сценарии.Иметь навыки (приобрести опыт): 1) В разработке программ на языке Си и С++. 2) В проведении отладки и тестирования разработанных программ. 3) В проведении анализа получаемых результатов и оформлении сопроводительной документации на программы.4) Организация проекта с использованием git и cmake. Изучение данной дисциплины базируется на следующих дисциплинах: Линейная алгебра; Математический анализ; Дискретная математика. Для освоения учебной дисциплины, студенты должны владеть следующими знаниями и компетенциями: знать основы информатики и ИКТ; знать основы линейной алгебры; знать элементы математической логики; уметь использовать программные и аппаратные средства информатики.
Цель освоения дисциплины

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

  • Ознакомление студентов с методами решения прикладных задач и их реализации на языке программирования Си.
  • Освоение основ объектно-ориентированного программирования на языке С++
Планируемые результаты обучения

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

  • Владеет основными шаблонами проектирования, понимает принципы их реализации и использования в разных языках программирования.
  • Навыки программного создания, чтения и изменения файлов на языке Си.
  • Навыки работы со статической и динамической памятью на языке Си.
  • Написание простейших программ на языке Си.
  • Определение пользовательских типов данных и операций над ними.
  • Понимание основных методов сортировки данных и критериев их эффективности.
  • Реализация некоторых абстрактных типов данных на языке Си.
  • Реализация пользовательских функций на языке Си.
  • Способен проектировать и реализовывать систему с множеством связанных объектов на основе концепции ООП в С++.
  • Способен реализовать программу на языке С++ по заданному алгоритму.
  • Способен реализовать программу на языке С++ с использованием контейнеров и алгоритмов стандартной библиотеки, шаблонов и обработкой всех видов исключений.
  • Умеет создавать приложения с 2D графическим интерфейсом.
  • Умеет организовывать программные проекты с помощью системы сборки cmake.
  • Умеет пользоваться системой контроля версий для версионирования разрабатываемого ПО.
Содержание учебной дисциплины

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

  • Функции.
  • Базовые понятия и конструкции языка Си. Препроцессорные директивы.
  • Указатели, массивы, строки. Статическая и динамическая память.
  • Организация ввода/вывода в языке Си. Файлы.
  • Структурные типы данных языка Си.
  • Алгоритмы сортировки и поиска данных.
  • Абстрактные типы данных.
  • Введение в программирование на С++.
  • Обработка исключений. Знакомство с библиотекой STL.
  • ООП в С++. Наследование, виртуальные функции, полиморфизм. Шаблоны.
  • Паттерны проектирования.
  • 2D Графика
  • Cmake
  • Git
  • Подготовка к независимому экзамену по программированию
Элементы контроля

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

  • неблокирующий ЛР1
  • неблокирующий ЛР2
  • неблокирующий Экзамен1
  • неблокирующий Экзамен2
  • неблокирующий ЛР1 (С++)
  • неблокирующий ЛР2 (С++)
  • неблокирующий ЛР3 (С++)
  • неблокирующий Аудиторная работа 1
  • неблокирующий Аудиторная работа 2
  • неблокирующий Экзамен3
  • неблокирующий Экзамен4
Промежуточная аттестация

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

  • 2024/2025 2nd module
    0.6 * Экзамен1 + 0.4 * ЛР1
  • 2024/2025 4th module
    0.4 * ЛР2 + 0.6 * Экзамен2
  • 2025/2026 1st module
    0.2 * Аудиторная работа 1 + 0.4 * Экзамен3 + 0.4 * ЛР1 (С++)
  • 2025/2026 3rd module
    0.2 * ЛР2 (С++) + 0.2 * Аудиторная работа 2 + 0.4 * Экзамен4 + 0.2 * ЛР3 (С++)
Список литературы

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

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

  • Белоцерковская, И. Е. Алгоритмизация. Введение в язык программирования С++ : учебное пособие / И. Е. Белоцерковская, Н. В. Галина, Л. Ю. Катаева. — 2-е изд. — Москва : ИНТУИТ, 2016. — 196 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100564 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Конова, Е. А. Алгоритмы и программы. Язык С++ : учебное пособие для вузов / Е. А. Конова, Г. А. Поллак. — 6-е изд., стер. — Санкт-Петербург : Лань, 2021. — 384 с. — ISBN 978-5-8114-8487-4. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/176900 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Курс программирования на языке Си : учебник для вузов, Подбельский, В. В., 2018
  • Практикум по программированию на языке СИ : учебное пособие, Подбельский, В. В., 2004
  • Седжвик, Р. Алгоритмы на С++ : учебное пособие / Р. Седжвик. — 2-е изд. — Москва : ИНТУИТ, 2016. — 1772 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/100565 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
  • Язык программирования C++, Страуструп, Б., 2012
  • Язык программирования С, Керниган, Б., 2012

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

  • Freeman, E., Freeman, E., Sierra, K., & Bates, B. (2004). Head First Design Patterns : A Brain-Friendly Guide. Sebastopol, CA: Reilly - O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415229
  • Алгоритмы и структуры данных, Вирт, Н., 2001

Авторы

  • Дёмин Дмитрий Олегович
  • Сластников Сергей Александрович
  • Миколаенко Вадим Витальевич
  • Зонтов Юрий Владимирович