МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Казанский национальный исследовательский технический университет
им. -КАИ»
(КНИТУ-КАИ)
НАБЕРЕЖНОЧЕЛНИНСКИЙ ФИЛИАЛ
ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
(2 курс, 3 семестр)
Методические указания по выполнению курсовой работы
для студентов, обучающихся по специальности
230100 Информатика и вычислительная техника
Набережные Челны
2012
Печатается по решению Совета
Набережночелнинского филиала ФГБОУ ВПО КНИТУ КАИ
протокол № ___ от « ___ » _________________ 2012 г.
Методические указания к курсовой работе по дисциплине "Объектно-ориентированное программирование" составлены в соответствии с требованиями Государственного образовательного стандарта высшего профессионального образования Российской Федерации.
Предназначены для студентов дневного отделения, обучающихся по специальности 230100 Информатика и вычислительная техника.
Методические указания рассмотрены и одобрены на заседании кафедры ЕДН Набережночелнинского филиала ФГБОУ ВПО КНИТУ КАИ, протокол №1 от 3.09.2010 г.
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ. 4
1. СТРУКТУРА И СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ.. 5
2. ТЕМАТИКА КУРСОВЫХ РАБОТ. 6
ПРИМЕРНЫЕ ТЕМЫ КУРСОВЫХ РАБОТ. 6
3. МЕТОДИКА ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ.. 8
4 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ КУРСОВОЙ РАБОТЫ.. 9
5 ФОРМЫ АТТЕСТАЦИИ И ПОРЯДОК ПРОВЕДЕНИЯ ЗАЩИТЫ КУРСОВЫХ РАБОТ 11
ВВЕДЕНИЕ
Формирование у студентов представлений о современном состоянии программирования, языков программирования, о современном программном обеспечении, операционных системах и средствах для разработки программ различного уровня сложности. Задачей дисциплины является развитие практических навыков по разработке программ с использованием любых языков программирования и сред для разработки программ.
В результате освоения содержания дисциплины студенты должны:
- иметь пpедставление о пpоблемах и напpавлениях pазвития системных пpогpаммных сpедств; o совpеменных алгоpитмических языках, их области пpименения и особенностях;
знать:
- совpеменные методы и сpедства pазpаботки алгоpитмов и пpогpамм;
- пpиемы стpуктуpного пpогpаммиpования;
-способы записи алгоpитма на базовом языке высокого уpовня;
-способы эффективной pеализации абстpактных стpуктуp данных и комбинаторные алгоритмы, их описание на базовом языке.
уметь:
-составлять и тестировать программы обработки данных разного типа (арифметических, логических, символьных) с использованием подпрограмм.
В качестве базового языка используется язык Delphi или C#.
Лекционный курс включает основы алгоритмизации процессов и программирования, основные сведения о базовом языке.
На лабораторных занятиях студенты осваивают работу на базовом языке в диалоговом режиме; совpеменные системные пpогpаммные сpедства: опеpационные системы, опеpационные оболочки, обслуживающие сеpвисные пpогpаммы.
После выполнения курсовой работы студенты должны знать:
- этапы пpоизводства пpогpаммного пpодукта, методы и сpедства тестиpования пpогpамм, оpганизацию файловых систем, пpиемы pаботы с инстpументальными сpедствами; способы отладки, испытания и документиpования пpогpамм;
- иметь опыт выбоpа технологии и инстpументальных сpедств, на их основе pазpаботки, составления, отладки, тестиpования и документиpования пpогpаммы на языках высокого уpовня для задач обpаботки числовой и символьной информации.
Выполнение курсовой работы по дисциплине «Объектно-ориентированное программирование» является важным этапом технологической подготовки студентов, обучающихся по учебным планам в рамках государственного стандарта специальности 230100 Информатика и вычислительная техника.
Курсовая работа представляет собой самостоятельное решение студентом (под руководством преподавателя) частной задачи или проведение исследования по одному из вопросов в области программирования.
Цель выполнения курсовой работы – закрепление теоретического материала по программному обеспечению и выработка практических навыков работы по программированию.
Данная работа предполагает активный поиск новых источников информации, моделирование практического приложения теории и разработку на этой основе эффективной схемы работы системы.
Курсовая работа выполняется студентом самостоятельно под руководством преподавателя - руководителя. Со стороны руководителя осуществляется систематический контроль и консультирование по отдельным вопросам.
Для выполнения курсовой работы студент должен выбрать тему и согласовать ее с руководителем, подобрать и проработать специальную литературу, самостоятельно собрать данные, сформулировать проблему проектирования системы, обосновать и выбрать межмодульный интерфейс и представление данных для её решение.
Выбор темы работы производится из тематики, рассмотренной и одобренной на заседании кафедры. Кроме того, студент может предложить свою тему, которая согласовывается с руководителем и заведующим кафедрой.
Студент приступает к выполнению курсовой работы после получения задания от руководителя.
Написанная курсовая работа должна быть проверена руководителем и защищена с учетом высказанных замечаний.
1. СТРУКТУРА И СОДЕРЖАНИЕ КУРСОВОЙ РАБОТЫ
Курсовая работа должна состоять из следующих основных частей: введения, основной части (в соответствии с темой работы), заключения, списка использованной литературы и приложений. Разработка каждой составной части курсовой работы имеет свои особенности.
Во введении следует раскрыть актуальность темы, определить цель и задачи работы, сформулировать практическую значимость работы, определить предмет и объект исследования, структуру, информационную базу исследования, указать направления реализации полученных в работе выводов и предложений. Объем введения в курсовой работе 2-3 страницы.
Содержание основной части должно точно соответствовать теме работы и полностью ее раскрывать. В основной части отражаются теоретические и практические исследования, расчеты, обобщение результатов, графический материал и т. п. Курсовая работа должна содержать расширенную (по сравнению с материалами лекций и учебников) теоретическую и практическую части.
Теоретическая часть курсовой работы имеет целью показать знание студентами существа вопроса и умение работать с научной и учебной литературой. В этой части должен быть произведен анализ литературы по теме курсовой работы, сформулирована проблема и сделаны выводы. Содержание теоретической части может быть расширено за счет использования дополнительной литературы, статьями по данной тематике, опубликованными в периодике; научными монографиями, рефератами и другой тематической литературой.
Практическая часть работы должна содержать анализ, соответствующие выводы и рекомендации по конкретной практической ситуации (программной среде). Проведение анализа и выработка рекомендаций осуществляется путем практического приложения теоретических основ, изложенных в работе. Исследование желательно проводить на примере какого-либо реального приложения. Практическая часть работы может быть представлена теоретической разработкой какой-либо проблемы, изложенной в виде конкретной, самостоятельно разработанной модели, теории и т. п., т. е. конкретные мероприятия для решения проблемы, выявленной в теоретической части
Завершающей частью курсовой работы является оценка целесообразности предлагаемых решений. Рекомендуется выделение теоретической и практической частей курсовой работы в самостоятельные главы. В этом случае первая глава будет иметь теоретический характер, а вторая (аналитическая) и третья (рекомендательная) – практический. Желательно, чтобы все главы работы имели примерно равный объем.
Заключение должно содержать анализ полученных результатов в соответствии с целями и задачами, поставленными во введении, основные выводы об эффективности предложенных решений, рекомендации по улучшению практического применения предмета исследования. Объем 2-3 страницы.
В приложение включают вспомогательный материал, например: отчетные формы и скриншоты работы анализируемого объекта исследования, логическую структуру входных и выходных данных, основные функции разрабатываемой программы и разработанную структуру программы, состоящую из нескольких функциональных модулей, схему работы системы, а также формы представление данных, межмодульный и др.
2. ТЕМАТИКА КУРСОВЫХ РАБОТ
Кафедрой предлагаются темы курсовых работ, которые охватывают материал всего курса «Объектно-ориентированное программирование». Темы и соответствующий им характер работ выбраны таким образом, чтобы предельно ограничить простое переписывание студентами «книжного» материала и ориентировать их на глубокое осмысление этого материала и его аналитическое использование.
Перечисленные ниже темы могут ежегодно дополняться другими (но обязательно выдержанными в том же ключе), в том числе темами, предложенными самими студентами. В отдельных случаях может быть допущена замена курсовой работы научной студенческой работой, тематически выходящей за рамки содержания курса «Объектно-ориентированное программирование».
Целью курсовой работы является приобретение практических навыков поэтапной разработки нераспределённых объектно-ориентированных программ, разработки собственных классов и применения классов библиотеки. NET Framework и пакетов языка Java, создания из них объектов и обеспечении требуемого совместного функционирования этих объектов как объектно-ориентированной модели, реализующей поставленную задачу, а также описания разработанного программного продукта как с точки зрения его пользователя, так и с точки зрения разработчика.
В результате выполнения курсовой работы студенты должны:
изучить и применить принципы поэтапной разработки и отладки программ средней сложности.
уметь разрабатывать собственные классы, создавать из них разнообразные объекты и применять их совместно для реализации требуемых алгоритмов функционирования программы.
уметь применять необходимые классы библиотеки NET Framework, создавать из них требуемые объекты и употреблять их в программе.
уметь применять необходимые классы пакетов Java, создавать из них требуемые объекты и употреблять их в программе.
уметь разрабатывать собственный интерфейс программы, применив необходимые интерфейсные элементы на базе классов библиотеки NET Framework и пакетов Java.
уметь создавать необходимые события, делегаты и потоки и применять их для эффективного параллельного функционирования объектов и их взаимодействия.
уметь описывать разработанный программный продукт как с точки зрения его пользователя, отражая его внешнюю сторону, так и с точки зрения программиста, отражая особенности его реализации.
^ ТРЕБОВАНИЯ ПО ВЫПОЛНЕНИЮ КУРСОВОЙ РАБОТЫ
При выполнении курсовой работы разработчик прежде всего должен проанализировать предметную область, связанную с разрабатываемой программной системой, выделить основные объекты и разработать для них соответствующие классы или воспользоваться готовыми классами библиотеки NET Framework.
Необходимо выделить особые объекты – источники событий и определить объекты – приёмники этих событий, разработать необходимые делегаты событий, обеспечить связь источников с их приёмниками.
Тщательно необходимо продумать вопросы, связанные с применением потоков и использования ими событий.
После анализа совокупности предполагаемых объектов и их взаимодействия и разработки соответствующих им классов надлежит перейти к поэтапной разработке создаваемой программной системы. Перед переходом к созданию программы на компьютере желательно на бумаге прикинуть поэтапную разработку программы, при которой программа из основного ядра будет обрастать объектами добавляемых классов, приближая своё функционирование к требуемому по заданию.
Желательно на каждом этапе добавлять по одному классу и каждый этап тщательно отлаживать. Ввиду отлаженных предыдущих этапов ошибки на данном этапе будут вызваны некорректностью добавляемых классов или неправильным применением их объектов.
Очень полезно для просмотра деталей функционирования программы любого этапа и облегчения поиска ошибок в Windows приложении кроме прикладного окна приложения иметь и консольное окно, выдавая на него изменяющиеся состояния объектов. По мере отладки целесообразно закомментировать в программе некоторые операторы выдачи на консоль, дабы сократить объём выводимой информации.
Результаты разработки каждого этапа и возникшие при этом проблемы должны быть отражены в пояснительной записке по курсовой работе.
Тематика курсовых работ должна быть связана с разработкой программ, реализующих модель, состоящую из разнотипных объектов с потоками, взаимодействующих между собой с помощью событий. Программный интерфейс должен включать интерфейсные элементы типа кнопок, текстовых редакторов, списков и т. д., объекты которых создаются из соответствующих классов библиотеки NET Framework.
Задание на курсовую работу описывает поведение некоторого множества объектов, подлежащих реализации в виде программной системы.
Это задание должно быть уточнено разработчиком путём уточнения поведения объектов, предложением новых событий, потоков и новых взаимосвязей между объектами. Разработчик должен предложить программный интерфейс, позволяющий не только управлять функционированием системы объектов, но и отображать информацию об их функционировании дополнительных окнах или текстовых редакторах.
Уже разработанные на этапах программы необходимо сохранять, чтобы облегчить поиск допущенных на предшествующих этапах логических ошибок, которые проявились при отладке текущего этапа. Каждый этап разрабатываемой программы должен тщательно тестироваться.
Разработанная программа должна быть реализована на указанном языке. NET платформы на последней версии Visual .
ПРИМЕРНЫЕ ТЕМЫ КУРСОВЫХ РАБОТ
1. Моделирование размещения массивов.
2. Моделирование динамического распределения памяти.
3. Реализация разреженных матриц и работа с ними.
4. Методы внутренней сортировки.
5. Методы внешней сортировки.
6. Методы кодирования информации с целью устранения избыточности текста.
7. Методы кодирования информации с целью повышения надежности передаваемых данных.
8. Методы кодирования информации с целью повышения секретности передаваемых данных.
9. Бинарные деревья. Операции над ними.
10. Исследование алгоритма балансировки АВЛ - дерева.
11. Реализация Б-деревьев.
12. Создание объектно-ориентированной библиотеки для работы с бинарными деревьями.
13. Реализация графов и операции над ними.
3. МЕТОДИКА ВЫПОЛНЕНИЯ КУРСОВОЙ РАБОТЫ
Проектирование программы.
При выполнении курсовой работы на этапе проектирования программы необходимо:
ü выбрать логическую структуру входных и выходных данных;
ü определить основные функции разрабатываемой программы и на основании этого разработать структуру программы, состоящей из нескольких функциональных модулей;
ü разработать схему работы системы;
ü выбрать представление данных;
ü разработать межмодульный интерфейс.
Для каждого из модулей должны быть разработаны функциональные спецификации, содержащие:
ü описание способа вызова модулей;
ü краткое описание функций модуля;
ü ссылки на вызывающие и вызываемые модули;
ü описание входных, выходных данных и локальных переменных.
На следующем этапе выполнения курсовой работы для модулей разрабатываются алгоритмы. Алгоритмы представляются либо в виде схем программ, либо на псевдокоде. Схемы программ выполняются на листах формата А4. Оформление алгоритмов, в этом случае, должно соответствовать стандартам.
Тексты программных модулей должны иметь комментарии.
После разработки текстов программных модулей разрабатывается план отладки программы, в котором определяется последовательность включения отдельных модулей в общую программу. Здесь же должны быть выбраны тестовые наборы данных. При выполнении отладки необходимо использовать программные "заглушки".
Оформление пояснительной записки.
Пояснительная записка к курсовой работе должна быть оформлена по правилам ЕСКД и ЕСПД.
Записка должна содержать:
ü титульный лист;
ü задание на курсовую работу;
ü краткое описание метода решения задачи;
ü описание логического представления входных и выходных данных для всей программы;
ü структуру программы;
ü спецификации на программные модули;
ü алгоритмы работы программных модулей;
ü пояснения к алгоритмам, содержащие описание всех переменных и способов реализации функций;
ü тексты всех программных модулей;
ü описание программы в соответствии с требованиями ЕСПД;
ü план отладки, тексты отладочных программ и тестовые наборы данных;
ü результаты работы программы.
Основные этапы выполнения курсовой работы.
Защита курсовой работы после указанного срока защиты только на оценку – удовлетворительно.
N/N | Наименование этапа | Количество баллов |
1. | Выдача задания | |
2. | Разработка структуры программы и спецификаций на программные модули | 20 |
3. | Разработка текстов программ | 30 |
4. | Подготовка текстов программ на машинном носителе | 10 |
5. | Отладка программы | 20 |
6. | Оформление пояснительной записки | 10 |
7. | Защита курсовой работы | 10 |
Всего | 100 |
Курсовая работа должна соответствовать следующим требованиям:
· быть выполненной на достаточном теоретическом уровне;
· включать анализ материала;
· основываться на результатах самостоятельного исследования, если этого требует тема;
· иметь обязательные самостоятельные выводы в заключении работы;
· иметь необходимый объем;
· быть оформленной по стандарту и выполненной в указанные сроки.
При выборе темы курсовой работы студент должен учитывать:
· ее актуальность;
· познавательный интерес к ней;
· возможность последующего более глубокого исследования проблемы (написание дипломной работы).
4 ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ КУРСОВОЙ РАБОТЫ
Оформление курсовой работы должно соответствовать ГОСТам (ГОСТ 7.1. – 2003; 7.12 – 93, ГОСТ 2.105-95 текстовые документы, графические документы). Курсовая работа, как правило, печатается на стандартной бумаге в формате А4 и должна иметь объем 25-35 страниц машинописного текста и включать в себя следующую структуру:
- титульный лист; оглавление; введение; основной текст (главы, параграфы); заключение;
· список использованных источников и литературы;
- приложения.
При выполнении документа необходимо соблюдать следующие требования к тексту:
- шрифт Times New Roman, размер (кегль) – 14 стиль (начертание) – обычный, цвет шрифта – черный;
- выравнивание – по ширине; красная (первая) строка (отступ) – 1,25 см; межстрочный интервал – 1,5;
- автоматический перенос слов.
Страницы курсовой работы следует нумеровать арабскими цифрами, соблюдая сквозную нумерацию по всему тексту, включая приложения. Номер страницы проставляют в правом верхнем углу без точек и черточек.
Титульный лист включают в общую нумерацию страниц документа. Номер страницы на титульном листе, не проставляют.
Основную часть документа следует делить на разделы (главы, соответствующие основным разделам плана работы над курсовой работой), подразделы и пункты. Разделы должны иметь порядковые номера в пределах всего документа, за исключением приложений, например: 1, 2, 3 и т. д.
Подразделы должны иметь нумерацию в пределах каждого раздела. Номер подраздела состоит из номера раздела и подраздела, разделенных точкой. В конце номера подраздела точка не ставится, например: 1.1, 1.2, 1.3 и т. д.
Переносы слов в заголовках не допускаются. Если заголовок состоит из двух предложений, их разделяют точкой. При переносе заголовка на вторую строку первая буква второй строки размещается под первой буквой первой строки. Межстрочный интервал в этом случае – одинарный.
Заголовки «Оглавление», «Введение», «Заключение», «Список использованных источников и литературы», «Приложения» выполняют симметрично тексту (по центру) без абзацного отступа строчными буквами без нумерации.
Каждый раздел текстового документа следует начинать с нового листа, такими разделами являются титульный лист, содержание, введение, теоретическая часть, практическая часть, заключение, список использованных источников, каждое из приложений. Основные требования к оформлению курсовой работе описаны в «Положении о курсовой работе», утверждённого на Совете НЧФ КНИТУ КАИ.
Во введении основное внимание должно быть уделено неформальному описанию проблемной области в контексте темы курсовой работы.
Постановка задачи должна включать формальную постановку задачи.
Описание решения задачи должно содержать:
- сведения о структуре используемого информационного и программного обеспечения;
- подробное описание алгоритмов, используемых в работе.
Далее приводятся спецификации (основные свойства и правила использования) разработанного программного продукта. Указанные спецификации и описания программ должны, как правило, выглядеть следующим образом:
-------
Программа myprogram состоит из следующих модулей: myunit1, myunit2, myunit3 ….
Модуль myunit1 содержит описание функции void main();
Модуль myunit2 содержит описание функций int sorted(char * a, int n), int search(char* a, int n, char x);
Модуль myunit3 содержит описание функций ….
Функция int sorted(char * a, int n) производит сортировку массива методом пузырьковой сортировки и возвращает число сделанных при этом сравнений, параметр char * a – указатель на сортируемый массив целых чисел, параметр int n – длина сортируемого массива.
Функция int search(char* a, int n, char x)производит ….
------
Необходимо составить также краткое руководство пользователя.
В заключении к работе должны быть сформулированы основные результаты и выводы.
В конце отчета приводится список использованной литературы. Пример оформления ссылок см. в файле со стандартами.
Набор программ, прилагаемых к курсовой работе, может быть написан на любом языке программирования, допускающем корректное выполнение задания.
Все тексты программ должны быть снабжены подробными комментариями.
5 ФОРМЫ АТТЕСТАЦИИ И ПОРЯДОК ПРОВЕДЕНИЯ ЗАЩИТЫ КУРСОВЫХ РАБОТ
Курсовая работа допускается к защите при условии законченного оформления, допуска научного руководителя. Курсовая работа по комплексному экономическому анализу деятельности предприятий не может быть допущена к защите, если она носит теоретический (или учебный) характер.
В случае не допуска курсовой работы к защите, руководитель курсовой работы проставляет в экзаменационной ведомости студенту неудовлетворительную оценку.
Защита курсовых работ должна быть проведена до начала экзаменационной сессии. Защита курсовых работ проводится в виде публичного выступления студента. Курсовая работа может быть оценена на «отлично», «хорошо», «удовлетворительно», «неудовлетворительно».
Критериями оценки курсовой работы являются:
- актуальность и степень разработанности темы;
- творческий подход и самостоятельность в анализе, обобщениях и выводах; полнота охвата первоисточников и исследовательской литературы;
- уровень овладения методикой исследования;
- научная обоснованность и аргументированность обобщений, выводов и рекомендаций; научный стиль изложения;
- соблюдение требований к оформлению курсовой работы и сроков ее исполнения.
Литература
1. Delphi. Программирование на языке высокого уровня: Учебник для вузов / . – СПб.: Питер, 2003. – 640 с.: ил.
2. Программирование на Pascal, 3-е издание. – Пер. с англ. – СПб: Символ-Плюс, 2003. – 328 с., ил.
3. , Сафронов Интернета для школьников. – СПб.: БХВ-Петербург, 2003. – 160 с.: ил.
4. , Соколов программирования на языке Си++: Для студентов физико-математических факультетов педагогических институтов. – Коломна: КГПИ, 2007.
5. Борисенко сеть. Просто как дважды два. – М.: Изд-во Эксмо, 2007. – 160 с.: ил. – (Просто как дважды два).
6. Брукшир Дж. Информатика и вычислительная техника. 7-е изд. – СПб.: Питер. 2004. – 620 с.: ил.
7. Брукшир Дж., Гленн. Введение в компьютерные науки. Общий обзор, 6-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2001. – 688 с.: ил. – Парал. тит. англ.
8. Демидович алгоритмизации и программирования. Язык СИ : учебн. Пособие. – СПб.: БХВ-Петербург, 2008.
9. С++ для «чайников». – К. : Диалектика, 2009.
10. С/С++. Программирование на языке высокого уровня. – СПб: Питер, 2007.
11. Плохотников разработки курсовых работ. Моделирование, вычисления, программирование на С/С++ и МАТLAB, виртуализация, образцы лучших студенческих курсовых работ: учебное пособие. – М.: СОЛОН-ПРЕСС, 2008.
12. Подбельский на языке Си – М.: Финансы и статистика, 2007.


