Автоматизированная обучающая система по дисциплине "Программирование"

Федеральное агентство по образованию РФ

ГОУ ВПО "Брянский государственный университет имени академика И.Г. Петровского"

Социально-экономический институт

Финансово-экономический факультет

Кафедра автоматизированных информационных систем и технологий



















КУРСОВАЯ РАБОТА

по дисциплине "Разработка и применение пакетов прикладных программ"

на тему:

Автоматизированная обучающая система по дисциплине «Программирование»















Брянск 2010




Содержание



Введение 

1. Аналитическая часть 

1.1 Описание предметной области 

1.2 Описание и сравнение программ-аналогов 

2. Техническое задание 

3. Конструкторская часть 

3.1 Постановка задачи 

3.2 Выбор инструментальных средств и языка разработки 

3.3 Функциональная схема 

3.4 Алгоритм работы программы 

3.5 Проектирование интерфейса 

4. Эксплуатационная часть 

4.1 Требования к вычислительной системе 

4.2 Установка программного продукта 

4.3 Инструкция по эксплуатации 

4.4 Демонстрационная часть работы продукта 

5. Экспериментальная часть 

6. Экономическая часть 

6.1 Определение вида и длительности работ 

6.2 Определение заработной платы исполнителей 

6.3 Составление сметы затрат 

6.4 Расчет предполагаемой прибыли 

6.5 Экономическая целесообразность разработки 

Заключение 

Список литературы 

Приложение 




Введение



Постоянное увеличение объема информации и ограниченность учебного времени обуславливают необходимость интенсификации обучения, разработки и внедрения нетрадиционных технологий, базирующихся на использовании вычислительной техники с применением активных методов обучения во всем их разнообразии и комплексности. Реализация активных методов обучения – одна из основных задач дидактики, которая предполагает активизацию всего процесса, выявление системы, способов, приемов, способствующих повышению активности обучаемых через формирование положительной мотивационной структуры учебно-познавательной деятельности [12].

Лекционно-семинарная форма обучения давно потеряла свою эффективность - практика доказала, что почти 50% учебного времени тратится впустую. Изучая зарубежный опыт, можно выделить следующий важный аспект: преподаватель выступает не в роли распространителя информации (как это традиционно принято), а в роли консультанта, советчика, иногда даже коллеги обучаемого [9].

Это дает некоторые положительные моменты: студенты активно участвуют в процессе обучения, приучаются мыслить самостоятельно, выдвигать свои точки зрения, моделировать реальные ситуации.

Развитие информационных технологий предоставило новую, уникальную возможность проведения занятий с внедрением автоматизированных обучающих систем по дисциплинам в вузах. Она, во-первых, позволяет самому обучаемому выбрать и время и место для обучения, во-вторых, дает возможность использовать в обучении новые информационные технологии, в-четвертых, в определенной степени сокращает расходы на обучение. С другой стороны, внедрение в образование новых автоматизированных обучающих систем усиливает возможности индивидуализации обучения [11].

Достоинствами автоматизированных обучающих систем (АОС), являются: во-первых, их мобильность, во-вторых, доступность связи с развитием компьютерных сетей, в-третьих, адекватность уровню развития современных научных знаний. С другой стороны, создание АОС способствует также решению и такой проблемы, как постоянное обновление информационного материала. В них также может содержаться большое количество упражнений и примеров, подробно иллюстрироваться в динамике различные виды информации. Кроме того, при помощи АОС осуществляется контроль знаний - компьютерное тестирование [15].

В настоящее время традиционные подходы в области преподавания информатики и программирования в вузе не способны отследить быстроменяющуюся действительность в области информационных технологий, связанную с бурным развитием вычислительной техники, операционных систем, парадигм программирования, организацией, анализом, представлением информации и обеспечением доступа к ней, в том числе и в сетях.

Выход из создавшегося положения видится в несколько иной расстановке акцентов, как на принципы обучения, так и на сам процесс и условия обучения, позволяющие не только и не столько учить в прямом смысле этого слова, сколько помогать учиться, организовать процесс обучения так, чтобы развивались не только практические навыки в области информатики и программирования, но и соответствующее мировоззрение и творческий потенциал, позволяющие будущему специалисту с минимальными затратами осуществлять доступ к требуемым информационным ресурсам (в том числе и мировым), самостоятельно адаптироваться к действительности, определяемой появлением новых парадигм, сред и инструментальных средств [13].

Цель: создать автоматизированную обучающую систему по дисциплине «Программирование» для студентов ВУЗов.

Задачи:

	Изучить и проанализировать предметную область.

	Изучить и сравнить программы-аналоги.

	Обобщить и систематизировать материал для автоматизированной обучающей системы.

	Написать техническое задание к проекту.

	Разработать автоматизированную обучающую систему, протестировать, провести эксперименты исключительных ситуаций.

	Провести экономический анализ эффективности проектного решения.

Источниками информации при написании курсовой работы служили учебные пособия для вузов, нормативные документы, электронные ресурсы сети Интернет.

Методы исследования:

Метод математического моделирования.

Монографический метод.

Метод экономического анализа.

Экспериментальный метод.

Аналитический метод.

Синтетический метод.

Курсовая работа насчитывает 46 страниц основного текста, 26 рисунков, -4 таблицы и 7 формул.




Аналитическая часть



1.1 Описание предметной области



В данной курсовой работе требуется автоматизировать процесс обучения студентов по дисциплине «Программирование». Для описания предметной области воспользуемся диаграммой IDEF0, составленной в программе AllFusion Process Modeler R7.





Рисунок 1.1. Описание предметной области IDEF0 диаграмма №1



На рисунке 1.1 рассмотрен учебный процесс изучения курса программирования в вузе. Этот процесс регламентируется учебной программой курса и учебным планом. Обучение ведется под контролем преподавательского состава, которому оказывается помощь со стороны учебно-вспомогательного персонала (лаборанты и мастера производственного обучения). Также в процессе обучения задействованы программные и технические средства. В качестве итогового испытательного мероприятия выступает экзамен, позволяющий оценить уровень облученности студента. По результатам сдачи экзамена выставляется итоговая оценка.

При разбиении сложного процесса на составляющие его функции применяется принцип декомпозиции. Декомпозиция позволяет представить модель системы в виде иерархической структуры отдельных диаграмм, что делает ее менее перегруженной и легко усваиваемой. На рисунке 1.2 изображена декомпозиция учебного процесса.





Рисунок 1.2. Описание предметной области. IDEF0 диаграмма №2



Декомпозиция наглядно отражает этапы реализации образовательного процесса: вводная часть, сообщение теоретического материала, практические задания, проверка знаний и подведение результатов. На каждом из этапов обязательно взаимодействие преподавателей с обучаемым с целью передачи последним знаний и опыта. В некоторых подпроцессах участвует также вспомогательный персонал. Во время обучения используются ПО и технические средства. Весь процесс обучения регламентируется программой курса и учебным планом. В конце подводятся итоги обучения, выносится оценка знаний студента.

На рисунке 1.3 представлена декомпозиция процесса проверки знаний. Проверка знаний студента проходит с помощью тестирования. После того, как студент получает задания и решает их, преподаватель проверяет правильность решения и выставляет оценку.




Рис 1.3. Описание предметной области. IDEF0 диаграмма №3



Итак, в ходе изучения предметной области были выявлены следующие проблемы:

на прохождение каждого этапа в процессе обучения затрачивается слишком много времени;

тестирование и проверка тестов не всегда осуществляется с помощью ПО и технических средств, а зачастую происходит вручную;

сообщение теоретического материала происходит в традиционной форме и требует активного участия, как студентов, так и преподавателей;

при подведении результатов и оценивании знаний студента играет роль людской фактор, что зачастую не всегда сказывается благоприятным образом на знании студента.

Анализ научной литературы показывает, что данные проблемы могут быть решены с использованием автоматизированных обучающих систем.

Автоматизированные обучающие системы представляют собой комплексы научно-методической, учебной и организационной поддержки процесса обучения, проводимого на базе компьютерных, или, как их также называют, информационных технологий. С позиций современной дидактики введение информационной среды и программного обеспечения внесло огромное количество новых возможностей во все области процесса обучения. Компьютерные технологии представляют собой принципиально новые средства обучения. За счет своего быстродействия и больших резервов памяти они позволяют реализовывать различные варианты сред для программированного и проблемного обучения, строить различные варианты диалоговых режимов обучения, когда так или иначе ответ учащегося реально влияет на ход дальнейшего обучения.

Вследствие этого современный педагог с неизбежностью должен осваивать новые образовательные подходы, опирающиеся на средства и методы индивидуального компьютерного обучения. В общем случае педагог получает доступ к компьютерным средствам, информационной среде и программным продуктам, предназначенным для обеспечения преподавательской деятельности. Все эти средства образуют комплексы автоматизированных обучающих систем.

В рамках автоматизированных обучающих систем на сегодняшний день решается ряд задач обучения. В первую группу можно отнести задачи проверки уровня знаний, умений и навыков учащихся до и после обучения, их индивидуальных способностей, склонностей и мотиваций. Для таких проверок обычно используют соответствующие системы (батареи) психологических тестов и экзаменационных вопросов. К этой же группе относятся задачи проверки показателей работоспособности учащихся, что осуществляется путем регистрации таких психофизиологических показателей, как скорость реакции, уровень внимания и т.д. [7]. К таким системам относится система «Федерального интернет - тестирования в сфере профессионального образования».






Рисунок 1.4. Сайт Федерального интернет - тестирования в сфере профессионального образования



Интернет-экзамен в сфере профессионального образования (ФЭПО) проводится в форме компьютерного тестирования студентов и направлен на проверку выполнения требований Государственных образовательных стандартов профессионального образования. Целью ФЭПО является формирование единых требований к оценке качества подготовки специалистов.

В целях оказания помощи вузам при создании систем управления качеством подготовки специалистов на основе независимой внешней оценки Национальное аккредитационное агентство в сфере образования проводит эксперимент по введению Федерального экзамена в сфере высшего профессионального образования (ФЭПО). Содержанием эксперимента является проведение компьютерного Интернет-тестирования в части внешней оценки уровня подготовки студентов на соответствие требованиям государственных образовательных стандартов.

Принципы ФЭПО:

	принцип добровольности участия вузов;

	принцип полного доверия вузам по вопросам соблюдения технологии проведения экзамена;

	проведение экзамена в единое время по единым измерительным материалам;

	два режима проведения экзамена: on-line off-line.

ФЭПО – это тестирование студентов совокупности образовательных программ или одной образовательной программе всех вузов Российской Федерации с использованием среды Интернет в режиме off-line или в режиме on-line.

ФЭПО позволит объективно оценить степень соответствия содержания и уровня подготовки студентов требованиям государственных образовательных стандартов.

ФЭПО позволит сравнить результаты освоения стандарта студентами данного вуза с результатами других вузов.

Результаты ФЭПО оформляются в виде информационно-аналитической карты, содержащей материалы, предназначенные для принятия решений в системе внутривузовского управления качеством подготовки.

ФЭПО позволит эффективно использовать результаты экзамена при самообследовании для комплексной оценки вуза.

Участие вузов в ФЭПО будет способствовать созданию системы обеспечения качества подготовки студентов на основе независимой внешней оценки [14].

Вторая группа задач связана с регистрацией и статическим анализом показателей усвоения учебного материала: заведение индивидуальных разделов для каждого учащегося, определение времени решения задач, определение общего числа ошибок и т.д. К этой же группе логично отнести решение задач управления учебной деятельностью. Например, задач по изменению темпа предъявления учебного материала или порядка предъявления учащемуся новых блоков учебной информации в зависимости от времени решения, типа и числа ошибок. Таким образом, эта группа задач направлена на поддержку и реализацию основных элементов программированного обучения [7]. К таким системам относится «Интернет университет информационных технологий» (Интуит).





Рисунок 1.5. Интернет университет информационных технологий



Интернет-Университет Информационных Технологий (ИНТУИТ) это частная организация, которая ставит следующие цели:

	финансирование разработок учебных курсов по тематике информационно-коммуникационных технологий;

	координация учебно-методической деятельности предприятий компьютерной индустрии по созданию учебных курсов по ИКТ;

	обеспечение профессорско-преподавательских кадров вузов и их библиотек учебниками и методическими материалами по курсам ИКТ;

	содействие органам государственной власти в области развития образовательных программ, связанных с современными информационными технологиями.

Это частная организация, учредителями которой являются физические лица. Это даже не учебное заведение, по крайней мере, в том смысле, в котором этот термин используется в официальных документах. Проект существует за счет учредителей. Финансовую поддержку ему оказывают ряд российских и иностранных компаний и частных лиц. Некоторые курсы создаются при поддержке компаний и частных спонсоров, информация об этом специально указывается на сайте [10].

Третья группа задач АОС связана с решением задач подготовки и предъявления учебного материала адаптации материала по уровням сложности, подготовки динамических иллюстраций, контрольных заданий, лабораторных работ самостоятельных работ учащихся. В качестве примера уровня таких занятий можно указать на возможности использования различных инструментов информационных технологий. Другими словами, использования программных продуктов, дающих возможность формирования различных сложных лабораторных и др. практических работ. Например, таких, как сборка «виртуального» осциллографа с последующей демонстрацией его возможностей по регистрации усилению или синхронизации различных сигналов. Аналогичные примеры из области химии могут касаться моделирования взаимодействия сложных молекул, поведения растворов или газов при изменении условий эксперимента. К этим системам относят электронные учебники [7].

Электронный учебник – это продукт образовательного характера, отличие которого от традиционного учебника в том, что просмотреть его можно только с помощью компьютера. Электронный учебник так же, как и обычный, соответствует всем нужным учебным программам [17].

Техническое обеспечение автоматизированных обучающих систем основано на локальных компьютерных сетях, включающих автоматизированные рабочие места (АРМ) учащихся, преподавателя и линии связи между ними. Рабочее место учащегося, кроме монитора (дисплея) и клавиатуры, может содержать принтер, такие элементы мультимедиа, как динамики, синтезаторы звуков, текстовые и графические редакторы. Цель этих всех технических и программных средств состоит в обеспечении учащихся средствами решения, справочным материалом и средствами регистрации ответов [15].

В настоящее время разработано большое число электронных учебных материалов, в качестве которых выступают электронные учебники, электронные учебные пособия, автоматизированные обучающие системы и т.п. Существующие электронные учебные материалы решают те или иные задачи обучения с большей или меньшей эффективностью, которая определяется, прежде всего, степенью управляемости обучаемым в процессе обучения. В условиях нарастающего интереса, к созданию различных вариантов электронно-методических материалов возникает необходимость в классификации этих материалов с целью оценки их различия и определения области применения. Уже существует ряд классификаций обучающих систем по различным их свойствам. Однако нет классификации, отражающей управляемость обучаемого системой, что при расширяющемся использовании электронных учебных материалов, является важным на данный момент [12].

Сайты, посвященные дисциплине «Программирование». В настоящее время существуют множество сайтов посвященных дисциплине «программирование». На сайтах изложено много теоретического материала, на форумах можно найти помощь по выполнению практического материала. В основном эти сайты настроены на самообучение.

Информация на сайтах содержится разнородная. Это информация для начинающих, «середнячков» и профессионалов.



Описание и сравнение программ-аналогов



Таблица 1.1 Сравнение обучающих систем

Признак

ФЭПО

ИНТУИТ

Сайты по программированию

Соединение с интернетом

+

+

+

Возможность работы в автономном режиме

_

_

_

Теоретический материал

-

+

+

Практические задания

-

-

+

Тестирование

+

+

-

Возможность тиражирование на диске

-

-

-

Оценка знаний студента

+

+

-



В итоге сравнения хотелось бы заметить, что ни одна из выше перечисленных информационных систем не обладает всеми функциональными возможностями. Нам нужна система, обладающая следующими возможностями:

работа без соединения с сетью Интернет;

наличие теоретического материала;

наличие практического задания;

наличие системы тестирования и оценивания студента;

возможность распространять программу на диске.




Техническое задание



Введение

Настоящее техническое задание распространяется на разработку электронного учебника по дисциплине «Программирование» для использования студентов специальности «Прикладная информатика в экономике» при изучении курса программирование.

Основание для разработки

Программа разрабатывается на основе учебного плана кафедры "Автоматизированных информационных систем и технологий" СЭИ БГУ.

Наименование работы: "Автоматизированная обучающая система по дисциплине «Программирование»".

Исполнитель: ________________.

Соисполнители: нет.

Назначение разработки

Программа предназначена для использования студентами при изучении курсов "Программирование", «Высокоуровневые методы информатики и программирования».

Технические требования

Требования к функциональным характеристикам.

Программа должна обеспечивать возможность выполнения следующих функций:

содержать теоретический материал тем по дисциплине «Программирование»;

содержать систему тестирования;

содержать систему оценивания знаний по результатам тестирования;

хранение результатов тестирования в памяти;

содержать задания для практических работ.

Исходные данные:

Материал по дисциплине «Программирование».

Организация входных и выходных данных.

Входные данные поступают с клавиатуры.

Выходные данные отображаются на экране и при необходимости выводятся на печать.

Требования к надежности.

Предусмотреть контроль вводимой информации.

Предусмотреть блокировку некорректных действий пользователя при работе с системой.

Требования к составу и параметрам технических средств.

Система должна работать на IBM-совместимых персональных компьютерах.

Минимальная конфигурация:

тип процессора – Pentium III и выше;

объем оперативного запоминающего устройства – 256 Мб и более;

объем свободного места на жестком диске – 40 Мб.

Рекомендуемая конфигурация:

тип процессора – Pentium Celeron 1,6 ГГц;

объем оперативного запоминающего устройства – 512 Мб;

объем свободного места на жестком диске – 60 Мб.

Требования к программной совместимости.

Программа должна работать под управлением семейства операционных систем Windows (Windows ХР / Vista / 7 и т.п.).

Требования к программной документации

Разрабатываемые программные модули должны быть самодокументированы, т.е. тексты программ должны содержать все необходимые комментарии.

Разрабатываемая программа должна включать справочную информацию о работе программы, описания методов сортировки и подсказки учащимся.

В состав сопровождающей документации должны входить:

пояснительная записка на пяти листах, содержащая описание разработки;

руководство пользователя.

Календарный план работ



Таблица 2.1 Календарный план работ

№ этапа

Название этапа

Сроки этапа

Чем заканчивается этап

1

Изучение предметной области. Проектирование системы. Разработка предложений по реализации системы

05.09.2010 – 15.10.2010

Предложения по работе системы

2

Разработка программного модуля по сбору и анализу информации со счетчиков и устройств управления. Внедрение системы в процесс обучения

16.10.2010 – 20.10.2010

Программный комплекс, решающий поставленные задачи для автоматизации учебного процесса.

3

Тестирование и отладка модуля. Пробное внедрение системы в процесс обучения

21.10.2010 – 5.11.2010

Готовая автоматизированная система по дисциплине «Программирование»




3. Конструкторская часть



3.1 Постановка задачи



На основе анализа, проведенного в курсовой работе, нами установлено, что учебный процесс в его классической его форме в связи с развитием новых информационных технологий устарел. В результате внедрения предлагаемого программного продукта существенно изменяются подходы к организации учебного процесса. Произошедшие изменения наглядно иллюстрируют диаграммы IDEF0 А, Б, В на рисунках 3.1, 3.2, 3.3.





Рисунок 3.1. Диаграмма IDEF0 А





Рисунок 3.2. Диаграмма IDEF0 Б




Рисунок 3.3. Диаграмма IDEF0 В



После внедрения автоматизированной обучающей системы учебный процесс должен выглядеть следующим образом:

Лекции преподавателей заменены электронными лекциями, с которыми студент должен будет ознакомиться самостоятельно.

После изучения лекционного материала студент должен будет выполнить лабораторные работы.

После выполнения лабораторный работы по каждой теме пройти тестирование.

Процесс тестирования после внедрения АОС заметно упростится. Компьютер самостоятельно посчитает правильные ответы студента и выдаст результаты, которые будут записаны в файл. В файле будут все итоги тестирования студента и его оценка. На основе этих результатов преподаватель будет смотреть за успехами студентов.



3.2 Выбор инструментальных средств и языка разработки



Проект по автоматизации учебного процесса по дисциплине «Программирование» будет реализовываться на высокоуровневом языке программирования С#.

C# (Си-шарп) — объектно-ориентированный язык программирования для платформы .NET. Разработан в 2000 году Андерсом Хейлсбергом, Скоттом Вилтамутом и Питером Гольде под эгидой Microsoft Research. Основным постулатом С# является высказывание: "всякая сущность есть объект". Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода.

C# был создан специально для технологии ASP.NET. В то же время на C# полностью написана и сама ASP.NET.

C# — это полнофункциональный объектно-ориентированный язык, который поддерживает все три «столпа» объектно-ориентированного программирования: инкапсуляцию, наследование и полиморфизм. Он имеет прекрасную поддержку компонентов, надежен и устойчив благодаря использованию «сборки мусора», обработки исключений, безопасности типов.

Язык C# разрабатывался "с нуля" и вобрал в себя много полезных свойств таких языков, как C++, Java, Visual Basic, а также Pascal, Delphy и др. При этом необходимость обратной совместимости с предыдущими версиями отсутствовала, что позволило языку C# избежать многих отрицательных сторон своих предшественников.

Как и Java, C# разрабатывался для Интернет и примерно 75% его синтаксических возможностей аналогичны языку программирования Java, его также называют «очищенной версией Java. 10% подобны языку программирования C++, а 5% – заимствованы из языка программирования Visual Basic. Объем новых концептуальных идей в языке C# около 10%.

Выделение и объединение лучших идей современных языков программирования делает язык C# не просто суммой их достоинств, а языком программирования нового поколения [16].




3.3 Функциональная схема



На рисунке 3.4. изображена функциональная схема автоматизированной обучающей системы по дисциплине «Программирование». Она показывает взаимодействия компонентов программного обеспечения с описанием информационных потоков, состава данных в потоках и указанием используемых файлов и устройств.





Рисунок 3.4. Функциональная схема программы



3.4 Алгоритм работы программы



На рисунке рисунок 3.4 изображен алгоритм работы электронного учебника по дисциплине «Программирование».

Алгоритм — это точное предписание, которое задаёт вычислительный (алгоритмический) процесс, начинающийся с произвольного исходного данного и направленный на получение полностью определяемым этим исходным данным результата [8].

Пользователь запускает программу. Далее программа предоставляет возможность выбрать тему лекции. После выбора лекции появляется окошко с текстом лекции. После изучения материала лекции, пользователь может пройти тестирование по материалам лекции. После прохождения теста выдается результат решения теста. После объявления результата пользователь может завершить работу с программой или перейти к списку лекции.





Рисунок 3.5. Алгоритм работы программы в виде блок-схемы



Программный код реализации программы представлен в приложении.



3.5 Проектирование интерфейса



При разработке интерфейса автоматизированной обучающей системы по дисциплине «Программирование» мы руководствовались принципом простоты и удобства использования программы. В программе задействовано четыре формы. Функции первой формы (рисунок 3.6): выбор темы лекции, из нескольких предложенных программой, и отображение на экране лекционного материала. Вторая форма – тестовая. Она необходима для реализации функции тестирования студентов (рисунок 3.7). Третья форма нужна для ввода с клавиатуры фамилии и имя пользователя перед началом тестирования. Четвертая форма случит для отображения результатов тестирования пользователей программы (рисунок 3.8).





Рисунок 3.6. Формы выбора и чтения лекций в режиме конструктора





Рисунок 3.7. Форма тестирования студентов





Рисунок 3.8. Формы программы в режиме конструктора




Эксплуатационная часть



4.1 Требования к вычислительной системе



Операционная система Windows XP/Vista/7 32/64 bit.

Наличие установленной программы Microsoft Net Framework 2.0 и выше. При отсутствии этой утилиты система работать не будет.

Тип процессора – Pentium Celeron 1,6 ГГц и выше.

Объем оперативного запоминающего устройства – 512 Мб и более.

Объем свободного места на жестком диске – 60 Мб.



4.2 Установка программного продукта



Установка данного программного продукта не требуется.



4.3 Инструкция по эксплуатации



Автоматизированная обучающая система по дисциплине «Программирование» поставляется на лицензионном диске.

Вставьте лицензионный диск в дисковод.

Откройте папку «Мой компьютер».

В папке «Мой компьютер» откройте диск с программой.

Запустите программу, кликнув по ярлыке запуска.

Откроется окно с выбором тем лекций.

Выберете тему лекции и нажмите кнопку «Выбрать».

В окне появится лекция по выбранной теме.

Далее вы можете вернуться к выбору лекций, нажав ссылку «Вернуться к выбору лекций» или пройти тест, нажав кнопку «Тест».

Перед началом теста введите имя и фамилию с клавиатуры и нажмите кнопу «Начать тест».

Запустится тест. Выберете правильный, на ваш взгляд вариант ответа и нажмите кнопку «Следующий вопрос». В тесте есть вопросы с многовариантным ответом. Выберете несколько, правильных вариантов и нажмите кнопу «Следующий вопрос».

Когда тест будет пройден, появится диалоговое окно с результатами решения и вопросом: «Перейти к выбору лекций». Если нажать кнопку «Да» то появится окно с выбором лекции, если нажать кнопку «Нет», то программа завершит работу.

В окне с выбором лекции есть ссылка «Посмотреть результаты». Если перейти по этой ссылке можно увидеть все результаты решения тестов, а именно число прохождения теста, фамилию и имя тестируемого и его результат решения.



4.4 Демонстрационная часть работы продукта.



Запускаем программу с лазерного диска при двойном щелчке по ярлыку запуска.

На рисунке 4.1 показано, что при запуске программы пользователю будет предложено выбрать тему для самостоятельного изучения.





Рисунок 4.1. Выбор темы




Рисунок 4.2. Лекция по теме.



На рисунке 4.2 приведен пример лекции. После ознакомления с лекционным материалом по теме, пользователь может пройти тест.





Рисунок 4.3. Ввод информации о студенте перед началом тестирования



Перед прохождением тестирования нужно ввести имя и фамилию пользователя системы. В каждом тесте по десять вопросов (рисунок 4.3).





Рисунок 4.4. Вопрос с многовариантным ответом




Рисунок 4.5. Вопрос с одним вариантом ответа



В тесте встречаются вопросы с многовариантными (рисунок 4.4) и одновариантным (рисунок 4.5) ответами.





Рисунок 4.5. Результаты тестирования



После прохождения теста пользователь сможет увидеть результаты решения. На рисунке 4.5 показан результат решения одного из тестов. Количество правильных ответов – четыре из десяти возможных. Пользователю предложена дальнейшая работа с программой. Для этого на вопрос «Перейти к выбору лекций нажать кнопку «Да», или завершить работу с программой, нажав кнопку «Нет».






Рисунок 4.6. Результаты тестирования



Все результаты тестов можно посмотреть после тестирования (рисунок 4.6). В таблице результатов отражено дата прохождения теста, фамилия, имя студента и его результат.




Экспериментальная часть



Серьезные приложения должны надежным образом обрабатывать исключительные ситуации, сохранять, если возможно, выполнение программы или, если это невозможно, аккуратно ее завершать. Написание кода, обрабатывающего исключительные ситуации, всегда было непростой задачей, и являлось источником дополнительных ошибок [16].

Проведем эксперимент по созданию исключительной ситуации с электронным учебником по дисциплине «Программирование».

Пусть файл с результатами тестирования удалили студенты из папки с программой. Запустим программу (рисунок 5.1).





Рисунок 5.1. Запуск программы в исключительной ситуации



Программа запустилась без ошибок и системных сообщений. Теперь попробуем посмотреть результаты тестирования прошлых студентов (рисунок 5.2).






Рисунок 5.2. Поведение программы в исключительной ситуации



К сожалению, результаты прошлого тестирования студентов утеряны. Программа в корневом каталоге создала новый файл и при повторном тестировании будет произведена запись результатов в этот файл. Значит, тестирование можно провести заново и результаты тестирования будут фиксироваться и сохраняться.

Проведем еще один эксперимент по созданию исключительной ситуации с электронным учебником по дисциплине «Программирование». Теперь студенты удалили файлы с лекциями по темам. При попытке запуска лекций программа выдаст системную ошибку (рисунок 5.3).





Рисунок 5.3. Критическая ошибка программы




Экономическая часть



Программный продукт в данной курсовой работе будет выполняться индивидуальным разработчиком (студенткой). Решение данной задачи будет проводиться на ЭВМ. Общее ознакомление с предметной областью проходило до решения об изучении и возможности создания программного продукта для решения задач предметной области (определяется техническим заданием).

Предполагаемая продолжительность разработки программного комплекса была выбрана в количестве 45 дней. Это позволит не затягивать с выходом продукта и в тоже время не сильно сокращает сроки, что обеспечивает нормальную стоимость работ и желаемую прибыль.



6.1 Определение вида и длительности работ



Продолжительности этапов разработки программного комплекса сведены в таблицу 6.1.

Продолжительность первого этапа и его работ определяется по результатам предварительного исследования. Общая трудоемкость этого этапа составляет 18% от всего времени. Т1=Траб/100*18 =8 дней.

Продолжительность остальных этапов и работ определяется по методу удельных весов:



(6.1),



где Т1, Т2 – соответственно, определяемая трудоемкость этапа и трудоемкость известного этапа; У1, У2 – соответственно, удельный вес тех же этапов в общей трудоемкости разработки программного комплекса.

Этапы и трудоемкость работ показаны в таблице 6.1.


Таблица 6.1 Продолжительность этапов разработки программного комплекса

№ этапа

Относительная доля времени, %

Продолжительность, дни

1

18

8

2

40

18

3

30

13,5

4

12

5,5

Всего:

100

45



















Рисунок 6.1. Этапы и трудоемкость работ



Оценивается наиболее вероятная продолжительность работ по формуле



= 8(6.2),



где Р – число исполнителей на данной работе.

Коэффициент перехода рабочих дней в календарные дни  = 45 / 365 = 0.12.

Ожидаемое время рассчитывается по формуле:




=4(6.3),



гдеtожд – трудоемкость выполнения отдельных видов работ, человеко-дни; tmin- минимально возможная трудоемкость выполнения отдельных видов работ, дни;tmax – максимально возможная трудоемкость выполнения отдельных видов работ, дни;tнв – наиболее вероятная трудоемкость выполнения отдельных видов работ, дни.

tmax = 15

tmin = 10

Итог: ожидаемое время работы над проектом 37 дней не превышает изначально предполагаемую продолжительность работ.



6.2 Определение заработной платы исполнителей



Было принято решение о том, что заработная плата не будет начисляться, так как исполнитель работы один. Т.е. доход исполнителя будет равен прибыли, полученной от продажи программного продукта.

Без начисления заработной платы затраты на создание программного продукта существенно сократятся.



6.3 Составление сметы затрат



Сметная стоимость определяется статьями калькуляции.

Накладные расходы.

Прочие расходы: диски и упаковка (100 шт.). Диски: 100 шт. по 7 рублей, полиграфические услуги: 100шт. упаковок по 10 руб. Итого 1700 руб.

Смета затрат на выполнение представлена в таблице 6.3.




Таблица 6.2 Смета затрат на выполнение

Наименование статьи затрат

Сумма, руб.

Удельный вес статьи, %

Основание для расчета

Накладные расходы

500

23

Анализ затрат

Прочие расходы

1700

77

Анализ затрат

Итого

2200

100

—



6.4 Расчет предполагаемой прибыли



Итак, общие затраты на создания программного продукта составляют 2200 рублей. Исходя из 50% рентабельности, сумму, которую мы хотим выручить, рассчитаем по формуле



С = З + П = 2200 + 1100  3300 руб. (6.4)



Эта сумма без налога на добавленную стоимость (НДС). Планируется ее получить от продажи 100 программных продуктов. Анализ рынка говорит, что реализовать такое количество не составит особых проблем. Исходя из этого, посчитаем цену одного программного комплекса без учета НДС



Ц = С / 5 = 3300 / 100 = 33 руб.(6.5)



Теперь посчитаем окончательную цену одного программного продукта с учетом НДС 18%.



НДС = ((З + П) / 100) * 0.18 = 33 * 0.18  6 руб.(6.6)



С учетом НДС цена программного продукта составляет:



Цпп = Ц + НДС  40 руб.(6.7)


Процентное соотношение себестоимости, прибыли и налогов для ста комплектов продукта представлены на рисунке 2.





Рисунок 6.2. Процентное соотношение себестоимости, прибыли и налогов для 100 комплектов продукта



На рисунке 6.2 показана динамика роста прибыли от продажи программного продукта относительно числа экземпляров.





Рисунок 6.3. Динамика роста прибыли от продажи ПП




6.5 Экономическая целесообразность разработки



При разработке программного продукта значительное внимание уделяется экономическому обоснованию необходимости проведения данного комплекса работ по его созданию.

Стоимость конечного продукта для потребителя не высока всего 40 руб. Разработка данного программного продукта ведется для образовательных учреждений. Поэтому цена одного лицензионного диска очень важна. Чем ниже цена, тем больше вероятность, что программный продукт купят. При цене всего 40 рублей, диски с программой быстро купят. Покупателями станут преподаватели вузов и учителя других коммерческих учебных заведений. При продаже 100 лицензионных дисков, разработка программы не просто окупится, а принесет прибыль в размере 1100 рублей. Если при продаже всех лицензионных дисков с программой, на рынке все еще будет спрос, то при дополнительном выпуске лицензионных копий, при минимальных затратах, мы получим еще какой-то процент прибыли.

В итоге можно сделать вывод, что разработка данного программного продукта целесообразна.






Заключение



Данная автоматизированная система по дисциплине «Программирование», разработанная в ходе выполнения данной работы, является актуальным на сегодняшний день, так как многие пользователи нуждаются в автоматизированном простом и быстром средстве обучения. Программа может быть успешно внедрена в учебный процесс, что соответственно повысит качество знаний. С экономической точки зрения внедрения целесообразно.

Программа соответствует все требованиям, предъявленным к ней. В нее входит: лекционный материал по дисциплине «Программирование», тестовые задания по темам лекций, результаты тестирования записываются в файл, который потом можно посмотреть в программе.

Разработанный учебник устойчиво выполняет все свои функции, что делает его применимым в процессе обучения. Но теперь стоит задача сделать учебник еще более совершенным и более расширенным.




Список литературы



ГОСТ 7.32-2001. Отчет о научно-исследовательской работе. Структура и правила оформления, Введен 01.01.2001. М.: Изд-во стандартов, 2001. 9 с.

ГОСТ 2.105-95. Общие требования к текстовым документам, Введен 02.05.1995. М.: Изд-во стандартов, 1995. 10 с.

ГОСТ Р 7.0.5-2008. Библиографическая ссылка. Общие требования и правила составления, Введен 15.05.2008. М.: Изд-во стандартов, 2008. 8 с.

ГОСТ 7.1-2003. Библиографическая запись. Библиографическое описание. Общие требования и правила составления, Введен 01.01.2003. М.: Изд-во стандартов, 2003. 11 с.

ГОСТ 7.80-2000. Библиографическая запись. Заголовок. Общие требования и правила составления, Введен 01.01.2000. М.: Изд-во стандартов, 2000. 9 с.

ГОСТ 19.201-78. Техническое задание. Требования к содержанию и оформлению. Введен 18.12.1978. М.: Изд-во стандартов, 1978. 11 с.

Автоматизированные обучающие системы [Электронный ресурс] URL: http://www.tspu.tula.ru/ivt/old_site/umr/nit/lect/lect4.htm (Дата обращения: 14.11.2010).

Википедия. Свободная энциклопедия. Официальный сайт. URL http://ru.wikipedia.org/wiki/Алгоритм, (Дата обращения: 14.11.2010).

Горюнова М.А., Горюхова Т.В., Кондратьева И.Н., Рубашкин Д.Д. Электронные образовательные издания. Учебно-методическое пособие. СПб.: ЛОИРО, 2003.

Интернет университет информационных технологий: Официальный сайт. URL: http://www.intuit.ru (Дата обращения: 14.11.2010).

Могилёв А. В. Информатика. – М.: «Академия»,1999.

Пак Н.И. Нелинейные технологии обучения в условиях информатизации: Учебное пособие. Красноярск: РИО КГПУ, 2004

Олейников Б.В. Проблемы и особенности преподавания информатики и программирования в вузе с учетом современных требований. Красноярский государственный университет, 1997. URL: http://www.nsu.ru/archive/conf/nit/97/c5/node12.html (Дата обращения: 14.11.2010).

Федеральный интернет-экзамен в сфере профессионального образования: Официальный сайт. URL: http://www.fepo.ru (Дата обращения: 14.11.2010).

Чистохвалов В.Н. Проблемы организации учебного процесса в вузе в системе зачетных единиц. Российский университет дружбы народов (РУДН), 2006. URL:http://www.rudn.ru/?pagec=293 (Дата обращения: 14.11.2010).

Шилдт Г. С# Учебный курс. Программирование. СПб.: Питер, 2003.

Электронный словарь: Официальный сайт. URL: http://chtotakoe.info/articles/elektronnyj_uchebnik_858.html (Дата обращения: 14.11.2010)




Приложение



Приложение 1



Код формы с лекциями

namespace Kursach

{public enum Modes { Lecture, ChooseLecture }

public partial class LecturesForm : Form

{

private ChoiseButtons buttons;

private DirectoryInfo[] lecturesDirectories;

private DirectoryInfo currentLectureDirectory;

private Point startPosition = new Point(5, 15);

private Size buttonSize = new Size(200, 30);

private int distance = 5;

private Modes currentMode;

public LecturesForm(string folderPath)

{

InitializeComponent();

buttons = new ChoiseButtons(ButtonTypes.RadioButton, startPosition.X, startPosition.Y, buttonSize.Width, buttonSize.Height, distance);

DirectoryInfo directory = new DirectoryInfo(folderPath);

lecturesDirectories = directory.GetDirectories();

foreach (DirectoryInfo lectureDirectory in lecturesDirectories)

{

groupBoxLectures.Controls.Add(buttons.AddNextButton(lectureDirectory.Name));

}

SetChooseLectureMode();

}

private void button1_Click(object sender, EventArgs e)

{

if (currentMode == Modes.ChooseLecture)

{

List<int> selected = buttons.GetSelected();

if (selected.Count == 0)

{

MessageBox.Show("Выберите лекцию!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Information);

return;

}

else

{

currentLectureDirectory = lecturesDirectories[selected[0]];

try

{

FileStream fileStream = new FileStream(currentLectureDirectory.FullName + "\\lecture", FileMode.Open);

StreamReader streamReader = new StreamReader(fileStream);

richTextBoxLecture.Text = streamReader.ReadToEnd();

streamReader.Close();

fileStream.Close();

}

catch

{

TestForm.ShowCriticalErrorMessage("Не найден файл с лекцией\nПриложение будет закрыто");

}

}

SetLecturesMode();

}

else

{

InitForm form = new InitForm();

if (form.ShowDialog() == DialogResult.OK)

{

new TestForm(currentLectureDirectory.FullName, currentLectureDirectory.Name, form.UserName, this).Show();

}

}

}

private void SetLecturesMode()

{

currentMode = Modes.Lecture;

buttonChoose.Text = "Тест";

richTextBoxLecture.Visible = true;

linkLabelResults.Visible = false;

groupBoxLectures.Visible = false;

richTextBoxLecture.Dock = DockStyle.Fill;

linkLabelBack.Visible = true;

this.MaximumSize = new Size();

this.MinimumSize = new Size();

this.Size = new Size(739, 419);

this.MaximizeBox = true;

this.Text = currentLectureDirectory.Name;

buttonChoose.Select();

}

private void SetChooseLectureMode()

{

currentMode = Modes.ChooseLecture;

linkLabelResults.Visible = true;

buttonChoose.Text = "Выбрать";

richTextBoxLecture.Visible = false;

groupBoxLectures.Visible = true;

linkLabelBack.Visible = false;

this.Text = "Выбор лекции";

this.MaximumSize = new Size(739, 419);

this.MinimumSize = new Size(739, 419);

this.Size = new Size(739, 419);

this.MaximizeBox = false;

}

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

{

SetChooseLectureMode();

}

private void LecturesForm_VisibleChanged(object sender, EventArgs e)

{

if (Visible == true)

{

SetChooseLectureMode();

}

}

private void linkLabel1_LinkClicked_1(object sender, LinkLabelLinkClickedEventArgs e)

{

new ResultsForm().ShowDialog();

}

private void panel2_Paint(object sender, PaintEventArgs e)

{

}

}

}

Код тестовой формы

namespace Kursach

{

public partial class TestForm : Form

{

private ChoiseButtons buttons;

private Test test;

private string userName;

private List<int> correctAnswers = new List<int>();

private Point startPosition = new Point(5, 15);

private Size buttonSize = new Size(200, 30);

private int distance = 5;

private Form parentForm;

public TestForm(string path, string testName, string userName, Form formToClose)

{

parentForm = formToClose;

formToClose.Hide();

InitializeComponent();

this.userName = userName;

try

{

test = new Test(testName, path);

}

catch (Exception)

{

ShowCriticalErrorMessage("Один из файлов тестов имеет неверный формат\nПриложение будет закрыто");

}

test.BeginTest();

Question question = test.CurrentQuestion;

buttons = new ChoiseButtons(ButtonTypes.CheckboxButton, startPosition.X, startPosition.Y, buttonSize.Width, buttonSize.Height, distance);

InitQuestionWindow(question);

questionsGroupBox.Select();

}

private void InitQuestionWindow(Question question)

{

ButtonTypes type = (question.CorrectAnswers.Count != 1) ? ButtonTypes.CheckboxButton : ButtonTypes.RadioButton;

buttons.Reset(type);

questionsGroupBox.Controls.Clear();

this.Text = question.QuestonName;

this.textBoxTest.Text = question.QuestonText;

for (int i = 0; i < question.Answers.Count; i++)

{

buttons.AddNextButton(question.Answers[i + 1]);

questionsGroupBox.Controls.Add(buttons[i]);

}

}

public static void ShowCriticalErrorMessage(string message)

{

ShowErrorMessage(message, "Критическая ошибка");

Environment.Exit(1);

}

private static void ShowInfoMessage(string info, string message)

{

ShowMessage(message, info, MessageBoxButtons.OK, MessageBoxIcon.Information);

}

private static void ShowErrorMessage(string info, string message)

{

ShowMessage(message, info, MessageBoxButtons.OK, MessageBoxIcon.Error);

}

private static void ShowMessage(string info, string message, MessageBoxButtons buttons, MessageBoxIcon icon)

{

MessageBox.Show(message, info, buttons, icon);

}

private void buttonNextQuestion_Click(object sender, EventArgs e)

{

List<int> selected = buttons.GetSelected();

bool isCorrect = false;

if (selected.Count == test.CurrentQuestion.CorrectAnswers.Count)

{

isCorrect = true;

foreach (int correctQuestionNumber in test.CurrentQuestion.CorrectAnswers)

{

if (!selected.Contains(correctQuestionNumber - 1))

{

isCorrect = false;

}

}

}

if (isCorrect) correctAnswers.Add(test.CurrentQuestion.QuestionNumber);

if (!test.IsTestEnded)

{

InitQuestionWindow(test.GoToNextQuestion());

}

else

{

EndTest();

}

}

private void EndTest()

{

FileStream testFileStream = new FileStream("data\\results.txt", FileMode.Append);

StreamWriter testStreamWriter = new StreamWriter(testFileStream);

testStreamWriter.WriteLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "\t" + test.TestName + "\t" + userName + ": " + correctAnswers.Count + "/" + test.QuestionsCount);

testStreamWriter.Close();

testFileStream.Close();

DialogResult userDecision = MessageBox.Show("Ваш результат - " + correctAnswers.Count + "/" + test.QuestionsCount + "\nПерейти к выбору лекций?", "Тест окончен", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (userDecision == System.Windows.Forms.DialogResult.Yes)

{

parentForm.Show();

this.Close();

}

else

{

Environment.Exit(0);

}

}

private void SetChooseLectureMode()

{

questionsGroupBox.Visible = false;

buttonNextQuestion.Visible = false;

textBoxTest.Visible = false;

}

private void TestForm_FormClosing(object sender, FormClosingEventArgs e)

{

if (parentForm.Visible == false)

{

parentForm.Close();

}

}

private void TestForm_Load(object sender, EventArgs e)

{

}

}

}

Код формы результатов

namespace Kursach

{

public partial class ResultsForm : Form

{

public ResultsForm()

{

InitializeComponent();

try

{

FileStream fileStream = new FileStream("data\\results.txt", FileMode.Open);

StreamReader streamReader = new StreamReader(fileStream);

textBox1.Text = streamReader.ReadToEnd();

this.Select();

streamReader.Close();

fileStream.Close();

}

catch

{

textBox1.Text = "Никто не проходил тесты";

}

}

private void textBox1_TextChanged(object sender, EventArgs e)

{

}

}

}

Код информационной формы

namespace Kursach

{

public partial class InitForm : Form

{

public InitForm()

{

InitializeComponent();

}

public string UserName

{

get { return textBoxName.Text + " " + textBoxSurname.Text; }

}

private void buttonBeginTest_Click(object sender, EventArgs e)

{

DialogResult = System.Windows.Forms.DialogResult.OK;

}

private void InitForm_Load(object sender, EventArgs e)

{

}

}

}