Данный курс предназначен для студентов естественно-научных направлений, которые хотят заниматься научными вычислениями и анализом данных.
Курс состоит из 15 интерактивных лекций и 15 семинаров.
На лекциях разбирается тема и вместе с учащимися решаются простые упражнения на понимание.
Полученные знания закрепляются на семинарах, где предлагается большое число задач для самостоятельного решения, а также материалы для углубленного изучения темы. Задачи отличаются практической направленностью и разбирают конкретные проблемы, которые могут возникнуть при анализе тех или иных данных.
Помимо этого, после каждого занятия студентам предлагаются домашние работы для дополнительной отработки умений.
Данные для большинства современных естественно-научных задач могут занимать терабайты дискового пространства, а для их обработки нужно большое количество оперативной памяти или GPU. Это требует навыков работы с серверами, большая часть которых функционируют на Linux. Поэтому в курсе отводится время на работу с командной строкой и работа с ней при помощи Bash. В результате этого прошедшие курс получают практические навыки работы на сервере и в операционной системе Linux.
Ожидаемые результаты: получение навыков программирования на языке Python, навыки написания скриптов и составления интерактивных отчетов на нем.
Темы, изучаемые в рамках курса:
Введение в Python
1. Обзор Python как языка для научных исследований. Jupyter-Notebook. Простейшие типы данных и действия с ними. Что можно сделать с минимальными знаниями языка.
2. Форматирование выдачи - f-strings. Обращение f-strings - модуль parse. Условные операторы, циклы. Примеры из реальной жизни.
3. Коллекции: списки, множества, словари, кортежи. Модуль collections. Когда и зачем использовать тот или иной тип данных. Автоматизируем рутинные задачи. Случайные числа в Python. Делаем простую симуляцию.
4. Работа с текстовыми файлами. Json. Бинарные файлы. Модуль pathlib. Примеры форматов файлов из реальной науки того, как осуществлять работу с ними. Пишем конвертеры форматов.
Linux, командная строка и работа на сервере
5. Введение в Linux. Что такое сервер. SSH. Подключение к серверу, основы работы в shell. Базовые команды. scp. Работа со сжатыми файлами. Права.
6. Sudo. Редактирование файлов на удаленном сервере. Grep. Пайплайны. Egrep. Sed. Исполняемые файлы и как запустить свой скрипт на сервере. Основы работы на кластере. Очередь.
7. Работа со сторонними CLI-программами в bash. Как запустить скрипт на сервере так, чтобы он продолжал работать после выхода с сервера - nohup, tmux, etc. Как (почти) не зная git, использовать пакеты и программы, размещенные только на Github. Переменные в bash. Написание простых скриптов на bash и когда это нужно, а когда лучше обратиться к Python. Файлы настроек.
8. Export. Переменные окружения. Простые способы запустить параллельные вычисления в bash. Проброс портов. Как запустить jupyter на сервере и работать с ним с локального компьютера. Просмотр занятых ресурсов и запущенных процессов на сервере.
Необходимый инструментарий в Python
9. Pip. Conda. Функции в Python и принцип DRY. Исключения. Типичные ошибки работы с исключениями. With-конструкция. sys. requests. json. Работа с информацией из онлайн баз данных.
10. Введение в ООП. Зачем оно и как облегчает работу с научными данными. dataclasses.
11. Итераторы. itertools. Генераторы и их необходимость при работе с большими данными. argparse. tqdm. typer.
Анализ данных в Python
12. Matplotlib. Numpy и почему это быстро. Scipy. Базовый анализ данных. Культура кода в научных исследованиях. Как сделать свой код воспроизводимым. 13. Pandas. Seaborn. Plotly. Обработка больших табличных данных. Агрегация данных, создание сводных таблиц. Создание интерактивных визуализаций для научных статей.
14. Statsmodels. Статистика. Базовые тесты и как их считать. Необходимость визуализации данных для правильной трактовки результатов. Корреляция и ее аналоги.
15. Как ускорить ваши вычисления. Subprocess. Concurrent.futures. GIL. Сython. Numba. prefect. Pytorch как GPU-ускорение numpy.
Занятия проводятся на Факультете Биоинженерии и биоинформатики.
В программе курса 15 занятий (лекция + практикум) по четвергам с 15:35 до 18:55.
Старт курса: 17.02.2022
Лекция проводится сразу для всех слушателей. Семинары проводятся отдельно по группам.
Telegram
Страница курса на платформе Teach-in
В настоящий момент набор на курс 2022 года закрыт.