• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Programming and Computer Science

2023/2024
Academic Year
RUS
Instruction in Russian
5
ECTS credits
Course type:
Elective course
When:
3 year, 2-4 module

Instructor

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

Аннотация

Первая часть курса знакомит слушателей с основными принципами объектно-ориентированного программирования, в том числе применительно к языку программирования Python, а также с некоторыми возможностями и модулями стандартной библиотеки этого языка. Также рассматриваются темы, связанные с архитектурой ПО (например, основные шаблоны проектирования) и тестированием приложений. Вторая часть курса посвящена базовым алгоритмам и структурам данных. Третья часть курса знакомит слушателей с основами машинного обучения, детально рассматриваются линейная и логистическая регрессия, а также векторизация текстов.
Цель освоения дисциплины

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

  • Познакомить слушателей, знакомых с основами программирования на языке Python, с объектно-ориентированным подходом и его особенностями в языке Python, а также с рядом функций и модулей этого языка; познакомить слушателей с основами анализа данных; познакомить слушателей с основами работы с текстовыми данными.
  • Познакомить студентов с рядом базовых структур данных и алгоритмов, в том числе связанных с обработкой текстовых данных; познакомить с методами анализа и сравнения алгоритмов; научить студентов эффективной реализации структур данных и алгоритмов, а также сведению практических задач к известным стандартными алгоритмам.
Планируемые результаты обучения

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

  • Владеть навыками интерпретации результатов простейших моделей машинного обучения
  • Владеть навыками первичной обработки данных и формализации задач обучения с учителем
  • Владеть основными функциями модулей numpy, pandas, scikit-learn в языке Python
  • Знать английские эквиваленты всех используемых в курсе терминов и понятий, уметь пользоваться документацией на английском языке
  • Знать несколько реализаций словарей и множеств, их свойства и области применения
  • Знать основные алгоритмы сортировки и их сложность
  • Знать основные техники оценки и сравнения времени работы алгоритмов
  • Знать устройство базовых числовых и строковых типов данных, принципы исполнения программы
  • Научиться реализовывать базовые структуры данных на языке Python
  • Освоить принципы объектно-ориентированного программирования и научиться применять их при работе с языком Python
  • Освоить ряд стандартных алгоритмов и уметь реализовывать эти алгоритмы на языке Python
  • Понимать общую концепцию динамического программирования и умеет сводить к нему практические задачи
  • Уметь использовать функции из библиотек scikit-learn, реализующие линейную и логистическую регрессию
  • Уметь оценивать алгоритмы с точки зрения вычислительной сложности и потребляемой памяти и сравнивать алгоритмы
  • Уметь оценивать алгоритмы с точки зрения вычислительной сложности и потребляемой памяти и сравнивать алгоритмы
  • Уметь реализовывать линейную и логистическую регрессию на языке программирования Python
  • Уметь решать практические задачи, сводимые к ряду стандартных задач, для решения которых существуют реализованные алгоритмы
Содержание учебной дисциплины

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

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

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

  • неблокирующий ДЗ1
  • неблокирующий ДЗ2
  • неблокирующий ДЗ 3
  • неблокирующий ДЗ4
  • неблокирующий Коллоквиум
    формат сдачи контрольного мероприятия зависит от формата проведения занятий (для онлайн-занятий – возможно использование прокторинга)
Промежуточная аттестация

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

  • 2023/2024 учебный год 3 модуль
    O(ДЗ1 + ДЗ2) *0.3 + О(ДЗ3 + ДЗ4) * 0.3 + О(Коллоквиум) * 0.4
  • 2023/2024 учебный год 4 модуль
    0.15 * ДЗ 3 + 0.15 * ДЗ1 + 0.15 * ДЗ2 + 0.15 * ДЗ4 + 0.4 * Коллоквиум
Список литературы

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

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

  • Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. Introduction to Algorithms (3rd edition). – MIT Press, 2009. – 1292 pp.

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

  • Гринченков, Д. В., Математическая логика и теория алгоритмов для программистов : учебное пособие / Д. В. Гринченков, С. И. Потоцкий. — Москва : КноРус, 2017. — 206 с. — ISBN 978-5-406-05421-5. — URL: https://book.ru/book/919851 (дата обращения: 25.08.2023). — Текст : электронный.