Библиотека сайта rus-linux.net
Р.Сузи. Спецкурс "Язык Python и его приложения"
Зачетные задания Необходимым условием зачета является выполнение одного из заданий в каждой группе (A, B, C, D). Группа A -- теоретические алгоритмы, функциональное программирование, ООП, обработка текстов, XML Группа B -- использование Python в различных приложениях (скрипты администрирования ОС, обработка логов, CGI-скрипты, доступ к базе данных, сетевое приложение и т.п.) Группа C -- построение приложения с графическим интерфейсом пользователя; интеграция с другими системами и языками Группа D -- применение Python в курсовой (дипломной) работе, например, для обработки первичных данных, быстрой разработки прототипа программной системы, организации тестирования программной системы и т.п. Дополнительные требования: - созданные приложения должны быть в сумме не менее 2 KLOC (тысяч строк кода), определяются с помощью утилиты pycount, а содержание комментариев должно быть не менее 15% - утилита pychecker PyChecker не должна выдавать предупреждений (за исключением некоторого списка, который будет объявлен дополнительно) - неграфические приложения и вычислительное ядро графических приложений необходимо снабдить системой тестирования unittest или doctest. - разрешается работать парами над одними и теми же заданиями, но при этом необходимо выполнить в два раза больше заданий Задания группы A Реализовать на Python, полностью документировать, составить полное тестовое покрытие (для наборов классов дать несколько примеров использования): 1. Некоторый алгоритм сортировки списка (например, быструю сортировку) 2. Набор классов для работы с деревьями 3. Набор классов для работы с графами 4. Набор классов для решения задач оптимизации 5. Набор классов для решения некоторого класса уравнений (матричных, дифференциальных и т.п.) 6. Набор классов для представления и работы с семантической сетью 7. Преобразователь текста с некоторой разметкой в HTML или XML 8. Модуль для поддержки таблиц решений 9. 10. Задания группы B 1. Скрипт обхода каталогов и выполнения некоторого набора операций над файлами 2. Обработка лога web-сервера для получения некоторых отчетов о посещаемости web-сайта 3. CGI-скрипт для ведения календаря некоторых событий (с интерфейсом редактирования) 4. Разработка гибкой системы показа баннеров, автоматически регулирующей периоды показа баннеров, вероятность показа и т.п. 5. Система для обработки анкет по электронной почте 6. Простейшая система поддержки шаблонов для генерации web-сайта 7. Автоматическое извлечение данных из файлов офисных форматов (Требует изучения средств COM для работы с приложениями под Windows) 8. Создать простейшую оболочку (типа sh) для манипуляции файлами и запуска программ 9. 10. Задания группы C 1. Оболочку для одного из инструментов командной строки (zip, grep, find и т.п.), обеспечив доступ к типичному набору функций инструмента 2. Программа для тестирования и/или тренинга некоторого языка, возможно, с применением аудио информации 3. Использование Jython (Python для Java) для создания небольшого приложения, использующего библиотеки Java 4. Написание модуля расширения для Python на языке C с использованием SWIG или на C++ с использованием Boost 5. Визуализатор структуры HTML или XML документа 6. Графический интерфейс к сетевому приложению (специализированный HTTP-клиент, интерфейс к какой-либо поисковой или информационной системе и т.п.) 7. Средство для тестирования web-сервера 8. 9. 10.