python.hw 2012-2013

ФТ-101

Strings
Дедлайн: 12.03.2013

cs parsing
Взять http://cs.usu.edu.ru/home:
1. Посчитать статистику по именам.
2. ... по годам
3. Сделать детектилку мальчик/девочка

Также можно взять http://cs.usu.edu.ru/langs/perl/perltask/20(0[6-9])|(1[0-1]/students.htm и добавить еще стастистику по группам.

Дедлайн: 12.03.2013

3
Одна из 2-х задач на выбор:

===
1.
===

Проверить тезис: если в Википедии переходить по первой ссылке в статье, то можно дойти до Философии.

важные моменты:
- не нужно обращаться к Википедии слишком часть, вставляйте time.sleep.
- с Питоновским User-Agent-ом Википедия вас не пустит, нужно делать вид, что вы - браузер (если за какое-то короткое время не получится справиться с этой проблемой, нужно написать письмо).

===
2.
===
Взять файлик: http://yadi.sk/d/RUBTy3QY33FVI и посчитать по нему статистику:
- Какие команды работают днем, какие - ночью, а какие - всегда.
- Какие команды самые точные (дают правильный ответ за наименьшее число попыток, а какие - пробуют, пробуют и пробуют).
- * построить график (как угодно - в Exel или с помощью gnuplot или еще как-нибудь) роста очков команд и интенсивности попыток сдач.

Дедлайн: 19.03.2013

access.log
Лог файл (сжатый файл 2,14 ГБ, архив развернется в ~60ГБ)

Нужно собрать статистику:
1. Популярность URL-ов;
2. Полпулярность браузеров;
3. Размер файлов.

При этом нужно обратить внимание на декомпозицию: нужно правильно разбить программу на функции.

Дедлайн: 26.03.2013

project_stats
http://codepad.org/iLprgQY7

Дедлайн: 16.04.2012

access.log_classes
access.log с классами

Дедлайн: 16.04.2013

КН-103

1_strings

2_cs_parser

3_wiki_philosophy

4_log_parser

5_log_parser_class

ФТ-102

strings
Дописать недостающий функционал к strings1.py и strings2.py.
Требования:
- Прохождение тестов
- Стиль

cs_parser
Взять содержимое файла http://cs.usu.edu.ru/home/ и выдать некоторую статистику о студентах матмеха, например:
- самое распространённое имя за всё время
- самое за каждый год
- отсортированный список имён по частоте их встречи за всё время

wiki_walker
Написать скрипт для проверки гипотезы о том, что от любой страницы Wikipedia можно добраться до страницы "Философия". Разумеется скрипт не должен зацикливаться.

log_parser
Вам предоставляется файл с логами вебсервера apache2, при этом файл может быть очень большим. От вас требуется написать скрипт, который по данному файлу может предоставить следующую статистику (в зависимости от параметров переданных скрипту):
- самая популярная страницы
- самый активный клиент
- среднее количество запросов в секунду
- ...

log_parser_classes
Решить задачу log_parser с использованием классов, минимально:
- выделить основные сущности программы в классы (собственно парсер, разбор параметром, что-то ещё)
Дополнительно:
- расчёт всех статистик разом
- пересчёт статистик только если поменялся файл (кеширование)
- расчёт статистик при первом требование, а не при создании (ленивость)

functional
Дописать недостающие функции к выданному файлу

КН-104

strings
Дописать недостающий функционал к strings1.py и strings2.py.
Требования:
- Прохождение тестов
- Стиль

cs_parser
Взять содержимое файла http://cs.usu.edu.ru/home/ и выдать некоторую статистику о студентах матмеха, например:
- самое распространённое имя за всё время
- самое за каждый год
- отсортированный список имён по частоте их встречи за всё время

wiki_walker
Написать скрипт для проверки гипотезы о том, что от любой страницы Wikipedia можно добраться до страницы "Философия". Разумеется скрипт не должен зацикливаться.

log_parser
Вам предоставляется файл с логами вебсервера apache2, при этом файл может быть очень большим. От вас требуется написать скрипт, который по данному файлу может предоставить следующую статистику (в зависимости от параметров переданных скрипту):
- самая популярная страницы
- самый активный клиент
- среднее количество запросов в секунду
- ...

log_parser_classes
Решить задачу log_parser с использованием классов, минимально:
- выделить основные сущности программы в классы (собственно парсер, разбор параметром, что-то ещё)
Дополнительно:
- расчёт всех статистик разом
- пересчёт статистик только если поменялся файл (кеширование)
- расчёт статистик при первом требование, а не при создании (ленивость)

functional
Дописать недостающие функции к выданному файлу