2021/2022





Технологии программирования
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Майнор
Кто читает:
Департамент информатики
Когда читается:
3, 4 модуль
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Дворкин Михаил Эдуардович,
Демкин Валерий Матвеевич,
Зубаков Алексей Васильевич,
Исаева Елена Алексеевна,
Резник Сергей Александрович,
Тимофеева Мария Александровна
Язык:
русский
Кредиты:
5
Программа дисциплины
Аннотация
Дисциплина «Технологии программирования» призвана сформировать у студентов теоретические знания и практические навыки по основам методологии программирования, а также базовое представление об алгоритмах и структурах данных, применяющихся в современном программировании, и возможностях реализации алгоритмов и структур данных на скриптовых языках программирования.
Цель освоения дисциплины
- сформировать у студентов базовое представление об алгоритмах и структурах данных, применяющихся в современном программировании, а также о возможностях реализации алгоритмов и структур данных на скриптовых языках программирования
Планируемые результаты обучения
- Владеет основами вычислительной геометрии и методов глобальной оптимизации
- Владеет основами работы с графами
- Владеет понятием квадратичных алгоритмов
- Владеет понятием О-символики
- Владеет понятиями линейных и ссылочных типов данных
- Владеет понятиями массивов и списков
- Владеет понятиями: вектор; стек; очередь; дек; куча
- Владеет понятиями: целые числа; ввод-вывод; строки; условный оператор; цикл 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 учебный год 3 модуль
- 2021/2022 учебный год 4 модуль0.045 * Решение задач по модулю «Алгоритмы на строках» + 0.045 * Решение задач по модулю «Вычислительная геометрия» + 0.045 * Решение задач по модулю «Двоичный (бинарный) поиск» + 0.045 * Решение задач по модулю «Динамическое программирование» + 0.045 * Решение задач по модулю «Задачи на арифметические алгоритмы» + 0.045 * Решение задач по модулю «Квадратичные сортировки» + 0.045 * Решение задач по модулю «Комбинаторика и перебор» + 0.045 * Решение задач по модулю «Кратчайшие пути в графах» + 0.045 * Решение задач по модулю «Кучи и деревья поиска» + 0.045 * Решение задач по модулю «Массив, стек, очередь» + 0.045 * Решение задач по модулю «Методы глобальной оптимизации» + 0.045 * Решение задач по модулю «Односвязный и двусвязный списки» + 0.045 * Решение задач по модулю «Продвинутая сортировка» + 0.045 * Решение задач по модулю «Регулярные выражения» + 0.045 * Решение задач по модулю «Хранение и обход графов» + 0.325 * Экзамен
Список литературы
Рекомендуемая основная литература
- Федоров Д. Ю. - ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ 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