Страница курса 2011/2012 года находится на странице нынешнего 3-го курса 2009/5/Python.
Python
Факультатив проходит по субботам 2-й парой (в 10:55).
У курса есть список рассылки.
Осенний семестр
- было совместно с занятием 6.
Полезные мелочи про mercurial; все способы передачи параметров в функцию в пиотне.
Обзор самого общеприменимого из стандартной библиотеки питона.
Весенний семестр
Разогрев мозгов: немного нового про объектную модель и пространства имён.
Конструкция with. Контейнеры: генераторы, итераторы, протоколы контейнеров.
Объектная модель питона: наследование; staticmethod, classmethod; множественное наследование; super – Саша Мартынов.
Работа со строками: регулярные выражения; str и repr – Ксюша Яшина.
Библиотеки для работы со структурами: biopython (Bio.PDB), python-scientific, python-openbabel. Библиотеки для филогении: dendropy, biopython (Bio.Phy) – Илья Курочкин.
Линейная алгебра: numpy; для чего нужна линейная алгебра – Маша Трегубова
Работа с сетью: сокеты; необходимые представления о протоколах IP, TCP, DNS (или IPv6, TCPv6, DNS) – Вова Зырин.
Параллельное программирование в питоне – Ваня Русинов.
Библиотеки для работы с выравниваниями: allpy, biopython – Ира Поверенная.
Генетические алгоритмы – Вика Смирнова
Нейросети – Оля Золотарёва
Технологии программирования – Руслан Айдарханов
Список тем:
Знаком помечены темы, про которые есть желающие послушать, но ещё нет желающих рассказать
- юридические / идеологические вопросы: информационное право, лицензии; широкоизвестные лицензии (GPL-2, GPL-3, BSD-(2,3,4), MIT; можно упомянуть оффтопиком про CC); как применять лицензию к своей программе
как делать в mercurial историю проекта читаемой: делая часть истории изменяемой (пока вы не поделились ей с остальными) – mercurial queues; отодвигая часть изменений, чтобы закоммитить другие – attic или shelve; изменяя порядок коммитов или пересаживая их с одной ветки на другую – rebase, transplant; как в одном репозитории хранить несколько ветвей развития одного проекта (и не запутаться в головах) – именованные ветки или закладки; традиции работы с mercurial
- системы помощи в создании документации к большому проекту (автоматически, полуавтоматически или даже совсем вручную): sphinx или epydoc или doxygen; reStructuredText
- альтернативные реализации интерпретатора питона, их дополнительные возможности (примеры), состояние реализации и пригодность к использованию (pypy, jython, iron python, unladen swallow, stackless python)
следующая версия языка – python 3: что нового хорошего, что плохого, когда им стоит и когда им не стоит пользоваться
- способы ускорения программ без изменения кода: psyco; альтернативные реализации интерпретатора; протокол slots
- способ ускорения кусков программ: путём переписывания на близко родственный питону компилируемый язык pyrex
- взаимодействие с другими языками (java, C)
- как делать программы/модули/пакеты, которые легко устанавливать; центральный репозиторий питонских пакетов; как из него устанавливать пакеты, как отсылать свои пакеты в него: distutils (или setuputils); eggs; pypi; easy_install, pip
вычислительная сложность программ – представление о теме
работа с веб в качестве клиента: urllib или urllib2
создание веб-сайтов: django или zope или twisted + TAL или gears или ...
- как сделать программу, которая каждому пользователю показывает интерфейс на его родном языке: локализация; кодировки в питоне
- как одной строкой делать могучие преобразования списков: list comprehensions; встроенные функции map, reduce, all, any (reversed, sorted, zip, max, min)
функции высшего порядка; замыкания; lambda
- сборка из питоновских программ exe-файлов под windows
- процесс сборки кроссплатформенных программ в Python
Полезное
/2008 – страница курса за 2008/2009 год
/2009 – страница курса за 2009/2010 год
/Projects – зачётные задания (отчёты и темы для возможных зачётных заданий)
/Links – Прочие полезные ссылки (документация, где взять python, mercurial, и т.п.)