• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2021/2022

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

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус: Курс обязательный (Информационная безопасность)
Направление: 10.03.01. Информационная безопасность
Когда читается: 1-й курс, 1-4 модуль
Формат изучения: без онлайн-курса
Охват аудитории: для своего кампуса
Преподаватели: Байдин Георгий Сергеевич, Дерендяев Александр Борисович, Крещук Алексей Андреевич, Морозов Владимир Игоревич, Подшивалов Ярослав Олегович
Язык: русский
Кредиты: 12

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

Аннотация

Курс "Алгоритмизация и программирование" направлен на формирование навыков применения стандартных алгоритмов и различных структур данных для решения практико-ориентированных задач, умение использовать стандартное программное обеспечение в своей профессиональной деятельности.
Цель освоения дисциплины

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

  • Введение в теорию сложности алгоритмов
  • − освоение технологии структурного программирования;
  • Изучение основных подходов к проектированию алгоритмов
  • − изучение базовых элементов языков Python и C/C++;
  • Изучение основных структур данных
  • − изучение стандартных алгоритмов обработки различных структур данных;
  • изучение базовых элементов языков Python и C++
  • − изучение приёмов разработки алгоритмов для обработки различных структур данных.
Планируемые результаты обучения

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

  • Знает алгоритмы поиска и сортировки с наименьшей асимптотической сложностью.
  • Знает определения Тьюринг-полноты и NP-полноты.
  • Знает основные коллекции и алгоритмы стандартной библиотеки.
  • Знает основные структуры данных, такие как очередь, список, хеш-таблица, красно-чёрное дерево.
  • Знает основы языка программирования C++.
  • Знает основы языка программирования Python.
  • Понимает внутреннее устройство большей части алгоритмов из стандартной библиотеки.
  • Умеет выбрать подходящую структуру данных для решения конкретной задачи.
  • Умеет использовать динамическое программирование и метод «разделяй и властвуй» для проектирования алгоритмов.
  • Умеет использовать основные конструкции языка, такие как ветвления циклы, generator expressions.
  • Умеет оценивать сложность алгоритмов.
  • Умеет реализовывать свои функции и классы.
  • Умеет реализовывать свои функции и классы.
Содержание учебной дисциплины

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

  • Тема 1. Алгоритмы и их сложность. Алгоритмы поиска и сортировки.
  • Тема 2. Основные методы проектирования алгоритмов.
  • Тема 3. Структуры данных.
  • Тема 4. Общая теория сложности задач
  • Тема 5. Python.
  • Тема 6. C++
Элементы контроля

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

  • неблокирующий Домашние задания
  • неблокирующий Дистанционный устный экзамен
    Преподаватель вправе освободить от прохождения экзамена студентов, с выставлением им во время сессии оценки по промежуточной аттестации, соответствующей накопленной оценке без учёта веса экзамена (то есть сумма весов всех элементов контроля, за исключением экзамена, приравнивается к единице). Преподаватель объявляет свое решение не позднее, чем на последнем занятии до экзамена. Для объявления оценок могут быть использованы официальные каналы передачи информации, используемые в процессе обучения. По желанию студентов, они могут отказаться от выставления оценки без проведения экзамена и сдать его, о чем сообщают преподавателю не позднее последнего занятия. Экзамен проводится в устной форме (опрос по материалам курса). Экзамен проводится на платформе Jitsi https://meet.miem.hse.ru К экзамену необходимо подключиться согласно расписанию ответов. Компьютер студента должен удовлетворять требованиям: наличие рабочей камеры и микрофона, поддержка Jitsi. Для участия в экзамене студент обязан: поставить на аватар свою фотографию, явиться на экзамен согласно точному расписанию, при ответе включить камеру и микрофон. Во время экзамена студентам запрещено: выключать камеру, пользоваться конспектами и подсказками. Кратковременным нарушением связи во время экзамена считается нарушение связи менее минуты. Долговременным нарушением связи во время экзамена считается нарушение более одной минуты. При долговременном нарушении связи студент не может продолжить участие в экзамене.
  • блокирующий Групповой проект
    Дистанционный формат со 2-го модуля.
  • неблокирующий Домашние задания
    3 и 4 модули
  • блокирующий Групповой проект
    3 и 4 модули
  • неблокирующий Письменный экзамен
    3 и 4 модули
Промежуточная аттестация

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

  • 2021/2022 учебный год 1 модуль
  • 2021/2022 учебный год 2 модуль
    0.4 * Групповой проект + 0.2 * Дистанционный устный экзамен + 0.4 * Домашние задания
  • 2021/2022 учебный год 3 модуль
  • 2021/2022 учебный год 4 модуль
    0.5 * 2021/2022 учебный год 4 модуль + 0.1 * Групповой проект + 0.2 * Дистанционный устный экзамен + 0.2 * Домашние задания
Список литературы

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

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

  • Алгоритмы: построение и анализ, Кормен, Т., 2011
  • Белоцерковская И.Е., Галина Н.В., Катаева Л.Ю. - Алгоритмизация. Введение в язык программирования С++ - Национальный Открытый Университет "ИНТУИТ" - 2016 - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100564
  • Изучаем Python, Лутц, М., 2014
  • Программирование : принципы и практика с использованием С++, Страуструп, Б., 2018
  • Солтис М. - Введение в анализ алгоритмов - Издательство "ДМК Пресс" - 2019 - ISBN: 978-5-97060-696-4 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/123707
  • Трофимов В. В., Павловская Т. А. ; Под ред. Трофимова В.В. - АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ. Учебник для академического бакалавриата - М.:Издательство Юрайт - 2019 - 137с. - ISBN: 978-5-534-07834-3 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/algoritmizaciya-i-programmirovanie-423824

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

  • Python. Самое необходимое, Прохоренок, Н. А., 2015
  • Северенс Ч. - Введение в программирование на Python - Национальный Открытый Университет "ИНТУИТ" - 2016 - ISBN: - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/100703
  • Язык программирования С++ : специальное издание, Страуструп, Б., 2015