Разработка прикладных программ на языке программирования Python
Лекторы: Георгий Курячий и Павел Сутырин
Время и место проведения: По пятницам, 18:00, аудитория П-6. Первое занятие 20 февраля.
Лицам, не имеющим пропуск на факультет ВМК МГУ, рекомендуется на первую лекцию принести одну матовую фотографию 3×4 и паспортные данные для оформления пропуска.
Для участия в спецкурсе рекомендуется добавиться в список рассылки (необязательно иметь гуглоаккаунт, достаточно написать письмо на специальный адрес). Все действия участников (выбор задач, команд, работа с кодом) будут атрибутироваться строго по email, логическая связь которого с зачеткой конкретного студента будет устанавливаться на экзамене. Рекомендуется использовать надежный сервис email, желательно с настроенной двухфакторной аутентификацией.
Материалы
№ |
Тема |
Лектор |
Запись |
0 |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
5 |
|||
6 |
|||
7 |
|||
8 |
|||
9 |
|||
10 |
|||
11 |
Экзамен
Экзамен заключается в защите подготовленного и оформленного учебного проекта. Командная разработка проектов приветствуется. В качестве учебного проекта может выступать собственная разработка.
Для учащихся последних курсов (специалист-5 и бакалавр-4) экзамен проставляется по результатам решения домашних заданий
Для допуска на экзамен необходимо продемонстрировать хранилище выполненных учебных заданий
- О времени и месте проведения экзамена будет объявлено дополнительно.
Аннотация
- Название: Разработка прикладных программ на языке программирования Python
- Title: Application development in Python
Язык программирования Python — объектно-ориентированный ЯП, сочетающий в себе простоту начального освоения, наличие современных конструкций и приёмов программирования, богатую инструментально-прикладную поддержку и огромное поле практического применения во всех отраслях знания, включая естественные и гуманитарные науки.
Цель данного курса — сформировать у слушателей комплекс знаний, умений и навыков, необходимых для самостоятельной разработки произвольного прикладного программного обеспечения на языке программирования Python. Для этого необходимо решить три задачи:
- познакомить с несколькими различными инструментальными библиотеками для Python и способами разработки ПО с их помощью;
- дать возможность ориентироваться в информационном пространстве инструментальных средств Python, выбирать и использовать инструменты в соответствие с решаемой задачей;
- дать представление о жизненном цикле разработки ПО и его особенностях в Python.
В процессе изучения предполагается самостоятельная практическая работа.
По окончанию курса планируется защита учебной работы, выполенной индивидуально или в составе группы (в этом случае оценивается вклад).
Требования к уровню знаний слушателей: знание ЯП Python и навыки программирования на этом языке в объёме курса «Язык программирования Python» (ВМК МГУ, осень 2014 г.)
Ссылки
Тематический план курса
Примерный план:
- Использование git/Github, обязательная регистрация
Инструмент: GUI (PyQt ?)
- создание и публикация репозитория с решением Д/З
Инструмент: Web (WebPy ?)
- создание и публикация репозитория с решением Д/З
Инструмент: Математическое окружение (Sage ?)
- создание и публикация репозитория с решением Д/З
Инструмент: Мультимедиа (PyGame)
- создание и публикация репозитория с решением Д/З
Инструмент: Системное программирование
- создание и публикация репозитория с решением Д/З
- Принципы совместной разработки (включая teamlead), примеры учебных проектов; контроль качества кода (pylint) как требование
должны быть готовы учебные проектные планы (достаточно простые, чтобы быть реализованными!)
- объединение участников в team-ы, выбор проектного плана, публикация пустого team-репозитория (с несколькими коммитами каждого из team)
- консультации team по выбранным инструментальным направлениям
- Принципы объектного проектирования
- подтверждение проектных планом team-ами
- начало программирования собственно проекта
- консультации по инструментальным направлениям
- Тестирование
- продолжение реализации проекта
- оснащение проекта тестами
- консультации team по выбранным инструментальным направлениям
- Документирование
- продолжение реализации проекта
- оснащение проекта технической документацией
- консультации team по выбранным инструментальным направлениям
- Локализация и интернационализация
- продолжение реализации проекта
- оснащение проекта переводом на русский
- консультации team по выбранным инструментальным направлениям
- Пакетирование и деплоймент
- окончание программирования проекта
- создание финальной версии (setuptools?)