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

Технологии программирования

Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус: Майнор
Когда читается: 3, 4 модуль
Охват аудитории: для всех кампусов НИУ ВШЭ
Преподаватели: Дворкин Михаил Эдуардович, Демкин Валерий Матвеевич, Зубаков Алексей Васильевич, Исаева Елена Алексеевна, Резник Сергей Александрович, Тимофеева Мария Александровна
Язык: русский
Кредиты: 5
Контактные часы: 60

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

Аннотация

Дисциплина «Технологии программирования» призвана сформировать у студентов теоретические знания и практические навыки по основам методологии программирования, а также базовое представление об алгоритмах и структурах данных, применяющихся в современном программировании, и возможностях реализации алгоритмов и структур данных на скриптовых языках программирования.
Цель освоения дисциплины

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

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

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

  • Владеет основами вычислительной геометрии и методов глобальной оптимизации
  • Владеет основами работы с графами
  • Владеет понятием квадратичных алгоритмов
  • Владеет понятием О-символики
  • Владеет понятиями линейных и ссылочных типов данных
  • Владеет понятиями массивов и списков
  • Владеет понятиями: вектор; стек; очередь; дек; куча
  • Владеет понятиями: целые числа; ввод-вывод; строки; условный оператор; цикл while; вещественные числа и операции над ними. функция и рекурсия; кортежи и списки; цикл for; множества и словари
  • Знает алгоритмы над массивами; динамическое программирование
  • Знает базовые понятия объектно-ориентируемого программирования
  • Знает синтаксис языка Python
  • Знает сортировки, работающие за NLogN; сортировки кучей; сортировка слиянием; быструю сортировку
  • Знает способы различные способы представления графа в памяти ЭВМ, алгоритмы обхода графа, поиска путей в графах
  • Имеет представление о сложности алгоритмов
Содержание учебной дисциплины

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

  • Линейные структуры данных: массив, стек, очередь
  • Односвязный и двусвязный списки
  • Двоичный поиск
  • Алгоритмы сортировки
  • Арифметические алгоритмы
  • Динамическое программирование
  • Комбинаторные задачи и перебор
  • Кучи и деревья поиска
  • Алгоритмы на строках и регулярные выражения
  • Графы и работа с ними
  • Вычислительная геометрия
  • Основы методов глобальной оптимизации
Элементы контроля

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

  • неблокирующий Решение задач по модулю «Массив, стек, очередь»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Квадратичные сортировки»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Экзамен
    Экзамен проходит в онлайн-формате. Экзамен представляет собой набор из 10 задач на платформе Stepik. Время ответа – 2 академических часа.
  • неблокирующий Решение задач по модулю «Односвязный и двусвязный списки»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Двоичный (бинарный) поиск»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Задачи на арифметические алгоритмы»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Динамическое программирование»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Комбинаторика и перебор»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Кучи и деревья поиска»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Регулярные выражения»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Хранение и обход графов»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Кратчайшие пути в графах»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Вычислительная геометрия»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Методы глобальной оптимизации»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Продвинутая сортировка»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
  • неблокирующий Решение задач по модулю «Алгоритмы на строках»
    Для учащихся создан курс с задачами на платформе Stepik https://stepik.org/course/63216/info. Курс состоит из 15 модулей, каждый модуль состоит из нескольких задач на определенную тему.
Промежуточная аттестация

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

  • 2021/2022 учебный год 4 модуль
    0.045 * Решение задач по модулю «Массив, стек, очередь» + 0.045 * Решение задач по модулю «Регулярные выражения» + 0.045 * Решение задач по модулю «Вычислительная геометрия» + 0.325 * Экзамен + 0.045 * Решение задач по модулю «Двоичный (бинарный) поиск» + 0.045 * Решение задач по модулю «Продвинутая сортировка» + 0.045 * Решение задач по модулю «Методы глобальной оптимизации» + 0.045 * Решение задач по модулю «Хранение и обход графов» + 0.045 * Решение задач по модулю «Квадратичные сортировки» + 0.045 * Решение задач по модулю «Алгоритмы на строках» + 0.045 * Решение задач по модулю «Кучи и деревья поиска» + 0.045 * Решение задач по модулю «Задачи на арифметические алгоритмы» + 0.045 * Решение задач по модулю «Кратчайшие пути в графах» + 0.045 * Решение задач по модулю «Динамическое программирование» + 0.045 * Решение задач по модулю «Односвязный и двусвязный списки» + 0.045 * Решение задач по модулю «Комбинаторика и перебор»
Список литературы

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

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

  • Федоров Д. Ю. - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ PYTHON 2-е изд. Учебное пособие для СПО - М.:Издательство Юрайт - 2019 - 161с. - ISBN: 978-5-534-11961-9 - Текст электронный // ЭБС ЮРАЙТ - URL: https://urait.ru/book/programmirovanie-na-yazyke-vysokogo-urovnya-python-446505

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

  • Romano, F. (2015). Learning Python. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=nlebk&AN=1133614