Библиотека сайта 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.
