Бакалавриат
2026/2027




Программирование и алгоритмические основы машинного обучения
Статус:
Курс по выбору (Фундаментальная и компьютерная лингвистика)
Кто читает:
Школа лингвистики
Где читается:
Факультет гуманитарных наук
Когда читается:
3-й курс, 1-3 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
6
Контактные часы:
102
Программа дисциплины
Аннотация
Первая часть курса знакомит слушателей с основными принципами объектно-ориентированного программирования, в том числе применительно к языку программирования Python, а также с некоторыми возможностями и модулями стандартной библиотеки этого языка. Также рассматриваются темы, связанные с архитектурой ПО (например, основные шаблоны проектирования) и тестированием приложений. Вторая часть курса посвящена базовым алгоритмам и структурам данных. Третья часть курса знакомит слушателей с основами машинного обучения, детально рассматриваются линейная и логистическая регрессия, а также векторизация текстов.
Цель освоения дисциплины
- Познакомить слушателей, знакомых с основами программирования на языке Python, с объектно-ориентированным подходом и его особенностями в языке Python, а также с рядом функций и модулей этого языка; познакомить слушателей с основами анализа данных; познакомить слушателей с основами работы с текстовыми данными.
- Познакомить студентов с рядом базовых структур данных и алгоритмов, в том числе связанных с обработкой текстовых данных; познакомить с методами анализа и сравнения алгоритмов; научить студентов эффективной реализации структур данных и алгоритмов, а также сведению практических задач к известным стандартными алгоритмам.
Планируемые результаты обучения
- Владеть навыками интерпретации результатов простейших моделей машинного обучения
- Владеть навыками первичной обработки данных и формализации задач обучения с учителем
- Владеть основными функциями модулей numpy, pandas, scikit-learn в языке Python
- Знать английские эквиваленты всех используемых в курсе терминов и понятий, уметь пользоваться документацией на английском языке
- Знать несколько реализаций словарей и множеств, их свойства и области применения
- Знать основные алгоритмы сортировки и их сложность
- Знать основные техники оценки и сравнения времени работы алгоритмов
- Знать устройство базовых числовых и строковых типов данных, принципы исполнения программы
- Научиться реализовывать базовые структуры данных на языке Python
- Освоить принципы объектно-ориентированного программирования и научиться применять их при работе с языком Python
- Освоить ряд стандартных алгоритмов и уметь реализовывать эти алгоритмы на языке Python
- Понимать общую концепцию динамического программирования и умеет сводить к нему практические задачи
- Уметь использовать функции из библиотек scikit-learn, реализующие линейную и логистическую регрессию
- Уметь оценивать алгоритмы с точки зрения вычислительной сложности и потребляемой памяти и сравнивать алгоритмы
- Уметь оценивать алгоритмы с точки зрения вычислительной сложности и потребляемой памяти и сравнивать алгоритмы
- Уметь реализовывать линейную и логистическую регрессию на языке программирования Python
- Уметь решать практические задачи, сводимые к ряду стандартных задач, для решения которых существуют реализованные алгоритмы
Содержание учебной дисциплины
- Объектно-ориентированное программирование
- Введение в алгоритмы и структуры данных
- Введение в машинное обучение. Введение в анализ текстов.
Промежуточная аттестация
- 2026/2027 2nd module0.6 * Домашние задания 1 + 0.4 * Коллоквиум
- 2026/2027 3rd module0.4 * Коллоквиум 2 + 0.6 * Домашние задания 2
Список литературы
Рекомендуемая основная литература
- Python и анализ данных, Маккинни, У., 2015
- Игошин В.И. - Сборник задач по математической логике и теории алгоритмов - 978-5-906818-08-9 - КУРС - 2027 - https://znanium.ru/catalog/document?id=485942 - 485942 - ZNANIUM
Рекомендуемая дополнительная литература
- Введение в программирование : учеб. пособие, Баженова, И. Ю., 2007