Новости онлайн-курсов Mail.Ru Group: «Программирование на Python»

в 14:50, , рубрики: coursera, mail.ru, python, Блог компании Mail.Ru Group, курс, Программирование, разработка

Новости онлайн-курсов Mail.Ru Group: «Программирование на Python» - 1

Вчера мы запустили на Coursera новый онлайн-курс «Программирование на Python», чтобы научить всех желающих программировать на этом языке. Курс подойдет для всех, кто уже имеет какой-то опыт программирования и хочет изучить Python. Курс читают разработчики, применяющие Python в проектах, которыми ежедневно пользуются миллионы людей. Ключевая особенность курса — он покрывает все необходимые для ежедневной работы темы.

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

Чтобы справиться с нагрузкой, понадобится от четырех до шести часов свободного времени в неделю. Около двух часов будет уходить на просмотр видеолекций, остальное — на выполнение тестов и домашних заданий. Будьте готовы уделить курсу и больше времени, если хотите получить максимальный результат.

Курс состоит из следующих частей:

  1. Введение в Python
  2. Структуры данных и функции
  3. Объектно ориентированное программирование
  4. Углубленный Python
  5. Многопоточное и асинхронное программирование
  6. Итоговый проект

Лекционные материалы и задания без оценки доступны бесплатно, для оцениваемых заданий и получения сертификата необходимо приобрести курс.

Авторы курса

Новости онлайн-курсов Mail.Ru Group: «Программирование на Python» - 2 Александр Емелин

Разработчик Python, Go. Сторонник open-source. Автор достаточно крупного open-source проекта https://github.com/centrifugal/centrifugo

Новости онлайн-курсов Mail.Ru Group: «Программирование на Python» - 3 Александр Жебрак

Программист, преподает курс по Python в Технопарке МГТУ и Mail.Ru Group. Занимается машинным обучением, 4,5 года работал в Mail.Ru в отделе внутренней разработки, руководил разработкой интранета. Сейчас занимается проектами в области анализа биомедицинских данных в InsilicoMedicine.

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

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

Новости онлайн-курсов Mail.Ru Group: «Программирование на Python» - 4 Дмитрий Швеенков

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

Решил взяться за создание курса, чтобы попробовать новый для себя формат задач.

Содержание курса

Курс состоит из шести модулей — «недель», в ходе которых слушатели изучают конкретную тему или выполняют проект. Вначале даются ключевые знания о структуре и синтаксисе языка, и чем дальше, тем больше вы будете осваивать тонкости Python и возможности его практического применения.

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

1. Введение в Python

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

Задачи обучения

  • Развернуть окружение для программирования на Python
  • Узнать базовые сведения о языке
  • Освоить базовые типы и конструкции языка
  • Узнать об организации кода на Python
  • Получить начальные сведения о внутреннем устройстве интерпретатора Python

Темы недели

  • Знакомство с курсом
  • Первые шаги
  • Базовые типы и конструкции
  • Организация кода и окружение

Задания по программированию

  • Сумма цифр в строке
  • Рисуем лестницу
  • Корни квадратного уравнения

2. Структуры данных и функции

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

Также вторая неделя касается функций и функционального программирования. Еще участники разберут работу с файлами, узнают, что такое декораторы и генераторы, научатся читать документацию по этим разделам.

Задачи обучения

  • Научиться работать со стандартными структурами данных в Python
  • Научиться писать функции на Python
  • Применять функциональные особенности языка
  • Научиться работать с файлами с помощью языка Python

Темы недели

  • Коллекции (списки, кортежи, словари, множества)
  • Функции (декораторы, генераторы)

Задания по программированию

  • Key-value хранилище
  • Декоратор to_json

3. Объектно ориентированное программирование

ООП — главный подход к построению сложных проектов на языке, который просто необходимо знать. Раздел состоит из трех уроков, два из них посвящены теории, один — работе с ошибками.

В теоретической части студенты узнают, что такое классы, экземпляры и методы, научатся простому и множественному наследованию, name mangling. Участники курса разберут работу с исключениями, тестирование и отладку.

Задачи обучения

  • Научиться создавать классы и работать с ними
  • Научиться обрабатывать исключения
  • Научиться работать с файлами с помощью языка Python
  • Знать механизмы наследования и уметь их применять

Темы недели

  • Классы и объекты
  • Наследование
  • Работа с ошибками

Задания по программированию

  • Реализация простого класса для чтения из файла
  • Классы и наследование

4. Углубленный Python

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

Задачи обучения

  • Изучить углубленные особенности объектно ориентированной модели в Python
  • Научиться искать и исправлять ошибки в программе на Python
  • Освоить тестирование программ на Python

Темы недели

  • Особые методы классов
  • Механизм работы классов
  • Отладка и тестирование

Задания по программированию

  • Файл с магическими методами
  • Дескриптор с комиссией

5. Многопоточное и асинхронное программирование

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

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

Задачи обучения

  • Научиться писать многопоточный код на Python
  • Научиться писать асинхронный код на Python
  • Научиться работать с сетью
  • Получить знания о процессах и потоках ОС

Темы недели

  • Процессы и потоки
  • Работа с сетью, сокеты
  • Асинхронное программирование

Задания по программированию

  • Клиент для отправки метрик

6. Итоговый проект

На этой неделе вы сможете воспользоваться всеми накопленными знаниями для решения практической задачи.

Задачи обучения

  • Создать свое серверное сетевое приложение

Задания по программированию

  • Сервер для приема метрик

Постановка задачи

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

Как обычно, вам необходимо разработать программу в одном файле-модуле, который вы загрузите на проверку обычным способом. Сервер должен соответствовать протоколу, который был описан в задании к предыдущей неделе. Он должен уметь принимать от клиентов команды put и get, разбирать их и формировать ответ согласно протоколу. По запросу put требуется сохранять метрики в структурах данных в памяти процесса. По запросу get сервер обязан отдавать данные в правильной последовательности.

На верхнем уровне вашего модуля должна быть объявлена функция run_server(host, port) — она принимает адрес и порт, на которых должен быть запущен сервер.

Для проверки правильности решения мы воспользуемся своей реализацией клиента и будем отправлять на ваш сервер put и get запросы, ожидая в ответ правильные данные от сервера (согласно объявленному протоколу). Все запросы будут выполняться с таймаутом — сервер должен отвечать за приемлемое время.

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

Результат курса

Участники создадут свой собственный проект, написав 3—5 тысяч строк кода и применив технологии курса. Мы не ограничиваем стек технологий, чтобы студенты могли придумать любой интересный проект и воплотить его в жизнь. Результатом работы станут не только десктопные приложения, но и серверные части web-сайтов.

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

Кроме того, лучших выпускников мы рассмотрим на подходящую вакансию в Mail.Ru Group.

Регистрация на курс

Регистрируйтесь по ссылке!

Уже знаете Python? Изучите другие курсы от Mail.Ru Group!

Coursera — одна из крупнейших платформ для создания и прохождения онлайн-курсов с 25 миллионами пользователей и более чем 2000 онлайн-курсов по техническим и гуманитарным дисциплинам от ведущих университетов и компаний. Прохождение курсов на платформе подразумевает не только просмотр лекций и выполнение заданий, но и общение с другими студентами и преподавателями на форумах курсов.

Автор: Olga_ol

Источник

Поделиться

* - обязательные к заполнению поля