«Разработка приложений на Python»

Концепция
Дать несколько популярных инструментальных областей, научить пользоваться !git/GitHub, а затем рассказывать о совместной разработке/тестировании/локализации/документировании в стиле LecturesCMC/LinuxApplicationDevelopment2012

Примерный план:

  1. Использование git/!GitHub, обязательная регистрация

  2. Инструмент: GUI (PyQt?)

    • создание и публикация репозитория с решением Д/З
  3. Инструмент: Web (WebPy?)

    • создание и публикация репозитория с решением Д/З
  4. Инструмент: Math (Sage?)
    • создание и публикация репозитория с решением Д/З
  5. Инструмент: Game (PyGame)

    • создание и публикация репозитория с решением Д/З
  6. (возможно) Инструмент: Extending and Embedding the Python Interpreter¶

    • создание и публикация репозитория с решением Д/З
  7. Принципы совместной разработки (включая teamlead), примеры учебных проектов; контроль качества кода (pylint) как требование
    • должны быть готовы учебные проектные планы (достаточно простые, чтобы быть реализованными!)

    • объединение участников в team-ы, выбор проектного плана, публикация пустого team-репозитория (с несколькими коммитами каждого из team)
  8. Принципы объектного проектирования
    • подтверждение проектных планом team-ами
    • начало программирования собственно проекта
  9. Тестирование
    • продолжение реализации проекта
    • оснащение проекта тестами
  10. Документирование
    • продолжение реализации проекта
    • оснащение проекта технической документацией
  11. Локализация и интернационализация
    • продолжение реализации проекта
    • оснащение проекта переводом на русский
  12. Пакетирование и деплоймент
    • окончание программирования проекта
    • создание финальной версии (setuptools?)