Skip to content

valentinasaldaeva/masters-course-2023-data-software-tools

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation

Название дисциплины

Инструменты разработки data-driven решений

Авторский состав

Алексей Комиссаров, Данил Зилов, Полина Кучур

Описание курса

Этот курс представляет собой введение в инструменты и методы, которые необходимы для эффективного анализа данных и программирования. Студенты изучат различные темы, включая работу с интерактивными ноутбуками, управление программным обеспечением и пакетами, использование систем контроля версий, создание и использование API, планирование задач, использование GPU для вычислений и создание Docker контейнеров.

Начиная с основ анализа данных в Google Colab и Hugging Face, курс вводит студентов в мир Linux и управления программным обеспечением. Студенты также научатся использовать Git для контроля версий и Jupyter Notebooks для разработки исследовательских проектов. Продвинутые темы включают создание и использование API, планирование задач с использованием Slurm и других инструментов, а также использование GPU для ускорения вычислений.

В заключение курса студенты изучат основы работы с Docker и Docker Compose, чтобы создавать и управлять контейнерами для развертывания приложений.

Этот курс будет полезен для студентов, которые хотят развивать свои навыки в области анализа данных, разработки программного обеспечения и облачных вычислений. С полученными навыками они смогут эффективно решать задачи в современной IT-индустрии.

Пререквизиты

Несмотря на то, что курс базовый и не требует предварительных знаний. Прежде чем приступить к изучению этого курса, студентам рекомендуется иметь следующие знания и навыки:

Основы программирования: Студенты должны знать основы программирования, включая понимание переменных, циклов, условных операторов и функций. Знание Python или другого высокоуровневого языка программирования будет полезно.

Работа с данными: Возможность работы с данными, включая чтение, запись и базовый анализ данных, будет очень полезной.

Основы работы с компьютером: Студенты должны быть знакомы с основами работы на компьютере, включая использование операционной системы, установку программного обеспечения и основное понимание файловых систем.

Основные знания работы с терминалом или командной строкой также будут полезны, но не обязательны. В ходе курса студенты получат более глубокие навыки в этих областях.

Темы

  1. Анализ данных в ноутбуках на примере Google Colab и Hugging Face: Обучение основам работы с интерактивными ноутбуками для анализа данных с использованием Google Colab и примеров из Hugging Face.

  2. Базовый Linux для анализа данных: Основы работы с Linux и его инструментами для работы с данными.

  3. Установка и настройка программ. Conda. Базовый git: Обучение установке и настройке программного обеспечения, управлению пакетами с помощью Conda и основам системы контроля версий Git.

  4. Jupyter Notebooks, продвинутый git. Github и Gitlab: Погружение в работу с Jupyter Notebooks, продвинутые возможности Git и использование платформ для хранения кода Github и Gitlab.

  5. Практический подход к созданию своего и использованию стороннего API: Развитие навыков разработки собственного API и использования API сторонних сервисов.

  6. Планировщики задач. Slurm. Базовый bash для slurm. Инструменты для создания пайплайнов. Snakemake, luigi и другие: Изучение планировщиков задач, особенностей работы со Slurm, основ bash для работы со Slurm и инструментов для создания пайплайнов, таких как Snakemake и Luigi.

  7. Использование GPU для вычислений. Использование GPU на кластере: Изучение особенностей использования GPU для вычислений, в том числе на кластерах.

  8. Введение в docker и docker compose: Основы работы с Docker и Docker Compose, инструментами для создания и управления контейнерами для развертывания приложений.

Разделы

  1. Анализ данных в ноутбуках на примере Google Colab и Hugging Face:

    • Введение в интерактивные ноутбуки.
    • Работа с Google Colab: создание, сохранение и загрузка ноутбуков.
    • Использование Hugging Face для изучения различных наборов данных.
    • Примеры анализа данных в ноутбуках.
  2. Базовый Linux для анализа данных:

    • Введение в операционную систему Linux.
    • Базовые команды Linux.
    • Работа с файловой системой Linux.
    • Использование Linux для анализа данных.
  3. Установка и настройка программ. Conda. Базовый git:

    • Введение в установку программного обеспечения.
    • Работа с Conda для управления пакетами.
    • Введение в систему контроля версий Git.
    • Основы работы с Git: клонирование репозитория, добавление файлов, коммиты.
  4. Jupyter Notebooks, продвинутый git. Github и Gitlab:

    • Работа с Jupyter Notebooks: создание, сохранение, загрузка ноутбуков.
    • Продвинутые возможности Git: ветвление, слияние, решение конфликтов.
    • Использование Github и Gitlab для хранения и совместной работы над кодом.
  5. Практический подход к созданию своего и использованию стороннего API:

    • Введение в API и их использование.
    • Создание собственного API.
    • Использование API сторонних сервисов.
    • Примеры использования API в реальных проектах.
  6. Планировщики задач. Slurm. Базовый bash для slurm. Инструменты для создания пайплайнов. Snakemake, luigi и другие:

    • Введение в планировщики задач.
    • Работа со Slurm.
    • Основы bash для работы со Slurm.
    • Инструменты для создания пайплайнов: Snakemake, Luigi и другие.
  7. Использование GPU для вычислений. Использование GPU на кластере:

    • Введение в использование GPU для вычислений.
    • Использование GPU на локальной машине.
    • Использование GPU на кластере.
    • Оптимизация кода для работы с GPU.
  8. Введение в Docker и Docker Compose:

    • Введение в Docker и контейнеризацию.
    • Создание и управление Docker контейнерами.
    • Введение в Docker Compose для управления множеством контейнеров.
    • Создание и управление проектами с использованием Docker Compose.

Источники

В качестве основных источников информации и материалов для курса можно использовать следующие ресурсы:

  1. Google Colab и Jupyter Notebooks

  2. Hugging Face

  3. Linux и Bash

  4. Установка программ и Conda

  5. Git, Github и Gitlab

  6. APIs

  7. Планировщики задач и инструменты для создания пайплайнов

  8. GPU Programming

  9. Docker и Docker Compose

Также может быть полезно использовать онлайн-курсы, такие как Coursera, Udemy, Khan Academy и Edx, для дополнительных материалов по темам, связанным с курсом.

Оценочные средства

В рамках курса предполагается индивидуальное выполнение 8 домашних работ. Максимальный бал за каждую работу 10 баллов. За просрочку здачи задания начисляется штраф 3 балла от полученных баллов за каждую неделю просрочки.

Каждая домашняя работа в виде теста или минипроекта должна быть сдана в следующую неделю за прослушиванием соответствующей лекции (за исключением последней недели). Во второй части курса сдача, peer-review и проверка работы осуществляется через бота в телеграме.

  1. Задание 1. TBA
  2. Задание 2. TBA
  3. Задание 3. TBA
  4. Задание 4. TBA
  5. Задание 5. TBA
  6. Задание 6. TBA
  7. Задание 7. TBA
  8. Задание 8. TBA

Описание технологии проведения итогового экзамена / задания / зачета

Экзамен или финальный зачет в виде теста. Оценка состоит из двух часте 80% из практических заданий, 8 заданий по 10 баллов, 20% экзамен в виде теста с максимальными 20 баллами. Зачёт/не зачёт – зачёт от 60 баллов. Оценка (A-F система) A – 90-100 (отлично) B – 84-89 (хорошо) C – 75-83 (хорошо) D – 67-74 (удовлетворительно) E – 60-66 (удовлетворительно)

Результаты обучения

После успешного прохождения курса студенты смогут:

  1. Использовать интерактивные ноутбуки, такие как Google Colab, для анализа данных и изучения наборов данных Hugging Face.
  2. Использовать базовые команды Linux для анализа данных и управления файловой системой.
  3. Устанавливать и настраивать программное обеспечение, управлять пакетами с использованием Conda и эффективно использовать систему контроля версий Git.
  4. Работать с Jupyter Notebooks, использовать продвинутые возможности Git и управлять своими репозиториями кода на Github и Gitlab.
  5. Создавать собственные API и эффективно использовать API сторонних сервисов.
  6. Использовать планировщики задач, такие как Slurm, писать скрипты на bash для Slurm и использовать инструменты для создания пайплайнов, такие как Snakemake и Luigi.
  7. Эффективно использовать GPU для вычислений, в том числе на кластерах, для ускорения обработки данных.
  8. Создавать и управлять Docker контейнерами с помощью Docker и Docker Compose.

Полученные навыки позволят студентам успешно справляться с задачами в области анализа данных, разработки и использования программного обеспечения, что является ценным активом в современной IT-индустрии.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published