Курс «Компьютерные технологии на базе языка программирования Python» (спец.группа)

Преподаватель: Конев Александр Евгеньевич

Отчетность: зачет

Аннотация

За последние годы язык программирования Python стал одним из самых популярных в научной среде. Его динамическая природа позволяет быстро разрабатывать рабочие прототипы программ, а значит и оперативно проверять идеи ученого, а наличие огромного количества сторонник библиотек покрывает потребности, возникающих в научной деятельности и не только.

В осеннем семестре данного курса даётся введение в Python и его особенности в сравнении с другими языками программирования. Помимо возможностей самого Python разбираются ключевые библиотеки для произведения научных вычислений: NumPy, SciPy, Matplotlib, pandas и др. На протяжении семестра студенты выполняют домашние задания на стыке математического моделирования и программирования, что позволяет получить практические навыки программирования на Python и использования сторонних библиотек.

В весеннем семестре даётся более глубокое понимание о Python. Также разбирается ряд дополнительных библиотек, в том числе и для решения задач машинного обучения и компьютерного зрения, и инструменты для разработки приложений с графическим пользовательским интерфейсом. Для подготовки студентов к публикационной деятельности даётся введение в систему компьютерной верстки LaTeX. На практических занятиях в весеннем семестре главный акцент ставится на курсовой работе, которую студенты защищают в конце семестра.

Литература

  1. А. Мартелли, А. Рейвенскрофт, С. Холден. «Python. Справочник. Полное описание языка».
  2. Д. Бизли, Б.К. Джонс. «Python. Книга рецептов».
  3. Задорожный С.С., Фадеев Е.П. «Объектно-ориентированное программирование на языке Python»
  4. Шипило Д.Е., Коновко А.А., Лукашёв А.А., Панов Н.А. «Язык программирования Python. Семестр 3.»
  5. Учебные материалы курса
  6. Официальная документация Python (английский язык)
  7. Львовский С.М. «Набор и верстка в системе LaTeX»

Семестр II-3

Программа

  1. Введение в Python: установка, способы работы, интерактивная подсказка, скрипты и jupyter блокноты. Синтаксические особенности языка Python.
  2. Особенности языка Python: интерпретируемость и динамическая типизация. Иерархия типов объектов: числа, контейнеры и прочее. Изменяемые и неизменяемый типы.
  3. Сторонние библиотеки и способы их установки: пакетные менеджеры PyPI и conda.
  4. Библиотека NumPy: массивы чисел и их устройство, отличие от встроенных коллекций. Векторизация вычислений, индексация массивов и взятие срезов.
  5. Процедурное программирование в Python. Функции как объекты. Позиционные и именованные аргументы.
  6. Работа с файловой системой, чтение и запись. Модули sys, os, glob и pathlib.
  7. Словари. JSON.
  8. Решение систем (не)линейных уравнений, задач оптимизации, задач дифференциального исчислений и др. методами библиотеки SciPy. Визуализация данных и построение графиков средствами библиотеки Matplotlib. Обзор альтернативных графических библиотек.
  9. Скрипты, модули и пакеты в Python. Интерфейс командной строки и модуль argparse.
  10. Библиотека Pandas. Таблицы данных и их эффективная индексация. Чтение и запись с диска. Формат CSV.

Теоретический минимум по программе семестра

Семестр II-4

Программа

  1. Списковые включения, итераторы, генераторы, декораторы.
  2. Элементы объектно-ориентированного программирования в Python: пользовательские типы данных.
  3. Ошибки и исключения в Python. Способы их обработки и стратегии контроля ошибок.
  4. Обзор средства для разработки графического пользовательского интерфейса. Библиотека PySide.
  5. Основы компьютерного зрения. Представления изображений в компьютере. Библиотека openCV, фильтрация изображения и классические подходы к обнаружению объектов.
  6. Основы машинного обучения. Классические методы машинного обучения. Обзор библиотеки scikit-learn. Нейронные сети. Обзор библиотеки torch.
  7. Введение в систему компьютерной верстки LaTeX.

Теоретический минимум по программе семестра