Программирование на Python
Московский физико-технический институт (Национальный исследовательский университет)
Описание
Программа разработана с учетом требований ФГОС ВО по направлению подготовки 01.03.02 Прикладная математика и информатика, требований профессионального стандарта 06.001 Программист.
Целью реализации программы является формирование компетенций слушателей в области решения профессиональных задач по программированию с использованием языка Python, применения шаблонов проектирования на Python, работы с Python библиотеками, применения объектно-ориентированного и функционального программирования.
Слушатели должны овладеть следующими компетенциями:
- способность к написанию программного кода с использованием языков программирования, определения и манипулирования данными (ПК-1);
- способность применять фундаментальные знания, полученные в области математических и (или) естественных наук, и использовать их в профессиональной деятельности (ОПК-1).
В результате освоения программы слушатель должен:
знать:
- базовые сведения о языке, особенности организации кода на Python;
- стандартные структурами данных в Python;
- механизмы наследования, классы;
- особенности объектно-ориентированной модели в Python;
- процессы и потоки ОС;
- модульное тестирование и его преимущества, методику TDD, её особенностях и преимуществах, контрактное программирование;
- основные парадигмы и принципы ООП, терминологию ООП;
- виды паттернов проектирования, основные паттерны и задачи, которые они решают;
- паттерн Chain of responsibility, паттерн Abstract Factory;
- принципы функционирования современного интернета, основные протоколы в web-взаимодействия;
- причины необходимости сбора данных со сторонних сайтов;
- удобные способы получения данных;
- реляционные базы данных, нереляционные базы данных, инструменты Redis;
- архитектуру web-фреймворков, популярные web-фреймворки в Python, устройство view в Django, основы HTML и CSS;
- понятия аутентификации и авторизации;
- отличия Development и Production;
- базовые понятия математического анализа, базовые понятия линейной алгебры;
- понятия математической статистики;
- методы машинного обучения с учителем;
- методы машинного обучения без учителя;
- понятие нейронной сети, современные архитектуры нейронных сетей;
уметь:
- использовать базовые типы и конструкции языка;
- работать со стандартными структурами данных в Python, писать функции на Python, применять функциональные особенности языка, работать с файлами с помощью языка Python;
- применять механизмы наследования, создавать классы и работать с ними, обрабатывать исключения;
- искать и исправлять ошибки в программе на Python, тестировать программы на Python;
- писать многопоточный код на Python, писать асинхронный код на Python, работать с сетью, создать своё серверное сетевое приложение;
- пользоваться структурным программированием, использовать библиотеку unittest;
- создавать корректную иерархию классов, интерпретировать UML-диаграммы, выполнять рефакторинг существующего кода;
- создавать Декоратор класса, создавать адаптер для интерфейса, несовместимого с системой, реализовывать паттерн Наблюдатель;
- создавать цепочку обязанностей. создавать абстрактную фабрику, создавать обработчик YAML файла;
- работать с библиотекой requests;
- работать с регулярными выражениями из Python, выполнять сложный поиск и замену при помощи регулярных выражений;
- извлекать и изменять данные при помощи модуля Beautiful Soup, использовать API для получения данных со сторонних сайтов;
- создавать и изменять базы данных и таблицы в MySQL, получать данные из баз и таблиц в MySQL;
- создавать приложение на Django, работать с Django-шаблонизатором, работать с базой данных при помощи Django ORM;
- отправлять данные из браузера, валидировать данные на клиентской стороне, валидировать данные на серверной стороне, проводить аутентификацию и авторизацию при помощи Django;
- создавать чат-бота на базе Telegram, работать с системой Git, раскладывать проект на облачный хостинг Heroku;
- применять инструменты библиотеки NumPy, применять инструменты библиотеки SciPy, применять инструменты библиотеки Pandas для работы с данными;
- визуализировать данные при помощи инструментов Python, применить на практике инструменты Python для работы со статистическим анализом;
- применять на практике линейную регрессию, применять на практике кросс-валидацию, оценивать качества моделей, обучать на практике ансамблевые модели;
- применять на практике методы кластеризации, применять на практике методы понижения размерности. создавать рекомендательную сеть;
- реализовывать перцептрон, реализовывать свою нейронную сеть.
Программа профессиональной переподготовки предназначена для специалистов, имеющих высшее или среднее профессиональное образование, а также лиц, получающих высшее или среднее профессиональное образование.
Программа предусматривает изучение следующих модулей:
Модуль 1 «Погружение в Python»
Модуль 2 «ООП и паттерны проектирования в Python»
Модуль 3 «Создание Web-сервисов на Python»
Модуль 4 «Python для анализа данных»
По результатам промежуточной (итоговой) аттестации по модулям выдается удостоверение о повышении квалификации установленного образца.
Форма проведения итоговой аттестации: защита проекта.
Слушателям, успешно прошедшим итоговую аттестацию по дополнительной профессиональной программе профессиональной переподготовки, выдается диплом с присвоением квалификации «Программист на Python» установленного образца.
Часов в программе
Цель программы
Актуальность
В условиях широкого внедрения онлайн-сервисов, электронных услуг, развития цифровой экономики актуальной является проблема подготовки кадров, в том числе в области программирования на языке Python. Отечественные компании испытывают потребность в квалифицированных кадрах, способных решать прикладные задачи на языке программирования Python.
Язык программирования Python доступен для освоения лицами любого возраста и профессии. Он позволяет решать широкий круг практических задач: его можно использовать для анализа данных и машинного обучения, бэкенда, веб-разработки, системного администрирования, создания игр и т.д.
Входная диагностика 1 час
Итоговая аттестация 50 часов
Компетенции
Профессиональные
Способен к написанию программного кода с использованием языков программирования, определения и манипулирования данными
Знать синтаксис выбранного языка программирования, особенности программирования на этом языке, стандартные библиотеки языка программирования, методологии разработки программного обеспечения, методологии и технологии проектирования и использования баз данных, технологии программирования, особенности выбранной среды программирования и системы управления базами данных, компоненты программно-технических архитектур, существующие приложения и интерфейсы взаимодействия с ними
Уметь:Уметь применять выбранные языки программирования для написания программного кода, использовать выбранную среду программирования и средства системы управления базами данных. использовать возможности имеющейся технической и/или программной архитектуры
Владеть:Владеть инструментами языка программирования Python
Общепрофессиональные
Способен применять фундаментальные знания, полученные в области математических и (или) естественных наук, и использовать их в профессиональной деятельности
знать:
• базовые сведения о языке, особенности организации кода на Python;
• стандартные структурами данных в Python;
• механизмы наследования, классы;
• особенности объектно-ориентированной модели в Python;
• процессы и потоки ОС;
• модульное тестирование и его преимущества, методику TDD, её особенностях и преимуществах, контрактное программирование;
• основные парадигмы и принципы ООП, терминологию ООП;
• виды паттернов проектирования, основные паттерны и задачи, которые они решают;
• паттерн Chain of responsibility, паттерн Abstract Factory;
• принципы функционирования современного интернета, основные протоколы в web-взаимодействия;
• причины необходимости сбора данных со сторонних сайтов;
• удобные способы получения данных;
• реляционные базы данных, нереляционные базы данных, инструменты Redis;
• архитектуру web-фреймворков, популярные web-фреймворки в Python, устройство view в Django, основы HTML и CSS;
• понятия аутентификации и авторизации;
• отличия Development и Production;
• базовые понятия математического анализа, базовые понятия линейной алгебры;
• понятия математической статистики;
• методы машинного обучения с учителем;
• методы машинного обучения без учителя;
• понятие нейронной сети, современные архитектуры нейронных сетей
уметь:
• использовать базовые типы и конструкции языка;
• работать со стандартными структурами данных в Python, писать функции на Python, применять функциональные особенности языка, работать с файлами с помощью языка Python;
• применять механизмы наследования, создавать классы и работать с ними, обрабатывать исключения;
• искать и исправлять ошибки в программе на Python, тестировать программы на Python;
• писать многопоточный код на Python, писать асинхронный код на Python, работать с сетью, создать своё серверное сетевое приложение;
• пользоваться структурным программированием, использовать библиотеку unittest;
• создавать корректную иерархию классов, интерпретировать UML-диаграммы, выполнять рефакторинг существующего кода;
• создавать Декоратор класса, создавать адаптер для интерфейса, несовместимого с системой, реализовывать паттерн Наблюдатель;
• создавать цепочку обязанностей. создавать абстрактную фабрику, создавать обработчик YAML файла;
• работать с библиотекой requests;
• работать с регулярными выражениями из Python, выполнять сложный поиск и замену при помощи регулярных выражений;
• извлекать и изменять данные при помощи модуля Beautiful Soup, использовать API для получения данных со сторонних сайтов;
• создавать и изменять базы данных и таблицы в MySQL, получать данные из баз и таблиц в MySQL;
• создавать приложение на Django, работать с Django-шаблонизатором, работать с базой данных при помощи Django ORM;
• отправлять данные из браузера, валидировать данные на клиентской стороне, валидировать данные на серверной стороне, проводить аутентификацию и авторизацию при помощи Django;
• создавать чат-бота на базе Telegram, работать с системой Git, раскладывать проект на облачный хостинг Heroku;
• применять инструменты библиотеки NumPy, применять инструменты библиотеки SciPy, применять инструменты библиотеки Pandas для работы с данными;
• визуализировать данные при помощи инструментов Python, применить на практике инструменты Python для работы со статистическим анализом;
• применять на практике линейную регрессию, применять на практике кросс-валидацию, оценивать качества моделей, обучать на практике ансамблевые модели;
• применять на практике методы кластеризации, применять на практике методы понижения размерности. создавать рекомендательную сеть;
• реализовывать перцептрон, реализовывать свою нейронную сеть
Владеть навыками применения математического аппарата для программирования на языке Python
Требования
Нет
Образование
- Высшее образование
- Среднее профессиональное образование
Модули
свернутьПреподаватели

Кулиев
Руслан Султанович
Московский физико-технический институт (Национальный исследовательский университет)
Старший преподаватель кафедры информатики и вычислительной математики МФТИ
Профстандарт
Программист
06.001Ответственный за программу
+79127096478