Курс "Практическое программирование на Java"
Требования к решению практических задач
Решение практической задачи заключается в следующем:
- Необходимо сделать реализацию алгоритма по его текстовому описанию в статье или книге.
- Необходимо написать программу, демонстрирующую работу этого алгоритма. Программа должна осуществлять подготовку входных данных и интерпретацию результатов работы алгоритма.
- Необходимо подготовить входные данные, на которых будет демонстрироваться работа алгоритма. Входные данные должны быть описаны не в коде программы, а во внешнем текстовом файле (файлах).
- Необходимо оформить алгоритм и программу так, чтобы можно было легко запустить для оценки.
Обязательные требования к реализации:
- Алгоритм должен быть реализован в виде библиотеки, независимой от программы, реализующей подготовку данных и интерпретацию результатов.
- Интерфейс алгоритма должен быть написан в виде отдельного интерфейса Java. Класс(ы), реализующий(ие) данный алгоритм должны реализовывать этот интерфейс. Детали реализации алгоритма должны быть сокрыты от пользователя алгоритма.
- Программа должна работать из командной строки.
- Оформление кода должно cсоответствовать Sun Coding Conventions. http://java.sun.com/docs/codeconv/
- Обязательно наличие подробных комментариев в программе. Обязательна полная документация по API в формате JavaDoc. Обязателен заголовок пакета с кратким описанием алгоритма и ссылкой на статью. Обязательно наличие подсказки
(и при необходимости опции --help) в программе. Обязательно наличие описания проекта в build.xml (опция --projecthelp в ant)
- Обязательно наличие как исходных кодов программы и библиотеки, так и скомпилированного байткода.
- Программа и библиотека должны собираться из исходных кодов при помощи Ant и build.xml. В build.xml должны быть цели:
- run - для запуска программы на демонстрационном примере;
- compile - компиляция;
- build - сборка jar;
- javadoc - генерация javadoc;
- unittest - запуск модульных тестов;
- clean - стирает все сгенерированые файлы: классы, документацию, результаты прогона тестов, сгенерированный jar;
Цель по умолчанию - компиляция, сборка, генерация документации, запуск модульных тестов, запуск примера.
- Обязательно наличие автоматических тестов библиотеки, вызываемых из Ant (target unit-test).
- В папке src должен находится корневой пакет ru c возможными вложенными пакетами и файл основного класса MainClass.java без пакета.
- В файле readme.txt первые три строки должны содержать информацию об отправителе и номере задания. Их следует оформить следующим образом:
- на первой строке - фамилия и инициалы
- на второй строке - номер группы без слова группа
- на третьей - название задания.
- на четвертой - строка для запуска программы
- на пятой и последующих - краткое описание программы
Пример:
Иванов А. В.
522
Test Program Task
java -jar MyProg.jar
Тестовая программа MyProg.jar должна моделировать работу статического планировщика. Входными параметрами является внешний файл с характеристиками работ, которые необходимо распланировать, ....
- Обязательно наличие файла readme.txt, указывающего строку для запуска программы из командной строки. Программа должна запускаться приблизительно следующим образом: java -jar Имя_Архива.jar параметры
- Программа должна быть передана в виде дерева каталогов запакованного архиватором zip со следующей структурой:
Фамилия латиницей/
- readme.txt
- build.xml
- src - исходные коды
- docs - документация
- class - скомпилированные в байткод классы.
- unittest - папка с данными для теста.
- build - дистрибутив в виде jar
Файл с архивом должен быть назван по фамилии сдающего: <фамилия латиницей>.zip
Правила приема практических реализаций
Практическая реализация принимается в момент готовности, но не позднее 15 декабря.
Работы, сданные до 1 декабря, м.б. возвращены на доработку с указанием недостатков, но не более одного раза. Работы, сданные после 15 декабря штрафуются на 1 балл. Работы надо отсылать по электронной почте в аттачменте. В теле письма ФИО полностью, номер группы, кафедра, название задания. В теме письма указывать фамилию, инициалы, номер группы и версию задания (если прислано первый раз - то 1).
Адрес: javaprak [at] lvk . cs . msu . su.
Внимание! Работы, сданные после 23 декабря, проверяются к 10 января и штрафуются на 2 балла.
Оценивание практических реализаций
!!! Правила являются ориентировочными и могут изменяться без уведомления.
Оценка производится на Sun JDK 1.5.
Оценка производится по следующим пунктам:
- Реализация алгоритма: правильность реализации, документированность кода, соответствие Style Guide для кода, независимость алгоритма от программы,
- Реализация программы: правильность реализации, понятность пользовательского интерфейса, документированность кода, соответствие Style Guide для кода.
- Тестовые данные для программы: тестовый пример, хорошо демонстрирующий работу алгоритма, либо вырожденные данные, соответствие спецификации.
- Документация по API: должна быть документация в формате javadoc на API библиотеки.
- Автоматические тесты: должны быть модульные тесты в формате junit на все элементы API алгоритма, дополнительный "+" - "хорошее" покрытие программы тестами.
- Автоматическая сборка программы: должны быть компиляция, тестирование.
По каждому пункту ставятся "+", "+/-", "-/+", "-". Допустимо ставить дополнительные "+" за оригинальные и/или хорошие вещи, отмечая при этом, за что именно. Аналогично и с "-".
Итоговая оценка по каждой работе вычисляется после определения общего уровня работ.
Last updated: 08.12.2007
|
|