Наши партнеры








Книги по Linux (с отзывами читателей)

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