Данный курс предназначен для студентов естественно-научных направлений, которые хотят заниматься научными вычислениями и анализом данных.
Курс состоит из 15 интерактивных лекций и 15 семинаров.
На лекциях разбирается тема и вместе с учащимися решаются простые упражнения на понимание.
Полученные знания закрепляются на семинарах, где предлагается большое число задач для самостоятельного решения, а также материалы для углубленного изучения темы. Задачи отличаются практической направленностью и разбирают конкретные проблемы, которые могут возникнуть при анализе тех или иных данных.
Помимо этого, после каждого занятия студентам предлагаются домашние работы для дополнительной отработки умений.
Данные для большинства современных естественно-научных задач могут занимать терабайты дискового пространства, а для их обработки нужно большое количество оперативной памяти или GPU. Это требует навыков работы с серверами, большая часть которых функционируют на Linux. Поэтому в курсе отводится время на работу с командной строкой и работа с ней при помощи Bash. В результате этого прошедшие курс получают практические навыки работы на сервере и в операционной системе Linux.
Ожидаемые результаты: получение навыков программирования на языке Python, навыки написания скриптов и составления интерактивных отчетов на нем.
Список всех тем лекций
Лекция 1. Вводная лекция.
Вводное слово к курсу
Что такое Python
Работа в Jupyter и Google Colab
Что есть в языке программирования?
Объектная природа сущностей в Python
Базовый ввод и вывод
Числа с плавающей запятой
Операторы присваивания
Логический тип данных
Строки
Сравнение
Вывод информации
Лекция 2. Форматирование строк. Ветвление. Циклы.
Форматирование строк
Parse
Условные операторы и циклы
Циклы
Лекция 3. Коллекции. Модуль collections. Случайные числа в Python.
Коллекции
Список
Методы строк, связанные со списком
Кортеж
Словари
Множества
Модуль collections
Случайные числа в Python
Лекция 4. Работа с текстовыми файлами. JSON. Бинарные файлы. Модуль Pathlib.
Работа с файлами
Открытие файла
Чтение из файла
Запись в файл
Бинарные файлы.
Форматы файлов и библиотеки для работы с ними
JSON
Лекция 5. Знакомство с Linux.
Почему именно Linux
Особенности этого блокнота
Подключение к серверу
Команды и их аргументы
Абсолютный путь
cd
echo
remove
mk dir
Права
Загрузка данных из интернета
Качаем данные с сервера и на сервер
Практическое занятие к лекции № 5. Знакомство с Linux.
(маски файлов)
(команда ls)
(команда ls —help)
Задание 4
Задание 5
Задание 6
Задание 7
Задание 8
Лекция 6. Работа с архивами. Стандартные потоки и их перенаправление.
Работа с архивами
Загружаем данные с сервера на сервер
Стандартные потоки и их перенаправление
Редактирование файлов на удалённом сервере
Grep
Пайплайны
Еgrep
Основы работы на кластере
Ответы на вопросы
Лекция 7. Системы контроля версий на примере Git.
sed
echo + CLI
Как зайти на сервер, запустить программу, выйти с сервера, чтобы ничего не прервалось
Система контроля версий (понятие и терминология)
Сценарий работы
Скриптинг на bash
Файлы настроек
Лекция 8. Что такое Linux и как он работает.
Описание ОС Linux
Файловая система
LD_LIBRARY_PATH
Запуск параллельных вычислений
Порты
Лекция 9. Функции. Вычисления. Полезные модули.
Задача (на вход даётся два массива из чисел, найти разницу между максимумом первого и второго массива)
DRY
Функция
Задачи (запись функции)
Функция внутри функции
Что может и не может менять функция
Правила работы с функциями
Ещё примеры кода
Аргументы по умолчанию
Рекурсия
Исключения
Несколько часто используемых модулей
Лекция 10. Введение в объектно-ориентированное программирование. Зачем оно и как облегчает работу с научными данными.
Классы
Динамические атрибуты
Наследование
Getattr и setattr
Лекция 11. Функции и их аргументы. Итераторы. Генераторы.
Аргументы по умолчанию
Списочные сокращения
Итераторы
Последовательности и итерируемые объекты
Генераторы
Функция генератора
Полезные встроенные генераторы в Python
Модуль itertools
fqdm
Использование элементов командной строки
Лекция 12. Matplotlib NumPy и почему это быстро. Базовый анализ данных.
Библиотека NumPy
Алгебраические операции
Агрегирующие операции
Логические операции
Индексация и срезы
Библиотека MPL
Как визуализировать данные
Лекция 13. Знакомство с Pandas. Группировки и построение простых графиков Seaborn. Plotly.