ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКИЙ ХИМИКО-ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
им.Д.И. Менделеева
Новомосковский институт (филиал)
Кафедра "Вычислительная техника и информационные технологии"
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К ДИПЛОМНОЙ РАБОТЕ
НА ТЕМУ:
Исследование использования программ дистанционного обучения для подготовки учебно-методической документации
Зав. кафедрой: Воробьев В.И.
Руководитель: Прохоров В.С.
Н/контролер: Прохоров В.С.
Студент: Никишин А.Е.
Группа:
АС-00-1
Консультанты:
По экономической части: Лобковская О.З.
По безопасности жизнедеятельности: Фандеев Н.П.
г. Новомосковск 2005 г.
Реферат
Пояснительная записка 143 с., 36 рис., 23 табл., 21 источник, 4 прил.
Дистанционное обучение (до), интернет-технология до, программа "sunrav testofficepro", web-приложение, электронный учебник, система тестирования, web-сервер apache, язык web-программирования php 4, сервер баз данных mysql, средство проектирования web-узлов macromedia dreamweaver mx 2004, инфологическая модель предметной области, даталогическая модель предметной области.
В дипломной работе приведено исследование программ дистанционного обучения для подготовки учебно-методической документации, подробно исследована программа SunRav TestOfficePro.
Целью работы является выявление недостатков программ дистанционного обучения и разработка самостоятельного web-приложения "R@Learning Institute", позволяющего организовать дистанционное обучения студентов кафедры "ВТИТ" НИ РХТУ.
Приложение написано на языке web-программирования PHP 4. Его взаимодействие с базой данных MySQL организовано средствами web-сервера Apache. Выбор данных средств программирования обусловлен их бесплатностью, широкими возможностями и популярностью. Приложение предполагает обучение и тестирование студентов с использованием дистанционных методов, интерактивное общение студентов и преподавателей, а также представление различной информации для студентов, относящейся к кафедре ВТИТ на страницах web-приложения. Доступ к web-сайту можно получить с любого клиентского компьютера с установленным Интернет-браузером.
Для работы с приложением необходим доступ в сеть Интернет. Система не требует настройки, имеет удобный web-интерфейс пользователя и учитывает специфические особенности системы дистанционного обучения.
Содержание
1.1 Понятие дистанционного обучения
1.2 Особенности дистанционного обучения
1.3 Методика применения дистанционного обучения
1.4 Технологии дистанционного обучения
1.4.3 Сетевая (интернет) технология
1.4.4 Сравнение технологий дистанционного обучения
1.5 Программы дистанционного обучения
1.5.1 Программа "eLearning Server 3000"
1.5.2 Программа "Lotus LearningSpace"
1.5.4 Программа "SunRav TestOfficePro"
1.6 Представление информации в дистанционном обучении
1.7 Проблемы использования программ дистанционного обучения и методы их решения
1.7.1 Проблемы использования программ дистанционного обучения
1.7.2 Обзор методов решения проблем дистанционного обучения и обоснование выбора решения
1.8 Преимущества использования интернет-технологии
1.9 Описание предметной области
1.10.1 Основные требования к разрабатываемому ПО
1.10.2 Дополнительные требования к разрабатываемому ПО
1.10.3 Требования к оформлению учебных материалов web-приложения
1.11 Выбор программных средств
1.11.1 Преимущества использования PHP в сравнении с другими языками
1.11.2 Сервер баз данных MySQL и его особенности
1.11.3 Выбор средства проектирования web-узлов
2.1 Построение инфологической модели предметной области
2.2 Построение даталогической модели предметной области
2.3 Тонкости установки и настройки аппаратно-программного комплекса
2.3.2 Установка и настройка Apache
2.3.3 Установка РНР и настройка Apache для работы с РНР
2.4 Работа в Macromedia Dreamweaver MX 2004
2.5 Создание электронных учебных материалов для ДО
2.6.1 Разработка пользовательского интерфейса
2.6.2 Использование каскадных таблиц стилей CSS
2.6.3 Файловая структура приложения
2.6.4 Формирование страниц приложения
2.6.5 Передача значений форм в другие страницы
2.6.6 Взаимодействие приложения с web-сервером
2.6.7 Создание таблиц базы данных
2.6.8 Функции для работы с базами данных
2.6.9 Использование механизма Cookies
2.6.10 Описание алгоритма работы web-приложения
2.7 Запуск и описание работы с web-приложением
2.8 Предложения по размещению приложения в сети Интернет
3.1 Определение трудоемкости разработки приложения
3.2 Расчет затрат на разработку приложения
3.3 Определение возможной цены разработанного приложения
3.4 Экономическое обоснование выбора комплекса технических и программных средств
3.5 Описание экономического и социального эффекта от разработки приложения
4.Техника безопасности и охрана окружающей среды
4.1.1 Пожароопасные и токсичные свойства веществ и материалов, применяемых при выполнении работы
4.1.2 Характеристика потенциальных опасностей и вредностей
4.1.3 Категорирование помещения аудитории
4.1.4 Санитарно-гигиеническая характеристика помещения
4.1.5 Условия безопасности при проведении экспериментальной части работы. Электробезопасность
4.1.6 Пожарная безопасность и средства пожаротушения
4.2.1 Определение пожарной нагрузки помещения (В1-В4)
4.2.2 Освещение производственных помещений
Список использованных источников
Введение
Информационные технологии проникли и в сферу образования. Дистанционное обучение с использованием интернет-технологий является формой получения образования, наряду с очной и заочной. Международная сеть Интернет предоставляет большие возможности для учреждений образования. Распространенная, одна из наиболее дешевых, надежная, она предоставляет наиболее богатые возможности для организации дистанционного обучения. Интернет предоставляет несколько типов сервисов, на базе которых имеется возможность установки системы поддержки дистанционного обучения. В дистанционном образовательном процессе используются лучшие традиционные и инновационные методы, средства и формы обучения, основанные на компьютерных и телекоммуникационных технологиях.
В системах дистанционного обучения используются все виды информационных технологий, но преимущественно новые информационные технологии, средствами которых являются компьютеры, компьютерные сети, мультимедиа системы и т.д.
В настоящее время большинство специалистов в области образования возлагают надежды на современные персональные компьютеры, рассчитывая с их помощью существенно повысить качество обучения в массовых масштабах, особенно при организации самостоятельной работы и внешнем контроле. Но при осуществлении этой задачи возникает множество проблем. Одна из них состоит в том, что в разработках автоматизированных систем дистанционного обучения (АСДО) нет никакой системы, никакого объединяющего начала, вследствие чего все АСДО являются уникальными, разрозненными, не сопряженными друг с другом ни по каким параметрам. Отсюда следует дублирование разработок электронных учебников, трудности организации контроля знаний, а также неясность вопросов, относящихся к дидактической эффективности компьютерного обучения вообще, слабая интеграция традиционных учебников с компьютерными и многие другие. Все эти трудности, с которыми приходится сталкиваться разработчикам любых компьютерных обучающих систем, составляют "узкое" место в компьютеризации обучения. Не устранив его, трудно надеяться на успешное внедрение системы. Совершенно очевидно, что эффективность разработки системы непосредственно зависит от того, насколько успешно будут преодолены трудности.
Основу дистанционного обучения составляет целенаправленная и контролируемая самостоятельная работа студента. Он может учиться в удобном для себя месте, по индивидуальному расписанию, получая всю необходимую информацию в удобной для него форме.
Информация в дистанционном обучении должна преподноситься на уровне доступном и понятном большинству пользователей. Удобным способом предоставления информации является электронный учебник. Существует достаточно много различных программ для создания электронных учебников. Каждая из них индивидуальна и имеет свои плюсы и минусы, но все они направлены на подготовку материалов, которые удобным способом предоставляются пользователю. Самым удобным и оперативным средством предоставления информации в Интернет является web-сайт. Интерактивная система проверки знаний, форум, чат, почтовая рассылка, гостевая книга, лента новостей - все это неотъемлемые части современного web-сайта дистанционного обучения. Для создания его просто не обойтись без языка web-программирования РНР. Конечно, и форум, и гостевую книгу можно написать с помощью других средств, например, на языке Perl, но РНР позволяет написать Internet-приложение любой сложности с минимальными затратами: РНР, как и все вспомогательное программное обеспечение (web-сервер Apache и сервер баз данных MySQL), бесплатно, а разработка самого приложения не отнимет много времени. Иногда разработка приложения занимает меньше времени, чем разработка дизайна. И, конечно же, ни один серьезный Internet-проект не обходится без баз данных. Сервер MySQL является одним из самых удачных реализаций SQL-серверов. Он прекрасно взаимодействует с языком PHP, и предоставляет достаточно возможностей для реализации системы проверки знаний.
Одним из важных вопросов дистанционного обучения является возможность интерактивного общения обучаемого и обучающего. Хороший web-сайт должен предоставлять возможности для такого общения. Наиболее распространенными средствами являются электронный учебник, подсистема тестирования и почтовая рассылка, а также форум и чат. Грамотность, доступность и удобство их реализации в большой степени определяют интерес студентов к форме дистанционного обучения в целом.
Дистанционное обучение перспективно, оно постоянно совершенствуется, внедряются новые технологии. Во многих странах дистанционное обучение является официальной формой образования. "Дистанционный" диплом в некоторых случаях ценится гораздо больше, чем традиционный. Известно, что многие университеты, предоставляющие услуги дистанционного обучения, в своих дипломах не упоминают каким способом получено образование - дистанционным или традиционным. Это говорит о том, что качество дистанционных образовательных программ ничем не уступает, а во многом даже и превосходит традиционные методы обучения.
1. Теоретическая часть
1.1 Понятие дистанционного обучения
Обучение - это целеустремленный, систематический, организованный процесс вооружения знаниями, умениями, навыками, а образование - это результат обучения, воспитания и развития личности.
Дистанционное обучение (ДО) является формой получения образования, наряду с очной и заочной, при которой в образовательном процессе используются лучшие традиционные и инновационные методы, средства и формы обучения, основанные на компьютерных и телекоммуникационных технологиях [1].
Основу образовательного процесса при ДО составляет целенаправленная и контролируемая интенсивная самостоятельная работа обучаемого, который может учиться в удобном для себя месте, по индивидуальному расписанию, имея при себе комплект специальных средств обучения и согласованную возможность контакта с преподавателем по телефону, электронной и обычной почте, а также очно.
ДО представляет собой целенаправленный интерактивный, асинхронный процесс взаимодействия субъектов и объектов обучения между собой и со средствами обучения, причем процесс обучения индифферентен к их пространственному расположению.
В системе образования ДО отвечает принципу гуманистичности, согласно которому никто не должен быть лишен возможности учиться по причине бедности, географической или временной изолированности, социальной незащищенности и невозможности посещать образовательные учреждения в силу физических недостатков или занятости производственными и личными делами. Являясь следствием объективного процесса информатизации общества и образования и, вбирая в себя лучшие черты других форм, ДО войдет в ХХI век как наиболее перспективная, синтетическая, гуманистическая, интегральная форма получения образования.
Дистанционное обучение включает в себя инструментальные средства, учебно-методическое обеспечение, программное обеспечение, техническое обеспечение. Инструментальные средства ДО - это программное и информационное обеспечение, используемое для представления учебных материалов в информационно-образовательной среде ДО. Учебно-методическое обеспечение ДО - это база учебных материалов, система управления этой базой, методики ДО, тесты, рекомендации по технологии дистанционного обучения с учетом дидактических и психологических аспектов. Программное обеспечение ДО - это системные и прикладные программы и программные комплексы, используемые в том или ином виде дистанционного обучения, включая инструментальные среды для создания обучающих программ и программных комплексов. Техническое обеспечение ДО - это используемое в информационно-образовательной среде ДО вычислительное, телекоммуникационное, cпутниковое, телевизионное, периферийное, множительное, офисное и другое оборудование, а также каналы передачи данных.
Существуют и другие трактовки понятий дистанционного обучения и образования, отражающие многообразие подходов к их пониманию:
Дистанционное обучение - особая, совершенная форма, сочетающая элементы очного, очно-заочного, заочного и вечернего обучения на основе новых информационных технологий и систем мультимедиа. Современные средства телекоммуникаций и электронных изданий позволяют преодолеть недостатки традиционных форм обучения, сохраняя при этом все их достоинства.
Дистанционное обучение - комплекс образовательных услуг, предоставляемых широким слоям населения в стране и за рубежом с помощью специализированной информационной образовательной среды, базирующейся на средствах обмена учебной информацией на расстоянии (спутниковое телевидение, радио, компьютерная связь и т.п.). Информационно-образовательная среда ДО представляет собой системно-организованную совокупность средств передачи данных, информационных ресурсов, протоколов взаимодействия, аппаратно-программного и организационно-методического обеспечения, ориентированную на удовлетворение образовательных потребностей пользователей. ДО является одной из форм непрерывного образования, которое призвано реализовать права человека на образование и получение информации.
Название дистанционного обучения говорит само за себя - обучение на расстоянии. Это не обязательно подразумевает сотни километров между преподавателем и студентом. Дистанционное обучение - это прежде всего отсутствие необходимости ходить в какое-либо учебное заведение в строго предписанное расписанием время, выполнять программу курса в установленном порядке. ДО обеспечивает возможность учиться тогда, когда Вам это удобно, в том темпе и в такие сроки, которые вы выбираете сами. При этом не нужно тратить время на дорогу. ДО в современном мире осуществляется с помощью таких технологий, как Интернет в голосовом и текстовом режимах, e-mail, телефонная и факсимильная связь, видеоконференции и, конечно же, традиционная пересылка учебных материалов обычной почтой (печатных, аудио, видео и электронных учебных материалов). Эти технологии образуют связующее звено между студентом и преподавателем, которых могут разделять тысячи километров, и обеспечивают возможность ежедневного общения.
Учиться дистанционно можно самостоятельно и в on-line классе. Вы имеете возможность сами выбрать, когда учиться - утром или вечером, зимой или весной. вы можете выбирать, заниматься ли Вам дома или в одном из центров дистанционного обучения. ДО может быть также эффективно, как и традиционная форма обучения, особенно, если технологии и метод обучения подобраны адекватно задачам, желаниям и возможностям студента и преподавателя. Особенно эффективными являются общение между студентами и своевременные контакты преподавателей и студентов.
Эффективность ДО достигается путем наиболее полного и точного согласования требований и возможностей студента. Учитываются все ограничения, с которыми сталкиваются преподаватель и студент. Обычно, обучение проводится с использованием нескольких средств общения одновременно, что позволяет студенту одновременно с обучением быть в курсе всех технологических новинок. Эффективность дистанционного обучения основана на том, что студенты сами чувствуют необходимость дальнейшего обучения, а не подвергаются давлению родителей, обстоятельств, начальства и пр. Следует также заметить, что эффект немало зависит от того, насколько регулярно занимается студент. Это объясняется тем, что невозможно сформировать систему знаний при неравномерной учебной нагрузке. Однако при этом жесткая отчетность - это важный аспект системы ДО. За каждый пройденный раздел курса студент должен отчитываться перед преподавателем и пока этого не произойдет, двигаться в обучении дальше студент не сможет.
Безусловно, система неидеальна. Прежде всего, затруднена идентификация студента - проверить, кто сдает экзамен, пока невозможно. Однако стараясь исправлять недостатки, учебные заведения, практикующие ДО, включают в курс и обязательную очную сессию, в ходе которой студенты сдают обязательные очные экзамены, предъявляя документ, подтверждающий личность сдающего экзамен. Кроме того, для организации учебных и экзаменационных телеконференций бывает недостаточно пропускной способности телефонных линий разных стран, это необходимо учитывать. Еще одна особенность, которая может негативно восприниматься студентами, в системе ДО исчезает непосредственный контакт между преподавателем и студентом.
1.2 Особенности дистанционного обучения
Анализ отечественной и зарубежной теории и практики ДО позволяет отметить характерные особенности, присущие ДО [1]. Среди них:
Гибкость. Обучающиеся, занимаются в удобное для себя время, в удобном месте и в удобном темпе. Каждый может учится столько, сколько ему лично необходимо для освоения курса дисциплины и получения необходимых знаний по выбранным дисциплинам.
Модульность. В основу программ ДО закладывается модульный принцип. Каждая отдельная дисциплина (учебный курс) который освоен обучаемся, адекватен по содержанию определенной предметной области. Это позволяет из набора независимых учебных курсов формировать учебный план, отвечающий индивидуальным или групповым потребностям.
Параллельность. Обучение может проводиться при совмещении основной профессиональной деятельности с учебой, т.е. "без отрыва от производства".
Дальнодействие. Расстояние от места нахождения обучающегося до образовательного учреждения (при условии качественной работы связи) не является препятствием для эффективного образовательного процесса.
Асинхронность. Подразумевает тот факт, что в процессе обучения обучающий и обучаемый работают по удобному для каждого расписанию.
Охват. Эту особенность иногда называют также "массовостью". Количество обучающихся не является критичным параметром.
Рентабельность. Под этой особенностью подразумевается экономическая эффективность ДО.
Преподаватель. Речь идет о новой роли и функциях преподавателя.
Обучающийся. Требования к обучающемуся существенно отличаются от традиционных.
НИТ (Новые информационные технологии). В СДО используются все виды информационных технологий, но преимущественно новые информационные технологии, средствами которых являются компьютеры, компьютерные сети, мультимедиа системы и т.д.
Социальность. ДО в определенной степени снимает социальную напряженность, обеспечивая равную возможность получения образования независимо от места проживания и материальных условий.
Интернациональность. ДО обеспечивает удобную возможность экспорта и импорта образовательных услуг.
Перечисленные особенности определяют и преимущества ДО перед другими формами получения образования, но, одновременно предъявляя определенные специфические требования как к преподавателю, так и к слушателю, ни в коем случае не облегчая, а подчас увеличивая трудозатраты и того и другого.
1.3 Методика применения дистанционного обучения
Разработана методика применения дистанционных образовательных технологий (дистанционного обучения) в образовательных учреждениях высшего, среднего и дополнительного профессионального образования Российской Федерации [2]. Она определяет основные требования, предъявляемые к программам дистанционного обучения. Далее описаны основные моменты этой методики, применимые к данной работе.
Дистанционное обучение обеспечивается применением совокупности образовательных технологий, при которых целенаправленное опосредованное или не полностью опосредованное взаимодействие обучающегося и преподавателя осуществляется независимо от места их нахождения и распределения во времени на основе педагогически организованных информационных технологий, прежде всего с использованием средств телекоммуникации. Основными дистанционными образовательными технологиями являются кейсовая технология, Интернет-технология, телекоммуникационная технология. Допускается сочетание основных видов технологий.
Целью дистанционного обучения является предоставление обучающимся непосредственно по месту жительства или временного их пребывания возможности освоения основных и (или) дополнительных профессиональных образовательных программ высшего и среднего профессионального образования (далее - образовательные программы) соответственно в образовательных учреждениях высшего, среднего и дополнительного профессионального образования (далее - образовательные учреждения).
Образовательный процесс с использованием дистанционного обучения может осуществляться образовательным учреждением по очной, очно-заочной (вечерней), заочной формам получения образования, в форме экстерната или при сочетании указанных форм.
Наряду с традиционными информационными ресурсами для обеспечения процесса дистанционного обучения используются следующие средства дистанционного обучения: специализированные учебники с мультимедийными сопровождениями, электронные учебно-методические комплексы, включающие электронные учебники, учебные пособия, тренинговые компьютерные программы, компьютерные лабораторные практикумы, контрольно-тестирующие комплекты, учебные видеофильмы, аудиозаписи, иные материалы, предназначенные для передачи по телекоммуникационным каналам связи.
Текущий контроль и промежуточная аттестация обучающихся осуществляются образовательным учреждением или традиционными методами, или с использованием электронных средств (электронное тестирование и пр), обеспечивающих идентификацию личности. Обязательная итоговая аттестация выпускников осуществляется традиционными методами.
1.4 Технологии дистанционного обучения
Для организации дистанционного обучения и донесения разработанных учебных материалов конечному пользователю используются следующие технологии: кейс-технология, TV-технология и сетевая (интернет) технология [1]. Более подробно рассмотрим их основные особенности.
1.4.1 Кейс-технология
Вид дистанционной технологии обучения, основанный на использовании наборов (кейсов) текстовых, аудиовизуальных и мультимедийных учебно-методических материалов и их рассылке для самостоятельного изучения обучаемыми при организации регулярных консультаций у преподавателей - тьюторов традиционным или дистанционным способом.
Общение с преподавателем осуществляется в созданных для этих целей региональных учебных центрах. К данной технологии может быть отнесена традиционная технология заочного обучения. Заочное обучение - по почте - существует более 100 лет. Считается, что при достаточной мотивации обучаемый в состоянии самостоятельно изучить и освоить значительный объем материала по широкому кругу дисциплин, если такое обучение подкреплено содержательным кейсом.
1.4.2 TV-технология
Вид дистанционной технологии обучения, базирующийся на использовании систем телевидения для доставки обучающемуся учебно-методических материалов и организации регулярных консультаций у преподавателей - тьюторов. Тьютор - методист, преподаватель или консультант-наставник, входящий в профессорско-преподавательский состав системы ДО, осуществляющий методическую и организационную помощь обучаемым в рамках конкретной программы дистанционного обучения.
Само название способа обучения постепенно изменяется на "дистанционное". А слово "обучение" постепенно заменяется словом "образование", поскольку роль обучаемого становится все более активной и фрагментарный процесс обучения во время очных сессий дополняется непрерывным процессом самообразования с использованием записанных на те или иные носители или транслируемых по радио и телевидению лекций. TV-технология, как следует из ее названия, основана на использовании телевизионных лекций.
1.4.3 Сетевая (интернет) технология
Вид дистанционной технологии обучения, базирующийся на использовании сетей телекоммуникации для обеспечения студентов учебно-методическими материалами и интерактивного взаимодействия между преподавателем, администратором и обучаемым.
К сетевым технологиям относится интернет-технология и технологии, использующие возможности локальных и глобальных вычислительных сетей. В интернет-технологии "Всемирная паутина" используется для обеспечения учащихся учебно-методическим материалом, а также для интерактивного взаимодействия между преподавателем и обучаемым. Данная технология имеет ряд существенных преимуществ перед другими. Она позволяет проходить обучение по индивидуальному расписанию, имея постоянный контакт как с преподавателем, так и с другими студентами и администрацией учебного центра. Возможность связи "многих-со-многими" является принципиальным отличием интернет-технологии от иных технологий дистанционного обучения: такое взаимодействие создает эффект "присутствия" и порождает явление "электронного" кампуса - виртуального университета.
В России развитие рынка образовательных услуг в сфере дистанционного образования сдерживается относительной неразвитостью системы телекоммуникаций. В этих условиях учебные курсы, предполагающие доставку всего объема учебно-методических материалов посредством каналов Интернет, изначально обречены на весьма ограниченное использование. Кроме того, получение большого объема учебно-методических материалов по каналам Интернета обходится обучаемому значительно дороже, чем при обычной почтовой рассылке. Для распространения больших объемов информации традиционно используются компакт диски (около 700 Мбайт) в сочетании с простотой и дешевизной тиражирования делает весьма эффективной рассылку учебно-методических материалов на таких носителях посредством обычной почты. В некоторых случаях стоимость может отличаться в десятки, и даже сотни раз от стоимости получения материалов по сети Интернет.
1.4.4 Сравнение технологий дистанционного обучения
Телекоммуникации добавляют новую размерность к дистанционному обучению и очень быстро развиваются в России в виде применения асинхронной электронной почты. Проведенный анализ позволил выделить базовые параметры, которые являются существенными при выборе информационных технологий для применения в программах дистанционного обучения в российских вузах (таблица 1.1).
Таблица 1.1 - Сравнительные характеристики информационных технологий
Технология | Характеристики |
Аудио-визуальные носители (печатные материалы, аудио-, видеокассеты), кэйс-технология |
- Низкая коммуникационная интерактивность; Стоимость производства линейно зависит от числа обучаемых; Хорошо известны методики разработки учебных материалов; Высокая долговечность. |
Компьютерное обучение, асинхронная электронная почта, интернет-технология |
- Средняя степень интерактивности; Возможность интерактивного общения с преподавателем; Оперативный доступ к обучающим материалам; Наиболее развитая инфраструктура в России; Низкая стоимость. |
Видеоконференции по компьютерной сети Интернет в режиме реального времени |
- Высокая степень интерактивности; Наиболее развитая в мире инфраструктура сети; Использование широко распространенных платформ компьютеров; Средняя стоимость. |
Видеоконференции по цифровому выделенному спутниковому каналу с использованием видеокомпрессии |
- Высокая степень интерактивности; Хорошее качество передачи изображения; Снижение более чем на два порядка требований к пропускной способности канала по сравнению с аналоговым телевизионным сигналом; Высокая стоимость. |
Видеоконференции по аналоговому спутниковому каналу |
- Высокая степень интерактивности; Максимально возможное качество передачи изображения с минимальной технологической задержкой передачи изображения и звука; Высокая стоимость. |
Система дистанционного обучения, реализованная в данной работе основана на сетевой технологии. Очевидно, технология ТВ и видеоконференций с использованием сети Интернет достаточно дорогие в реализации. Кейс технология имеет ряд недостатков, перечисленных в последующих подразделах. Поэтому анализируя параметры перечисленных технологий можно прийти к выводу, что наиболее интересной технологией является именно сетевая или интернет-технология. Преимущества ее очевидны - низкая стоимость реализации, удобный, доступный пользователю уровень преподнесения информации, возможность интерактивного дистанционного общения с преподавателем в удобное время, оперативный доступ к обучающим материалам.
1.5 Программы дистанционного обучения
На сегодняшний день имеется достаточно большой выбор программных продуктов, позволяющих организовать подготовку электронных учебных материалов и управление процессом дистанционного обучения. Рассмотрим некоторые из них, построенных на основе кейс-технологии и интернет-технологии.
1.5.1 Программа "eLearning Server 3000"
"eLearning Server 3000" - так называется программный продукт для академического, школьного, корпоративного обучения и повышения квалификации с помощью современных мультимедиа и интернет-технологий [3].
Программный пакет компании ГиперМетод позволяет создавать собственные интерактивные Учебные центры в Интернет/Интранет и организовывать полный цикл дистанционного обучения. Продукт обладает интуитивно понятным и легко настраиваемым web-интерфейсом. Это делает его доступным не только IT-специалистам, которые занимаются проблемами дистанционного обучения, но и преподавателям высших, средних и школьных учебных заведений.
К созданному с помощью "eLearning Server 3000" Учебному Центру предоставляется пять уровней доступа: "Администратор", "Деканат", "Преподаватель", "Обучаемый" и "Абитуриент".
Поддержка стандарта XML позволяет пользователю уровня Администратора и Преподавателя внедрять в собственный Учебный центр уникальные возможности процесса обучения по каким-либо специфическим дисциплинам.
Пакет состоит из трех компонент. Его отличают дружественный интерфейс и максимальная автоматизация работ. ePublisher - для быстрого создания электронных учебных пособий. eAuthor - для создания дистанционных учебных курсов. eBoard - для организации и управления интерактивными лекциями, семинарами, конференциями в Сети Интернет. Программа eAuthor позволяет создать учебный курс в мультимедийной форме, сопровождаемый интерактивными системами тестирования, полнотекстовой поисковой системы по материалу учебника и средств связи с web-сайтом Учебного центра. Пакет позволяет создавать учебные курсы пользователю, не владеющему специальными навыками и не имеющему специальных знаний.
Основным отличием курсов, разработанных с помощью eLearning Office 3000, являются: удобная навигационная структура - в курсе автоматически проставляются гиперссылки на подробное описание терминов, понятий, биографий и любых необходимых пояснений. Ссылки могут вести как размещаемые преподавателем тексты и иллюстрации, так и на ресурсы в Интернет. Курсы включают раздел "Словарь", в котором разработана система поиска, и учащийся может быстро самостоятельно найти интересующую его информацию. Раздел "Поиск" - поисковая система также работает по всему материалу диска, что позволяет найти лекции и описания по определенной тематике. Важным достоинством этих курсов является развитая система тестирования. Раздел "Тесты" предоставляет систему интерактивного тестирования для самопроверки знаний учащегося. Контрольные вопросы могут быть различных типов: с вариантами выбора ответов, с вводом строки ответа, вопрос на соответствие ответа, типы тестов типа указать на картинке. Каждому вопросу имеется возможность приложить файл или ссылку на любой ресурс в Интернет с описанием правильного ответа, которые выводятся вместе с результатом ответа. Причем программа включает "Библиотеку вопросов по курсу", что предоставляет возможность преподавателю не вводить заново вопросы по каждому тесту, а составлять тесты из уже имеющихся вопросов. И также значимым является то, что перенести учебный курс, подготовленный на локальном компьютере преподавателя, в учебный Интернет-центр можно одним нажатием кнопки.
Исходными данными для создания электронного учебного пособия является текст в одном из двух форматов: RTF или PDF. При создании публикации указываются местонахождение исходного файла и один из 40 шаблонов оформления будущего издания. После этого "ePublisher" автоматически генерирует электронное учебное пособие.
При генерации "ePublisher" производит следующие операции:
автоматическая разбивка пособия на страницы с сохранением заголовков;
автоматическое создание оглавления;
форматирование исходных рисунков, схем и других объектов.
Используя дополнительные возможности "ePublisher", пособие можно дополнить:
видеофрагментами (avi, mpeg4);
звуком (wav, mp3);
графикой (gif, jpg, bmp);
html-страницами;
внешними и внутренними гипертекстовыми ссылками (как на web-сайты, так и на страницы пособия);
системой поиска;
словарем терминов;
защитой содержимого пособия от пиратского копирования.
Сохранить электронное учебное пособие можно:
в виде исполняемого exe-файла, запускаемого в дальнейшем на любом компьютере под управлением Windows;
в html-формате с дальнейшей публикацией в Internet.
Электронное учебное пособие - это всего лишь один элемент организации курса дистанционного обучения. Следующий шаг - это создание дистанционного учебного курса.
С помощью "eAuthor" можно создать дистанционный учебный курс, состоящий из трех разделов: Лекции, Словарь, Тесты.
Создание учебного курса начинается с выбора шаблона оформления учебного курса ("eAuthor" предлагает автору курса несколько шаблонов оформления). После выбора шаблона программа генерирует прототип учебного курса в соответствии с выбранным оформлением. Прототип включает в себя связанные единичные страницы учебного курса, которые пока не имеют содержания. Задача автора учебного курса - наполнить множество страниц Лекция, Вопрос, Термин имеющимся материалом. При этом программа автоматически будет формировать оглавление лекционного материала, список словарных терминов и тесты, используя уже введенный материал.
Раздел Лекции может содержать такие составляющие, как:
текст (в формате RTF),
графика (в форматах GIF, JPEG, BMP),
звук (в форматах WAV, MP3),
видео (в форматах AVI, MPEG).
В текст лекции может быть вставлен как документ, так и внешняя программа в виде кнопок со ссылками на файлы, содержащие документ и программу.
В разделе Словарь гипертекстовые связи между встречающимися в тексте лекций терминами и их определениями программа расставит автоматически по правилам, которые задаст автор курса. Это раздел может содержать графический материал.
Раздел Тесты представляет систему интерактивного тестирования для самопроверки знаний учащегося. Контрольные вопросы могут быть трех типов: с вариантами выбора ответов, с вводом строки ответа и на соответствие ответа. Этот раздел может содержать помимо текста вопроса звуковые и видеофрагменты, а также графический материал. Программа может контролировать ответы учащихся, формируя страницу Результаты тестирования.
Заключительным этапом разработки учебного курса является создание дистрибутива. На этом этапе программа отделяет учебный курс от среды разработки и выделяет его в самостоятельную программу. В результате получается готовый к использованию и закрытый для редактирования учебный курс, который можно тиражировать для последующего распространения учащимся.
Программный продукт "eBoard" позволяет в течение одной минуты (без программирования) организовать трансляцию изображения с web-камеры, видеомагнитофона, и даже с рабочего стола компьютера на web-сайт, непосредственно на страницы учебного курса и электронных учебных пособий. Наличие этой программы позволяет, с одной стороны, дополнить учебный курс online-семинарами и конференциями и живым общением с преподавателем, что раньше было невозможно, с другой стороны приближает дистанционное обучение к традиционной форме, и, что очень важно - обучение перестало зависеть от географического нахождения преподавателя и обучающихся.
1.5.2 Программа "Lotus LearningSpace"
Программный продукт LearningSpace дает возможность воспользоваться уникальным новаторским опытом обучения [4]. Этот продукт удовлетворяет потребность в открытом и гибком образовательном процессе. При разработке этого продукта компания Lotus совместила результаты обширных научных исследований и лучшие примеры преподавательской практики с широкими возможностями Lotus Notes. В результате было получено новое решение в области обучения. LearningSpace выходит за рамки обычного обучения на расстоянии. Стирая все пространственные и временные преграды, LearningSpace использует самые современные технологические возможности обучения по программе, рассчитанной на работу в групповой среде. Используя это средство, корпоративные, академические и другие организации, занимающиеся обучением, могут помочь специалистам поддержать уровень знаний и умений, необходимый для существования в быстро меняющемся мире современных технологий.
Основные свойствами и преимуществами данной системы являются.
Перенос всей мощи Lotus Notes, ведущего программного средства для бизнеса, в распределенную среду обучения.
Организация обучения в любом месте и в любое время, невзирая на пространственные и временные ограничения.
Сокращение продолжительности циклов разработки приложений.
Поддержание на занятиях высокого уровня интерактивности, что является непременным условием успеха в области образования.
Использование лучших моделей и практических примеров индивидуального и группового обучения.
Нацеленность на успех образовательного процесса, а не на технологические "навороты".
Компания Lotus является лидером на рынке готовых и апробированных решений в области образования. Использование самого передового практического опыта и средств для поддержки новых рыночных тенденций привело к разработке продукта LearningSpace, созданного на основе научных исследований, выполненных в институте компании Lotus (Lotus Institute), и на базе опыта по разработке учебных программ, накопленного в отделе обучения Lotus (Lotus Education). LearningSpace способен дать вашей компании солидные преимущества, поскольку усиливает способность человека к воспроизведению чужих знаний и созданию новых знаний за счет наблюдений и опыта, полученного в распределенной обучающей среде.
Обучение на расстоянии существует в самых различных формах. Это и обучение по телевидению, и телеконференции, и учебные программы, записанные на аудио - и видеокассетах. Все это относится к области дистанционного обучения, которое однако по-прежнему остается подверженным пространственным и временным ограничениям и не включает студента в обучающий процесс. Методы обучения с использованием компьютерной техники повышают гибкость в плане времени, но не ликвидируют коммуникационного барьера между преподавателем и обучаемыми. Курсы, предлагаемые в сети World Wide Web, снимают эти проблемы, но для участия в процессе студенты должны постоянно работать в подключенном режиме. LearningSpace вобрал в себя все сильные стороны указанных методик и создал решение, которое весьма элегантно решает проблемы пространственных и временных ограничений и дает ответы на вопросы, связанные с групповой и сетевой работой.
Создаваемая продуктом LearningSpace богатая среда обучения повышает гибкость и доступность образования и предоставляет доступ к опыту преподавателя широкому кругу участников процесса. Особый упор делается на групповое обучение и взаимодействие обучаемых, что позволяет им накапливать полезный и нужный опыт. LearningSpace дает обучаемым возможность посещать занятия в любое удобное время и получать доступ к информации в любом месте и в любой момент. Путешествуя в самолете, отдыхая на пляже или сидя у себя на крыльце, вы можете получить задание, вступить в дискуссию, просмотреть материалы или (если вы чувствуете себя достаточно подготовленным) начать написание курсовой работы.
Чтобы в полной мере учесть в LearningSpace особенности содержания и структуры учебных программ, разработаны программы для подготовки составителей учебных курсов и преподавателей. "Введение в разработку учебных курсов в LearningSpace" обучает разработчиков программ и преподавателей созданию эффективных и динамичных программ обучения в режиме on-line. Разработчики программ и преподаватели учатся формировать стратегию использования средств и возможностей LearningSpace для достижения учебных целей. Эта программа включает презентации и практические занятия по разработке и модификации учебного расписания, структурированию базы данных профилей студентов, созданию мультимедийной библиотеки заданий для студентов и учебных материалов, организации электронных дискуссий и руководству ими, а также организации проверки студенческих работ.
Программа "Обучение в LearningSpace" была разработана специалистами в области дистанционного обучения, чтобы помощь преподавателям понять, что значит вести занятия в электронной среде для распределенной аудитории. Эта программа включает практические занятия по использованию административных и учебных средств LearningSpace в интересах методики обучения и передачи студентам необходимых материалов знаний. Особое внимание уделяется роли и опыту удаленного преподавателя, а также стратегии распределения, управления и оценки работы в распределенной среде с упором на групповую учебную работу.
Основные характеристики LearningSpace следующие:
Распределение - возможность учиться в любом месте и в любое время;
Гибкость - возможность обучения в нужном вам темпе;
Групповое сотрудничество - возможность индивидуального или группового обучения;
Преподавателей - возможность учебы у опытных экспертов;
Простоту - пользовательский интерфейс помогает легко переходить от одного модуля к другому;
Практический опыт - курсы основаны не на "лекциях", а на практических занятиях;
Апробированность - использование уникальных возможностей Lotus Notes;
Результаты научных исследований - обучение основано на лучших практических примерах критического обучения, взятых из реальной жизни;
Доступ к дополнительным материалам - обучение проходит с использованием богатых и гибких возможностей электронной среды;
Безопасность - безопасные виртуальные области для ведения дискуссий, получения оценок и размещения частных объявлений;
Групповые задания - с использованием методики группового авторства;
Многозадачность - участие в организованных дискуссиях по многим потокам;
Обзорное путешествие по среде обучения в течение одной минуты;
Он-лайновую систему первичной подготовки пользователя LearningSpace;
Карточку быстрого старта (Quick Reference card), которая поможет начать работу в среде LearningSpace.
1.5.3 Программа "Батисфера"
"Батисфера" - это мультимедийная программа для создания электронных тестов, мультимедийных учебных уроков (курсов) и проверки уровня знаний [5].
В программный комплекс "Батисфера" входят:
Конструктор тестов (Test Designer) - программа для создания электронных тестов и проверки знаний;
Конструктор страниц (Page Designer) - программа для создания мультимедийных уроков и презентаций;
Конструктор проектов (Project Designer);
Конструктор отчетов (Analitic) - аналитическая обработка полученной информации о знаниях учащихся.
Конструктор тестов (Test Designer) - программа для создания электронных тестов различного уровня сложности с возможностью регламентации времени выполнения соответствующей проверочной работы, установкой порядка допуска к каждому последующему заданию, выбором вида оценки. Результаты тестирования могут быть занесены в протокол (внешний файл) для последующей его печати или создания аналитических обзоров.
Создавая электронный тест, можно установить ряд настроек, которые Вы считаете необходимыми при прохождении электронного тестирования:
задать реакцию, то есть задать следующую операцию или действие, которое будет выполняться после успешного или неуспешного прохождения электронного тестирования;
объем выборки, который определяет количество вопросов из общего числа, которые будут задаваться при прохождении электронного теста;
перетасовка вопросов и ответов;
лимит времени, ограничивающий прохождение электронного теста;
предоставить или нет в процессе прохождения электронного тестирования возможность вернуться к заданию и изменить свой ответ;
предоставить или нет обучаемому самому выбрать задания для ответа из предложенного ему списка;
какие параметры (время, количество оставшихся вопросов в электронном тесте, набранных баллов или нерешенных заданий, процент выполнения заданий теста) необходимо выводить на экран при электронном тестировании.
При создании электронного теста задаются параметры оценивания, в соответствии с которыми проходящий электронное тестирование по окончании электронного теста получает ту или иную оценку или же зачет/незачет. В первом случае необходимо указать минимальное и максимальное количество правильных ответов для получения определенной оценки, а во втором только пороговое значения для получения зачета. Так как каждому варианту ответа можно сопоставить определенное количество балов, то оценка может зависеть либо от числа правильных ответов, либо от суммы балов которые соответствовали указанным ответам.
Затем настраивается вид отчета о результатах электронного тестирования. Создающий тестирование сам выбирает что в отчете его интересует. Возможно только оценка, а возможно проводящего электронного тестирование больше интересуют ошибки допущенные проходящим электронное тестирование и информация о том какие ответы вместо правильных он дал, сколько времени затратил на прохождение электронного теста и т.п. Таким образом каждый составитель электронного теста может установить свои настройки, от которых будет зависеть вид отчета о электронном тестировании. Эти настройки при желании можно легко изменить проводящему электронное тестирование.
Конструктор страниц (Page Designer) - программа для создания мультимедийных учебных курсов, функциональным наполнением которых могут быть текстовые, звуковые и анимационные фрагменты, позволяющая организовать необходимые переходы с одной электронной страницы на другую.
Конструктор проектов (Project Designer) - собирает отдельные информационные элементы, созданные другими конструкторами, в единую логическую структуру (проект), позволяет оформить его в виде меню с возможностью разветвления как при помощи вложенных меню (подменю), так и в о образе древовидной структуры, закрепив за каждым пунктом меню (подменю) одно или несколько действий (исполняемых файлов).
Конструктор отчетов (Analitic) - программа обработки результатов электронного тестирования и проверки уровня знаний.
1.5.4 Программа "SunRav TestOfficePro"
Пакет программ для создания, проведения различных тестов как в локальной сети, так и в сети Интернет и обработки результатов тестирования. По сути, это уже готовое комплексное решение для проведения тестирования в рамках образовательных и других учреждениях (вузы, колледжи, школы, отделы кадров предприятий и т.п.) [6].
Включает в себя tMaker - программу для создания тестов; tTester - программу для проведения тестирования; tAdmin - программу для удаленного администрирования пользователей и обработки результатов тестирования.
С помощью пакета можно легко создавать тесты по любым предметам школьной программы, по любым ВУЗовским дисциплинам, любые тесты для узкопрофессионального тестирования, различные психологические тесты и т.д. В своих теста вы можете использовать различные шрифты, формулы, схемы, таблицы, аудио - и видео - файлы, HTML документы и любые OLE документы. Любой вопрос и ответ можно полноценно форматировать - различные шрифты, выравнивание, абзацы, списки, верхние и нижние индексы и т.д. При этом вся информация шифруется методами стойкой криптографии.
Программа tMaker предназначена для создания и редактирования тестов и обладает следующими возможностями.
Мощный встроенный редактор вопросов и вариантов ответа, поддерживающий проверку орфографии. Работа со встроенным текстовым редактором мало чем отличается от работы в программе MS WORD.
Импорт тестов. Тесты могут быть импортированы из текстовых файлов (подготовленных, например, в программе MS WORD) и таблиц MS Excel.
Экспорт тестов. Тесты могут быть экспортированы в форматы RTF, TXT, XML.
Объединение нескольких тестов в один тест.
Создание "Бумажных тестов". Тесты можно распечатать на бумаге для того, что бы пользователи тестировались без компьютеров. Возможна генерация нескольких тестов из одного таким образом, что набор вопросов каждого теста будет отличаться.
Установка различных параметров сразу для нескольких вопросов.
Установка шрифта вопросов/вариантов ответов сразу для всех вопросов/вариантов ответов.
Проверка теста. Перед тем, как тест будет сохранен, происходит его проверка на правильность, что позволяет избежать создания тестов, например, с вопросами, в которых нет ни одного правильного варианта ответа и т.п.
Запуск теста. Тест можно запустить в программе tTester для того, что бы посмотреть, как будет выглядеть тестирование.
Многоязычный интерфейс. На данный момент программа переведена на русский, украинский и белорусский языки.
Программа tTester предназначена для проведения тестирования и обладает следующими возможностями.
Безопасность. Для того чтобы изменить параметры программы нужно знать пароль.
Внешний вид программы можно очень гибко настроить. Возможно отключение меню и/или инструментальной панели. Визуальный стиль программы можно изменять.
Информация по ходу тестирования. В тесте можно определить, что нужно показать пользователю во время тестирования: Ф. И.О. испытуемого, кол-во вопросов в тесте, номер текущего вопроса, кол-во правильных ответов, оставшееся время до окончания тестирования.
Подача звукового сигнала после окончания тестирования поможет преподавателю на слух определить, что кто-то уже закончил тестирование.
Удобная система ответа на вопрос.
Удобная система выбора тестов.
Командная строка. Большое кол-во параметров командной строки. Это позволяет:
Настраивать ярлыки, что позволяет минимизировать действия пользователя для начала тестирования.
Использовать ссылки из различных документов, что позволяет интегрировать tTester в состав различных электронных учебников и т.д. Например, в учебниках, созданных с помощью пакета SunRav BookOffice.
С примером этого использования можно ознакомиться в Центре по разработке обучающих программ
Отправка результатов по почте. По окончании тестирования, результаты могут быть отправлены по электронной почте. Это может быть полезным при тестировании заочников или студентов, обучающихся по системе дистанционного обучения.
Запись тестов на диск. Тесты могут быть записаны на CD или DVD диск для того, что бы пользователь смог пройти тестирование, не устанавливая никаких программ - достаточно просто вставить диск и выбрать тест.
Результаты тестирования. Результат тестирования можно сохранить в тестовом файле и/или распечатать (администратор может отключить эти возможности). Можно гибко настроить то, в каком виде пользователь получит результаты тестирования:
Вообще не получить никакого сообщения.
Получить результат тестирования по определенным темам и по тесту в целом.
Получить список самых неудачных тем.
Получить подробный лог тестирования: текст вопроса и ответ на него, а также информацию о правильности ответа.
Регистрация пользователей. Администратор может разрешить или запретить самостоятельную регистрацию пользователей.
Процесс тестирования. Администратор может:
Запретить выходить из программы до окончания тестирования
Отключить доступ к рабочему столу и панели задач. При этом программа может работать в полноэкранном режиме.
Настроить программу таким образом, что после одного тестирования она сразу закроется.
Пропущенные вопросы. Возможно настроить программу так, что пользователь будет иметь возможность пропускать вопросы и/или сможет возвращаться к предыдущим вопросам.
Многоязычный интерфейс. На данный момент программа переведена на русский, украинский и белорусский языки.
Программа tAdmin предназначена для просмотра результатов тестирования отдельных пользователей и создания отчетов по группам пользователей обладает следующими возможностями.
Работа с пользователями. С помощью программы можно создавать новых пользователей, редактировать данные пользователей, а также удалять пользователей.
Отчеты по пользователям. Программе доступна вся информация по каждому тестируемому - каждый его шаг фиксируется. Если пользователь начал тестирование, не закончил его и начал новое тестирование - это будет отражено в программе tAdmin.
Результаты тестирования состоят из:
Оценки, полученной за тест (включая оценки по всем темам).
Общей информации по тестированию: дата тестирования, время начала и окончания тестирования, количество заданных и отвеченных вопросов, количество правильных ответов и баллов, а также процент правильных ответов.
Подробный отчет по ответам пользователя: какие вопросы он получил, как на них ответил, сколько времени раздумывал над ответом, сколько получил балов за ответ и дал ли он правильный ответ.
Отчеты по группам пользователей. Программа может создавать отчеты сразу по нескольким группам и/или тестам. В отчет помещаются следующие данные: ФИО, группа, название теста, результаты тестирования, баллы, количество правильных ответов, количество попыток, среднее количество набранных баллов за все попытки тестирования, процент правильных ответов и дата тестирования. Возможно создание отчетов, соответствующих определенным параметрам:
Дата тестирования. Можно задать диапазон дат или точную дату тестирования.
Количество правильных ответов. Можно задать диапазон или точное значение.
Количество набранных баллов. Можно задать диапазон или точное значение.
Номер теста. Можно включить либо все тесты, соответствующие предыдущим параметрам, либо первый/последний/определенный тест.
Матрица ответов. Возможно создание матрицы ответов, состоящей из всех пользователей, попавших в отчет и значений их ответов. В матрице помещаются данные о самых сложных и самых легких вопросах.
Фильтры. Созданные групповые отчеты можно фильтровать по любому параметру.
Печать отчетов. Созданные отчеты (как пользовательские так и групповые) можно распечатать. Внешний вид отчетов определяется шаблонами, которые можно визуально редактировать во встроенном редакторе шаблонов.
Экспорт отчетов. Подготовленные с помощью шаблонов отчеты можно экспортировать в наиболее популярные форматы: Excel, XML, HTML, PDF, RTF, BMP, JPEG, TIFF.
Резервное копирование. tAdmin может создавать резервные копии важных данных (результаты тестирования, тесты и т.д.) как в ручном, так и в автоматическом режиме.
1.6 Представление информации в дистанционном обучении
Самым удобным средством предоставления информации в дистанционном обучении является электронный учебник. Обычно материалы электронного учебника разбивают на несколько частей. Изучение каждой части учебного материала завершается контрольным тестом. От правильности организации электронного учебника и подсистемы тестирования полученных знаний во многом зависит успех технологии дистанционного обучения.
1.6.1 Электронный учебник
В современных условиях появились специализированные средства предоставления информации - электронные учебники [7]. В состав конспекта лекций электронного учебника можно включать текстовые и графические фрагменты, анимацию, а также аудио- и видеофайлы. Преподаватель, избавившись от рутинного труда, поглощавшего львиную долю его рабочего времени, может внимательнее следить за скоростью и качеством текущего усвоения знаний студентами, тщательнее адаптировать учебные материалы, стремясь оптимизировать их качество.
С точки зрения скорости подготовки электронные учебники имеют существенные преимущества перед печатной книгой. Для тех учебных предметов, темой которых являются быстро меняющиеся технологии, скорость подготовки и модернизации учебных пособий является чрезвычайно важным фактором.
Существенных недостатков у электронного учебника два:
Необходимость специального дополнительного оборудования для работы с ним, прежде всего - компьютера с соответствующим программным обеспечением и качественным монитором, а иногда дополнительно также дисковода для компакт-дисков и/или сетевой карты или модема для работы в локальной или глобальной сети.
Непривычность, нетрадиционность электронной формы представления информации и повышенной утомляемости при работе с монитором.
Достоинств электронных учебников гораздо больше:
Возможность адаптации и оптимизации пользовательского интерфейса под индивидуальные запросы обучаемого. В частности, имеется в виду возможность использования как текстовой или гипертекстовой, так и фреймовой структуры учебника, причем количество фреймов, их размеры и заполнение могут изменяться. Вместо части фреймов, по желанию студента, можно использовать всплывающие окна с тем же самым содержимым, например, с рисунками или списком определений.
Возможность использования дополнительных (по сравнению с печатным изданием) средств воздействия на обучаемого (мультимедийное издание), что позволяет быстрее осваивать и лучше запоминать учебный материал. Особенно важным автору данной книги представляется включение в текст пособия анимационных моделей. Положительный эффект можно достигнуть и с помощью звукового сопровождения, соответствующего лекторскому тексту.
Возможность построения простого и удобного механизма навигации в пределах электронного учебника. В печатном издании таких возможностей две: оглавление и колонтитулы, иногда к ним также относят глоссарий. Однако для практической реализации этих возможностей необходимо листать страницы учебника. В электронном пособии используются гиперссылки и фреймовая структура или карты-изображения, что позволяет, не. листая страниц, быстро перейти к нужному разделу или фрагменту и, при необходимости, так же легко и быстро возвратиться обратно. При этом не требуется запоминать страницы, на которых были расположены соответствующие разделы.
Развитый поисковый механизм не только в пределах электронного учебника, но и вне его. В частности, по гипертекстовым ссылкам можно перемещаться по тексту издания, просматривать рисунки, обращаться к другим изданиям, ссылки на которые имеются в нем (литература и пр), даже написать электронное письмо автору пособия с просьбой объяснить те или иные положения учебника. При использовании сетевых обучающих структур возможно обсудить положения учебника с другими студентами (в электронном читальном зале), оставаясь на своем рабочем месте.
Возможность встроенного автоматизированного контроля уровня знаний студента, и на этой основе автоматический выбор соответствующего уровню знаний слоя учебника, как указано в следующем пункте.
Возможность адаптации изучаемого материала к уровню знаний студента, следствием чего является улучшение восприятия и запоминания информации. Адаптация основана на использовании слоистой структуры издания, причем в соответствии с результатами тестирования студенту предоставляется слой, соответствующий уровню его знаний.
Главное преимущество электронного учебника - это возможность интерактивного взаимодействия между студентом и элементами учебника. Уровень интерактивности может изменяться от низкого и умеренного (перемещение по ссылкам) до высокого (самостоятельное тестирование и личное участие студента в моделировании процессов). Если тестирование подобно собеседованию с преподавателем, то участие в моделировании процессов можно сопоставить с приобретением практических навыков в процессе производственной практики в реальных или приближенных к ним условиях производства (аналогично подготовке на специальных тренажерах).
С внедрением электронных учебников изменяются и функции библиотеки учебного заведения. В этом случае роль библиотеки переходит к электронному читальному залу, оборудованному компьютерами, объединенными в локальную сеть, которая связана с текстовой базой данных - хранилищем электронных учебников. Все читатели такой библиотеки без всякой очереди и ожидания могут самостоятельно выбирать и читать любые электронные учебники, в том числе и одинаковые, автоматически тиражируемые для них в любом количестве экземпляров.
1.6.2 Система проверки знаний
Современное образование и, в особенности, дистанционное обучение немыслимо без применения автоматизированных методов оценки уровня подготовки студента, т.е. без системы тестирования с автоматической обработкой его результатов. Организовать тестирование проще всего через web-страницу, при этом результаты полученные в ходе тестирования автоматически обрабатываются на web-сервере и тестируемый получает незамедлительно получает ответ - сдал он тест или нет [7].
В то же время следует отметить ограниченные возможности тех систем тестирования, для которых характерна оценка знаний путем выбора ответа из некоторого множества вариантов. В дальнейшем следует, стремиться к разработке систем, обеспечивающих получение содержательного ответа на вопросы и последующего автоматизированного семантического анализа этих ответов. Здесь определенные возможности открывает технология составления тестов и обработки результатов тестирования на основе HTML-форм и скриптов. Эта задача достаточно сложна и объемна. И основное внимание следует уделить технологии составления HTML-форм и принципам их автоматизированной обработки.
1.7 Проблемы использования программ дистанционного обучения и методы их решения
Дистанционное обучение перспективно. Оно постоянно совершенствуется, но существует ряд проблем, исследование которых ведется в настоящее время. Появляются новые методы и пути их решения. Рассмотрим основные проблемы, связанные в той или иной степени с использованием программ дистанционного обучения. Практически во всех перечисленных программах эти проблемы либо не решены, либо решены частично. В основе технологии дистанционного обучения лежит целенаправленная подготовка студентов к сдаче экзаменов по той или иной теме с использованием различных средств, таких как видео и аудио кассеты, мультимедийные курсы на CD, электронные учебники, электронное тестирование. Обучение происходит посредством трех технологий - видео-технологии, кейс-технологии и интернет-технологии (сетевой технологии). Исследовав основные особенности, преимущества и недостатки различных технологий и программ дистанционного обучения, можно сформулировать ряд основных проблем, характерных для систем дистанционного обучения и дистанционного контроля [8].
Эти или подобные проблемы возникают у всех, кто занимается созданием систем дистанционного обучения. Большинство из них связано не с разработкой самих учебных материалов для студентов, а с способом контроля полученных знаний. Поэтому больше внимания в работе уделено тому, как преподнести учебную информацию студенту и как проконтролировать его самостоятельную работу. Форма преподнесения информации должна быть удобной, доступной и соответствовать основным принципам дистанционного обучения, а система контроля должна быть эффективной.
1.7.1 Проблемы использования программ дистанционного обучения
Сформулируем основные проблемы, связанных с защитой, и ряд других вопросов, относящихся к системам дистанционного обучения.
1 Отсутствие возможности достоверно определить, прошел ли студент тестирование самостоятельно. Для этой задачи он вполне мог использовать другого человека (например, более подготовленного студента).
2 Неизвестно, сколько раз студент предпринял попытку пройти тестирование. Студент имеет возможность устанавливать систему дистанционного обучения в нескольких экземплярах и/или копировать ее, тем самым сохраняя ее текущее состояние. Так студент получает возможность неограниченного количества попыток прохождения тестирования и возможность выбрать из них попытку с наилучшим результатом. Проблема характерна для кейс-технологии и практически отсутствует в интернет-технологии.
3 Очень важной проблемой в области организации самостоятельной работы и, особенно, компьютерного внешнего контроля является слабая защищенность образовательного программного обеспечения от "взлома" с целью доступа к правильным ответам и подделки результатов контроля. Существует возможность создания универсального редактора файлов результатов тестирования. Он может использоваться студентом для корректировки оценок выставленных программой тестирования. Эта проблема вытекает из того, что в основном современные контролирующие системы используют память компьютера для хранения эталонных ответов вместе с заданиями. Как правило, они шифруются, но, как показывает практика, их всегда можно расшифровать. Эта проблема особенно остро встала с появлением в России дистанционных технологий обучения, где внешний контроль знаний осуществляется в основном компьютером в отсутствие преподавателя.
4 Существует угроза создания универсальной программы просмотра файлов с заданиями и ответами. Тем самым, студент имеет возможность узнать верные ответы на вопросы в тестах.
5 Существует также проблема защиты обучающего программного обеспечения от модификации его кода, с целью изменения алгоритма оценивания результатов тестирования или другого кода. Слабая защищенность от "взлома" любых контролирующих систем создает трудности при проведении контроля в системах дистанционного образования. Внешний контроль на расстоянии исключен, так как никто не может гарантировать, что контролирующие программы не были "взломаны" в процессе выполнения контрольной работы.
1.7.2 Обзор методов решения проблем дистанционного обучения и обоснование выбора решения
1. Система дистанционного образования должна иметь достаточные средства защиты от несанкционированного вмешательства и подмены реальных студентов их дублерами. Практически отсутствует возможность определить, прошел ли студент тестирование самостоятельно. Для этой задачи он вполне мог использовать другого человека (например, более подготовленного студента) [8, 9].
В случае использования данной системы в аудиториях кафедры, никаких сложностей не возникает, так как студенты находятся под контролем преподавательского состава. Но ориентация образования на дистанционное обучение вносит свои коррективы. Возникает потребность в возможности использования данного программного обеспечения студентом на своей локальной машине. Это, пожалуй, самая сложная задача. Невозможно помешать студенту пойти к другу и попросить выполнить определенную лабораторную работу, пройти тестирование. Без применения специальной аппаратуры это практически нереально. Но, естественно, применение аппаратных средств невозможно в силу хотя бы своей высокой цены. Следовательно, такой вариант рассматриваться не будет. По крайней мере, он не реален да данном этапе состояния образования в нашей стране.
Студент может посадить за компьютер вместо себя более осведомленного в предмете человека. Навигационная система ДО должна проверять, находится ли за удаленным компьютером именно тот обучаемый, за которого он себя выдает, то есть, произвести распознавание пользователя.
Каким образом сегодня решается эта проблема? Каждый поступающий на обучение в СДО человек получает свое входное имя и пароль для входа на сервер с учебными материалами. При обращении обучаемого к серверу о нем можно собирать информацию, полезную для преподавателя: перечень страниц, посещенных пользователем за сеанс работы; время, проведенное на каждой странице; активированные гиперссылки на данной странице; перечень файлов, которые были скопированы пользователем с учебного сервера; время тестирования и др. При необходимости администратор сервера СДО может с помощью собираемой информации восстановить любой сценарий сеанса работы какого-либо обучаемого.
Но вся собранная таким образом информация является косвенной. То есть, если в систему вошел человек по входному имени и паролю своего коллеги с целью отметиться и принять участие в тестировании, то его невозможно разоблачить. Другими словами, нужны прямые доказательства того, что данный сеанс обучения провел действительно тот пользователь, с чьим именем сопоставлены входное имя и пароль.
Другой вариант, в общении с компьютером индивидуальность пользователя проявляется в скорости, привычке использовать основную или дополнительную часть клавиатуры, характере "сдвоенных" и "строенных" нажатий клавиш, излюбленных приемов работы с компьютером, с помощью которых можно выделить конкретного человека среди работавших на данной машине. Разумеется, по двум-трем, даже по десяти нажатым клавишам отличить пользователя невозможно, нужна статистика.
При наборе ключевой фразы компьютер позволяет зафиксировать много различных параметров, но для идентификации наиболее удобно использовать время, затраченное на ввод отдельных букв. А повторив ввод фразы несколько раз, в результате будем иметь множество временных интервалов для каждого символа. На базе полученных значений всегда можно рассчитать среднее время ввода каждого символа, допустимое отклонение от среднего, и хранить эти результате в качестве эталонов для каждого пользователя. Это требует разработки сложных алгоритмов проверки и идентификации и значительных материальных затрат. К тому же это актуально при достаточно длительной работе пользователя на компьютере. В случае студента этого практически нет, при своей работе ему придется вводить совсем немного текстовых данных. Подобная идентификация студента для данной работы также не приемлема.
Можно осуществлять тестирование в подготовленной аудитории под контролем преподавателя, в оговоренное время, но это затрагивает основной принцип дистанционного обучения - возможность получения знаний и их контроля в удобном месте и в удобное время для каждого студента. Хотя этот вариант исключать нельзя, так как студент изучает материалы курса дистанционно.
На основании вышесказанного, кажется, что проблема идентификации студентов, вообще не имеет решения. Действительно, как уже отмечалось, пароли и иные атрибуты личной идентификации проблемы не решают, т.к студент заинтересован заменить себя дублером и располагает неограниченными возможностями такой подмены. Дешевое техническое решение для ее обнаружения придумать пока не удалось.
Выход может быть в создании постепенного поэтапного контроля знаний с целью формирования трудностей для подмены проходящего тестирование дублером. Последующий этап обучения и доступ к последующим материалам курса, будет доступен только при успешной сдаче контрольного теста предыдущего. Найти дублера на один экзамен намного проще, чем на весь период обучения. Такая задача может быть решена (и решается достаточно хорошо) с применением сетевых технологий. В такой системе студент заходит на сайт, изучает определенный раздел курса, проходит тестирование по этому разделу и только в случае успешной сдачи теста получает возможность двигаться дальше.
В любом случае должен присутствовать очный итоговый контроль, так как тестирование это лишь промежуточный этап, прохождение которого дает студенту допуск к зачету или экзамену. Итоговый контроль курса должен осуществляться при личном контакте преподавателя и студента.
2. Неизвестно, сколько раз студент предпринял попытку пройти тестирование. Студент имеет возможность устанавливать систему дистанционного обучения в нескольких экземплярах и/или копировать ее, тем самым сохраняя ее текущее состояние. Студент получает возможность неограниченного количества попыток прохождения тестирования и выбора из них попытки с наилучшим результатом [8].
Необходимо применение различных ухищрений при хранении информации о проделанной студентом работе. Решить эту проблему не просто. В любом случае невозможно узнать, что студент установил пакет программ дистанционного обучения на двух компьютерах, а затем использует один для тренировки и подбора правильных ответов, а второй уже для тестирования. При чем он может поступить проще и воспользоваться программой для создания множества виртуальных машин на одной физической. Такой программой, например, является WMware. Или может создать одну виртуальную машину и установить на ней программу, производящую тестирование. А затем, если результат прохождения тестирования его не будет устраивать, он сможет восстановить предыдущее состояние всей виртуальной системы, просто сделав откат.
Одним из методов решения данной проблемы может стать использование индивидуальной дискеты студента. Идея здесь та же, что и использовалась при защите программного обеспечения от несанкционированного копирования. Сейчас для этих целей все чаще используется технология электронных ключей (Hasp и т.д.). Смысл в том, что дискета форматируется, а затем используется особым образом. Т.е. работать с такой дискетой может только специальный набор программ. Стандартными методами такую дискету нельзя ни скопировать, ни просмотреть информацию на ней, так как она хранится в особом формате. Работать с такой дискетой могут только программы, входящие в состав системы дистанционного обучения. Без ключевой дискеты система работать не будет. На этой дискете можно отмечать количество попыток тестирование и т.д., тем самым, решая рассматриваемую проблему.
Но эта технология не является решением проблемы. Дискета может быть скопирована какой-либо программой, например, COPYWRIT, и т.п. Достаточно легко воспользоваться специализированными программами копирования или создать свой аналог. Отсюда можно сделать вывод, что разработка системы с использованием ключевой дискеты не рациональна. Подобный подход также повлечет массу сложностей. Например, не ясно, что делать в случае утери или порчи дискеты. Но, по всей видимости, в этом случае студенту придется проходить тестирование еще один раз, что явно неприемлемо.
Можно сделать вывод, что без использования специальных аппаратных средств, данная проблема также не имеет достаточно удовлетворительного решения. Но к ее решению можно постараться приблизиться, используя специфические методы хранения состояния (например, в реестре и т.п.), тем самым усложняя процесс махинации. Но в общем случае это опять не даст результата, если студент воспользуется виртуальной машиной, созданной, например, программой WMware.
Решением проблемы, может быть хранение попыток и результатов тестирования в базе данных, расположенной на web-сервере, доступ к изменению значений которой может получить только администратор системы. Это наиболее оптимальный и безопасный вариант.
3. Существует возможность создания универсального редактора файлов результатов тестирования. Он может использоваться студентом для корректировки оценок выставленных программой тестирования [8].
Здесь можно было воспользоваться идеей ключевой дискеты для сохранения результата. Тем самым модификация результата стала бы весьма затруднительной. Но этот метод имеет одно ограничение, которое делает его практически непригодным. Это необходимость использования для передачи результата дискеты. Т.е. вместо того, чтобы просто отослать результат по сети, придется доставлять его на дискете.
Но есть другой метод. Это использование шифрования. Как бы ни были сложны и надежны криптографические системы - их слабое место при практической реализации - проблема распределения ключей. Для того, чтобы был возможен обмен конфиденциальной информацией между двумя субъектами ИС, ключ должен быть сгенерирован одним из них, а затем каким-то образом опять же в конфиденциальном порядке передан другому.Т. е. в общем случае для передачи ключа опять же требуется использование какой-то криптосистемы.
Еще один вариант решения поставленной задачи - использование сети Интернет и web-интерфейса. Результаты сразу же передаются на web-сервер, и обрабатываются уже непосредственно там, тем самым исключается возможность редактирования результата, так как доступ к базе данных результатов тестирования имеет только администратор системы.
4. Существует возможность создания универсальной программы просмотра файлов с заданиями и ответами. Таким образом, студент имеет возможность узнать верные ответы на вопросы в тестах [8, 9].
Естественным выходом из данной ситуации является применение шифрования данных. Но принципиально данную проблему разрешить невозможно. Студенту необходимо задать вопрос и сверить с ответом, а для этого необходимо расшифровать данные с эталонными ответами. Для их расшифровки необходим ключ, который в любом случае надо где-то хранить. Следовательно, при желании, информацию можно получить в открытом виде.
Побочной проблемой является возможность внесения заинтересованным лицом несанкционированного изменения баз данных обучающих систем.
Решить эту проблему частично можно также, разграничив клиентскую и администраторскую части программного комплекса. В клиентской части нет возможности доступа к базе данных для ее изменения - это возможно из администраторской части при знании пароля доступа к базе данных. Для работы клиентской части необходима заполненная база данных тестовыми заданиями. Это должно быть заведомо сделано из части администратора.
Таким образом, существует защита от модификации, но нет защиты от просмотра. Так же, вполне очевидно, отсутствует и защита отчетов о результатах тестирования. Эту проблему можно решить, воспользовавшись преимуществами сетевой технологии, например, разместив базу данных вопросов и ответов на web-сервере, а доступ к ней организовать средствами какого-либо языка web-программирования, формирующего готовые страницы данных, запрашиваемые пользователем на стороне сервера. При этом просмотреть данные сможет только администратор системы, а пользователь получит только ту ограниченную их часть, которая предназначена конкретно для него.
5. Возможность модификации программного кода системы тестирования с целью изменения алгоритма выставления оценок [9].
Как ни странно, но столь важный вопрос защиты практически не рассматривается. Отчасти это понятно. Для систем построенных с использованием сети Интернет, его практически не существует. Так как контролирующая часть находится на стороне сервера, то данная проблема не актуальна. Для систем дистанционного обеспечения, предназначенных для локального режима использования, как это реализовано в кейс технологии, эта проблема практически сводится к широко известной проблеме защиты ПО от взлома.
Это еще один плюс использования сетевой технологии для решения задач, поставленных в данной работе.
Таким образом хорошим решением для многих из перечисленных проблем является:
1. Использование интернет-технологии и создание web-приложения;
2. Поэтапное преподнесение информации и поэтапный контроль знаний;
3. Очный итоговый контроль знаний;
4. Хранение вопросов и ответов, попыток и результатов тестирования в базе данных, расположенной на web-сервере, доступ к просмотру и редактированию которой есть только у определенного круга лиц;
5. Разграничение администраторской и клиентской частей приложения;
6. Использование для разработки системы скриптовых языков web-программирования, формирующих страницу с данными непосредственно на web-сервере. Пользователь системы получает страницу, содержащую текст подготовленный лично для него. Пользователь может изменить полученную страницу, но возможность редактирования самих данных, находящихся на сервере, у него отсутствует.
1.8 Преимущества использования интернет-технологии
Наиболее подходящей для организации дистанционного обучения является система World Wide Web (WWW). WWW построена на технологии, в основу которой положено понятие гипертекста. Эта система является одним из наиболее гибких средств поиска в Интернет. Гипертекстовая модель WWW может обеспечить для каждого элемента описание любого объема. Она также располагает более широкими возможностями в плане предоставления универсального интерфейса. Каждая статья содержит ссылки на другие сообщения. Программа просмотра преобразует материалы, полученные по электронной почте, в гипертекст, превращая перекрестные ссылки в гипертекстовые. Следовательно, Вы можете перемещаться между исходными статьями, статьями, продолжающими обсуждение, и по перекрестным ссылкам, используя установленные связи.
Указанные преимущества системы WWW позволяют создавать следующий спектр учебных систем с доступом через Интернет:
Интерактивные учебники и учебные пособия;
Анонимные квалификационные и пробные тесты;
Тесты и экзамены для студентов дистанционного обучения;
Организация обратной связи преподаватель - студент.
WWW позволяет комбинировать текстовый, графический, звуковой и видеоматериалы. Использование скриптовых языков web-программирования, таких как PHP или Java позволяет создавать приложения, загружаемые по сети, что снимает проблему обновления программного обеспечения. Переносимость обеспечивает корректную работу учебных программ на различных платформах без внесения изменения в исходный код.
1.9 Описание предметной области
Система дистанционного образования на сегодняшний момент является очень актуальной в рамках нашего института. В сфере последних новаций в преподавательской деятельности и требованиями, предъявляемыми к преподавателям, таких как уменьшение аудиторных часов проведения занятий и повышение уровня знаний у студентов необходимо разработать такую систему, которая позволила бы воплотить все эти требования в реальность, без ущерба к уровню знаний и заинтересованности учащихся к самообразованию.
Все это условия предрасполагают к созданию информационной системы в дополнение к уже имеющимся средствам АИС ВУЗ на базе нашего института.
Для построения системы дистанционного обучения, необходимо выбрать программные средства которые позволили бы разработать систему, полностью отвечающую требованиям системы ДО, что и было сказано ранее.
При проектировании и создании системы необходимо точно знать, что представляет из себя проектируемая среда. Систему дистанционного образования можно разделить на составляющие: информационно-образовательная среда, тьютор и слушатель.
Все они связаны через информационно образовательную среду и все они взаимодействуют между собой. Процесс взаимодействия описывает поток данных, исходящий от каждого из двух составляющих и образуя тем самым систему ДО.
Основным объектом в системе является студент специальности АСОИУ. Система дистанционного обучения позволит студенту в удобном месте в удобное время изучать учебные материалы курсов кафедры ВТИТ и проходить тестирование, при этом он может интерактивно общаться с другими студентами и задавать вопросы преподавателю посредством электронной почты или средств общения, таких как форум или чат (обратная связь). Это позволит снизить нагрузку на преподавателя, повысить уровень знаний студентов и приобщить их к самостоятельной работе. Предоставление учебной информации осуществляется в удобной форме электронного учебника, что позволяет структурировать знания и преподносить их поэтапно. Электронные учебники и тесты подготавливаются в учебном центре авторами учебных материалов и преподавателями, Размещением учебных материалов на сервере занимается администратор системы. Для доступа к системе дистанционного обучения студент должен иметь под рукой компьютер с доступом в Интернет. Все материалы курсов находятся на web-сервере, как и система тестирования. Подробная схема организации обучения представлена на рисунке 1.1
Рисунок 1.1 - Схема организации системы дистанционного обучения
Так как данная система ДО будет доступна для широкого круга людей через Интернет, все данные по курсам и тестированию будут храниться в базе данных, реализованной средствами популярного интернет-серверы баз данных MySQL. Это позволит более надежно хранить всю информацию, следить за работоспособностью сервера, на котором будет функционировать данная система и оперативно следить преподавателю за текущей успеваемостью всех "дистанционных" студентов.
Вся система построена не из одного компьютера, а из многих, что подразумевает под собой обработку информации в различных местах, как интрасети нашего института так и глобальной сети Интернет. За основную СУБД была выбрана система которая является одной из самых популярных систем, используемых в Интернет. Ее несомненные достоинства быстрота и эффективность. В связке с эффективностью языка web-скриптов PHP - получается мощное средство разработки, удовлетворяющее всем требованиям системы дистанционного обучения.
1.10 Постановка задачи
Основываясь на результатах исследования систем дистанционного обучения, преимуществ и недостатков технологий ДО, проблем ДО (в частности проблем организации системы контроля знаний), методов решения этих проблем и возможностей готовых программ ДО можно сформулировать задачу, а также основные и дополнительные требования к программному продукту.
Необходимо разработать систему, функционирующую в качестве web-приложения. Приложение должно быть написано на языке web-программирования PHP 4. Его взаимодействие с базой данных MySQL организовано средствами web-сервера Apache. Приложение предполагает обучение и тестирование студентов с использованием дистанционных методов, интерактивное общение студентов и преподавателей, а также представление различной информации для студентов, относящейся к кафедре ВТИТ. Необходимо обеспечить возможность получения доступа к web-сайту с любого клиентского компьютера с установленным Интернет-браузером без необходимости установки дополнительного программного обеспечения (ПО).
1.10.1 Основные требования к разрабатываемому ПО
Простой, удобный в навигации, интуитивно понятный студенту web-интерфейс, основанный на системе подменю;
Разграничение пользовательской и административной части программного комплекса;
Необходимо обеспечить возможность однократной регистрации студентов-пользователей в системе. Должна быть создана база данных студентов института, имеющих возможность дистанционного обучения. При регистрации требуется сверка шифра с этой базой данных. При несоответствии какого-либо параметра или повторной попытке регистрации выводится ошибка;
Зарегистрированный пользователь должен иметь возможность беспрепятственного входа в систему с использованием индивидуальных уникальных логина и пароля. При входе в систему он получает доступ к личной странице обучения;
Обучение по каждой отдельной дисциплине (курсу) происходит индивидуально. Количество одновременно изучаемых дисциплин ограничено (в данной работе по умолчанию это количество равно трем). Если студент полностью прошел обучение по отдельной дисциплине или "завалил" контрольный тест, он получает возможность регистрации другой;
Система должна обеспечивать изучение учебных материалов поэтапно и возможность промежуточного контроля студента. Итоговый контроль полученных знаний должен осуществляться очно при личном контакте студента и преподавателя;
Учебные материалы каждого курса должны быть заранее подготовлены, разбиты на несколько частей, для обеспечения последовательного поэтапного доступа к ним и выложены для доступа зарегистрированным пользователям на сервере;
Необходимо ограничить число возможных попыток прохождения каждого теста. Для сдачи теста студент предпринимает до трех попыток. При несдаче какого-либо теста, курс (дисциплина) считается не сданной. Результаты тестирования хранятся в базе данных на сервере;
Все личные параметры студентов, в том числе названия изучаемых дисциплин, текущий этап изучения каждой дисциплины, результаты прохождения тестов, а также данные для тестирования находятся на web-сервере. Права доступа на изменение данных, удаление и просмотр есть только у администратора;
Все скрипты программы тестирования находятся и выполняются на web-сервере и доступ к ним ограничен. Пользователь получает страницы содержащие только HTML-код. Реализовать эту возможность средствами языка PHP;
В качестве программного обеспечения, выбранного для разработки системы выбраны: средство разработки web-узлов Macromedia Dreamweaver MX 2004, web-сервер Apache 2, язык web-программирования PHP 4 и сервер баз данных MySQL 4.
1.10.2 Дополнительные требования к разрабатываемому ПО
Основываясь на выборе интернет-технологии дистанционного обучения можно также сформулировать дополнительные требования к разрабатываемому ПО:
Простота в освоении, требующая знаний и умений на уровне пользователя компьютера среднего уровня;
Открытость программного кода;
Отсутствие необходимости установки дополнительных программ для функционирования созданного продукта;
Web-совместимость (совместимость с различными браузерами).
Модификация web-приложения с незначительными финансовыми и трудовыми затратами;
Незначительный объем (компактность);
Обеспечение полного цикла самостоятельной работы с создаваемым web-приложением;
Обеспечение "на выходе" готового продукта, не требующего специальной доработки, но имеющего такую возможность, и пригодного к включению в образовательный процесс.
1.10.3 Требования к оформлению учебных материалов web-приложения
Теперь необходимо сказать несколько слов об оформлении учебного материала, используемого в процессе обучения.
Вообще, web-приложение предоставляет практически уникальные возможности творческого подхода к оформлению документов. Может быть выбрана любая удобная форма представления материала читателю. Это могут быть фотографии, графики, рисунки, текст, видеофрагменты и т.д. Все это может быть расположено на странице практически в произвольной форме. Но в данном случае, когда речь идет о чтении и рассмотрении материала с целью его понимания и запоминания, наверное, необходимо выработать единую концепцию оформления документов. Может быть, даже полезным будет определение подобия стандарта, который будет использоваться во всех без исключения случаях публикации учебного материала.
Уже доказано, что степень усваиваемости информации с экрана монитора на 25% ниже, чем при чтении с листа бумаги. Это обуславливает некоторые простые принципы, которые могут помочь при оформлении и публикации.
Прежде всего, не следует использовать никаких графических изображений, помещаемых на фон страницы. Фон, по всей видимости, должен быть монотонным. Если фон белый, то текст должен быть написан темным цветом, например, черным или темно-синим. Не стоит использовать темный фон и светлый шрифт - это будет утомлять глаза читателя. При подборе гарнитуры шрифта следует исходить из того, что читаемость текста, написанного гарнитурой без засечек, выше, чем текста, написанного гарнитурой с засечками. При этом следует полностью отказаться от использования мелких размеров шрифтовых гарнитур.
Нужно также учитывать, что страницы будут просматриваться в системах с разным графическим разрешением и глубиной цвета. Использование графических форматов, поддерживающих сжатие изображения (таких как GIF и JPEG), позволит сократить общий объем документов, передаваемых по сети для отображения.
Теперь остановимся на содержании документов. Удаленное обучение - это как раз тот случай, когда содержание документов должно преобладать над формой его представления. Форма всех документов должна быть как можно более строгой. Страница не должна содержать никакой лишней информации (графической или текстовой), которая могла бы отвлечь внимание читающего. Зона чтения документа должна быть как можно более узкой. Этому может способствовать создание полей по краям документа. Не следует создавать документы с горизонтальной прокруткой - читать и изучать их будет очень неудобно. Длина (объем) каждого отдельного документа не должна превышать 30-40 Кб, что позволит ускорить их загрузку.
Само собой разумеется, что все учебные материалы должны быть четко структурированы и по возможности должны предоставлять возможность интерактивного поиска среди них. Учебные материалы могут передаваться лицу, заинтересованному в их изучении, любым способом. Это может быть и непосредственная загрузка и чтение документа с web-сервера, и передача архива документов для просмотра программой-клиентом без подключения к Интернет, а также другими способами, которые будут обусловлены методикой учебного процесса.
1.11 Выбор программных средств
Современные web-приложения становятся все более сложными и все более перегружаются логикой. Раньше производительность таких приложений определялась, в основном, скоростью работы того или иного SQL-сервера и тем, существует ли для него достаточно эффективная реализация драйвера доступа к SQL-серверу для выбранного языка программирования. Это объясняется тем, что первое поколение web-приложений просто читало и писало информацию в базы данных. Пользователей при этом было относительно немного. Таким образом, время на отработку SQL-запроса составляло 70-90% от общего времени обработки HTTP-запроса.
С повышением требований к масштабируемости (увеличение количества пользователей) и наращиванием логики приложения требования к языку программирования и среде выполнения существенно возрастают. К этому следует также прибавить, что относительно недавно web-приложения перешли из мира Интернет в мир корпоративных приложений. Это снова повысило требования к эффективности среды выполнения.
В настоящие время для создания web-приложений существует множество различных языков программирования. Самые популярные из них - PHP, Perl, С# (DOT. NET), Java2. Классическая технология ASP становится историей, поскольку ASP DOT. NET практически вытеснило эту технологию на Windows-серверах в новых приложениях.
Для разработки в работе выбран язык PHP в связке с сервером баз данных MySQL. Для их работы требуется установка web-сервера Apache. В качестве среды разработки выбрано средство создания web-узлов Macromedia Dreamweaver MX 2004.
1.11.1 Преимущества использования PHP в сравнении с другими языками
PHP - это инструмент объектно-ориентированного программирования с открытым кодом (open source), язык серверных скриптов (server scripting language), встраиваемый в HTML, который интерпретируется и выполняется на сервере [11].
PHP является препроцессором HTML.Т. е. его работа построена по схеме, показанной на рисунке 1.2:
Рисунок 1.2 - Схема работы препроцессора PHP
До того, как сервер "отдаст" файл браузеру, его просматривает препроцессор-интерпретатор. Для того, чтобы это происходило, файлы, которые подвергаются обработке препроцессором, должны иметь определенное расширение (обычно это. phtml или. php, но эти значения можно поменять) и содержать (хотя это не обязательное требование) код для препроцессора. Перед отправкой страницы PHP-код проигрывается на сервере и браузеру выдается результат в виде опять таки HTML-страницы, которая может сильно отличаться от той, что хранится на сервере. Обычные же страницы, имеющие расширение. html/htm web-сервер будет отправлять браузеру без какой-либо обработки.
Основное отличие от CGI-скриптов, написанных на других языках, типа Perl или C - это то, что в CGI-программах вы сами пишете выводимый HTML-код, а, используя PHP - вы встраиваете свою программу-скрипт в готовую HTML-страницу, используя открывающий и закрывающий теги (в примере <? php и? >).
PHP называется языком серверных скриптов в отличие от JavaScript/Jscript/VBScript, которые являются языками клиентских скриптов. Это значит, что PHP-скрипт выполняется на сервере, а клиенту передается результат его работы, тогда как в JavaScript-код полностью передается на клиентскую машину и только там выполняется браузером.
Пользователи MS Internet Information Server найдут, что PHP очень похож на Active Server Pages (ASP), а пользователи Java скажут, что PHP похож на Java Server Pages (JSP). Еще некоторыми аналогами PHP являются языки ColdFusion и embPerl. Все эти языки позволяют размещать код, выполняемый на Web-сервере, внутри HTML-страниц. В результирующей web-странице нет и следа PHP-кода.
На PHP можно сделать все, что можно сделать с помощью CGI-программ. Например: обрабатывать данные из форм, генерировать динамические страницы, получать и посылать куки (cookies).
Кроме этого в PHP включена поддержка многих баз данных (databases), что делает написание Web-приложений с использованием БД до невозможности простым.
Вот неполный перечень поддерживаемых БД: Adabas D, InterBase, Solid, dBase, mSQL, Sybase, Empress, MySQL, Velocis, FilePro, Oracle, Unix dbm, Informix, PostgreSQL, ODBC.
Вдобавок ко всему PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и даже HTTP, а также имеет возможность работать с сокетами (sockets) и общаться по другим протоколам.
Разработчикам web-приложений нет необходимости говорить, что web-страницы - это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем: поиск информации, продажа продуктов, конференции и т.п. До недавних пор все это традиционно реализовалось CGI-скриптами, написанными на Perl. Но оказалось, что CGI-скрипты очень плохо масштабируемы. Каждый новый вызов CGI-скрипта, требует от ядра порождения нового процесса, а это занимает процессорное время и тратит оперативную память. PHP предлагает другой вариант - он работает как часть web-сервера, и этим самым похож на ASP от Microsoft или ColdFusion от Allaire.
Синтаксис PHP очень похож на синтаксис C или Perl. Люди, знакомые с программированием, очень быстро смогут начать писать программы на PHP. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению/освобождению памяти.
Программы, написанные на PHP, читаются достаточно легко. В отличие от Perl-программ PHP-код легко зрительно прочитать и понять.
В дополнение к своей бесплатности (хотя MySQL требует приобретения лицензии при использовании ее в коммерческих целях) связка PHP-MySQL является кросс-платформенной. Это значит, что вы можете, работая в Windows, разрабатывать приложения, предназначенные для работы под Unix. Кроме того, PHP может работать как внешний CGI-процесс, либо как обычный интерпретатор скриптов, либо как модуль, подключаемый к web-серверу Apache или IIS.
И наконец, так как данный продукт разрабатывается совместными усилиями, существует огромное количество документации и списков рассылки, к которым можно обратиться в случае возникновения каких-либо вопросов.
Найденные ошибки исправляются достаточно быстро, ваши предложения и замечания всегда выслушают, рассмотрят, и если они окажутся ценными - реализуют в новой версии.
1.11.2 Сервер баз данных MySQL и его особенности
MySQL - небольшой, компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании [11].
MySQL был разработан компанией TcX для внутренних нужд, которые заключались в быстрой обработке очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 БД, которые содержат 10,000 таблиц, из которых более чем 500 имеют более 7 миллионов строк. MySQL является идеальным решением для малых и средних приложений. Исходные тексты сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности. В варианте под Windows, MySQL может запускаться как сервис Windows NT или как обычный процесс на Windows 95/98.
MySQL-сервер является бесплатным для некоммерческого использования.
MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД.
Краткий перечень возможностей MySQL.
1 Поддерживается неограниченное количество пользователей, одновременно работающих с базой данных;
2 Количество строк в таблицах может достигать 50 млн;
3 Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих;
4 Простая и эффективная система безопасности.
MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД. В MySQL отсутствуют:
Не реализована поддержка транзакций. Взамен предлагается использовать LOCK/UNLOCK TABLE;
Нет поддержки триггеров и хранимых процедур;
Нет поддержки внешних ключей.
По словам создателей именно эти пункты дали возможность достичь высокого быстродействия. Их реализация существенно снижает скорость сервера. Эти возможности не являются критичными при создании web-приложений, что в сочетании с высоким быстродействием и малой ценой позволило серверу приобрести большую популярность.
1.11.3 Выбор средства проектирования web-узлов
На сегодняшний момент существует два мощных средства создания web-узлов - это последние версии Frontpage 2003 компании Microsoft и Dreamweaver MX 2004 компании Macromedia [7].
Программный пакет FrontPage долгое время развивался и совершенствовался фирмой Microsoft. Его версия FrontPage 2000 отличается от всех предыдущих тем, что она впервые интегрирована в структуру пакета программ Microsoft Office. Вероятно, это объясняется тем обстоятельством, что проектирование web-сайтов и мультимедийных электронных изданий из задачи для профессионалов перешли в сферу офисной деятельности. Однако, FrontPage 2002 вновь поставляется отдельно от Microsoft Office XP.
FrontPage специализирован на подготовке электронных изданий, в частности - на разработке web-узлов целиком. Он поддерживает фреймовую структуру, ориентирован на простоту и удобство создания гиперссылок, обеспечивает единый стиль оформления различных web-страниц, оптимизирует скорость их загрузки. Таким образом, пакет отличается продуманностью реализации как эстетических, так и технических аспектов создания электронных изданий и позволяет, в какой-то степени, автоматизировать процесс проектирования. Неудобством в работе является автоматическая вставка не всегда нужных тэгов.
Программный пакет Dreamweaver, как и FrontPage, предназначен для проектирования различных сайтов, в том числе и сайтов издательств, одной из задач которых является распространение электронных изданий. Он пригоден как для создания небольших, так и очень больших сайтов. В первом случае разработкой занимается единственный специалист - web-мастер. В последнем случае над проектом работает целый коллектив, включающий администратора проекта, web-дизайнера, HTML-верстальщика, web-программиста, корректора, менеджера рассылок. Многие специалисты утверждают, что профессиональные web-дизайнеры в своей работе чаще всего используют Adobe Photoshop для подготовки графики и Macromedia Dreamweaver - для дизайна отдельных web-страниц. Особенностью данного программного средства является хорошая поддержка языка PHP, который используется в проекте для программирования и автоматическая или ручная синхронизация измененных данных с удаленным сервером. Эти особенности, а также простота и быстрота работы программы во многом обуславливают выбор именно этого программного продукта в качестве средства проектирования разрабатываемого web-приложения.
2. Проектная часть
2.1 Построение инфологической модели предметной области
Инфологическая модель предметной области - это описание предметной области, выполненное с использованием специальных языковых средств, не зависящих от использования в дальнейшем программных средств.
Требования к инфологической модели:
адекватность отображения предметной области;
непротиворечивость;
отражение потребности всех пользователей будущей информационной системы;
допущение возможных расширений модели, а также при большой размерности инфологической модели - композиции и декомпозиции;
желательно применение языка описания предметной области как при ручном, так и при автоматизированном проектировании;
легкость восприятия разными категориями пользователей.
Инфологическая модель является ядром системы проектирования. Она содержит всю необходимую информацию для проектирования приложения.
Инфологическая модель предметной области представлена в приложении А.
Для описания инфологической модели данных можно выделить десять объектов, которые участвуют в обработке информации: "Пользователи", "Курсы ДО", "Подразделы курса", "Преподаватели", "Курсы пользователей", "Тесты пользователей", "Допустимые шифры", "Вопросы тестов", "Ответы на вопросы тестов" и "Новости". Каждый объект обладает своими свойствами.
Объект "Пользователи" включает в себя данные о пользователях зарегистрированных в системе. Он обладает свойствами: Логин, Пароль, Фамилия, Имя, Отчество, Учебная группа, Дата регистрации, Пол, Адрес электронной почты, Шифр студента, Флаг администрирования. Все указанные свойства, кроме свойств Логин, Дата регистрации и Шифр студента, являются динамическими, т.е. могут меняться. Поля Логин, Дата регистрации и Шифр студента- статические. Их значения остаются постоянными.
Объект "Курсы ДО" включает в себя информацию о дисциплинах дистанционного обучения. Он обладает свойствами: Идентификатор курса, Название курса, Аннотация курса, Полное описание курса, Картинка курса, Продолжительность курса, №. Все указанные свойства, кроме свойства Идентификатор курса, являются динамическими, т.е. могут меняться. Поле Идентификатор курса - статическое.
Объект "Подразделы курса" включает в себя информацию о подразделах курсов. Он обладает свойствами: Идентификатор подраздела курса, № курса, № подраздела, Ссылка загрузки подраздела, Описание подраздела, Название теста по подразделу, Количество вопросов в тесте. Все указанные свойства, кроме свойства Идентификатор подраздела курса, являются динамическими, т.е. могут меняться. Поле Идентификатор подраздела курса - статическое.
Объект "Преподаватели" включает в себя информацию о преподавателях курсов ДО. Он обладает свойствами: Идентификатор преподавателя, Фамилия Имя Отчество преподавателя, Ученая степень преподавателя, Адрес электронной почты преподавателя, Информация о преподавателе, Фото преподавателя. Все указанные свойства, кроме свойства Идентификатор преподавателя, являются динамическими, т.е. могут меняться. Поле Идентификатор преподавателя - статическое.
Объект "Курсы пользователей" включает в себя информацию о курсах ДО, на которые зарегистрировались пользователи системы. Он обладает свойствами: Идентификатор курса, Логин, № курса, Статус курса, Дата регистрации курса. Все указанные свойства, кроме свойств Идентификатор курса и Дата регистрации курса, являются динамическими, т.е. могут меняться. Поля Идентификатор курса и Дата регистрации курса - статические, их значение не меняется.
Объект "Тесты пользователей" включает в себя информацию о результатах тестирования зарегистрированных студентов. Он обладает свойствами: Идентификатор теста, № курса пользователя, Число попыток теста, Процент лучшего результата теста, Дата последнего тестирования. Все указанные свойства, кроме свойства Идентификатор теста, являются динамическими, т.е. могут меняться. Поле Идентификатор теста - статическое.
Объект "Допустимые шифры" содержит шифры студентов, имеющих возможность дистанционного обучения. Он обладает свойством: Шифр студента. Это поле не изменяется - оно статическое.
Объект "Вопросы тестов" содержит вопросы для тестов. Он обладает свойствами: Идентификатор вопроса, № подраздела курса, Контекст вопроса. Все указанные свойства, кроме свойства Идентификатор вопроса, являются динамическими, т.е. могут меняться. Поле Идентификатор вопроса - статическое.
Объект "Ответы на вопросы тестов" содержит ответы на вопросы тестов. Он обладает свойствами: Идентификатор ответа, № вопроса, Контекст ответа, Флаг правильного ответа. Все указанные свойства, кроме свойства Идентификатор ответа, являются динамическими, т.е. могут меняться. Поле Идентификатор ответа - статическое.
Объект "Новости" содержит информацию для вывода новостей. Он обладает свойствами: Идентификатор новости, Название новости, Дата новости, Контекст новости, Автор новости. Все указанные свойства, кроме свойства Идентификатор новости, являются динамическими, т.е. могут меняться. Поле Идентификатор новости - статическое.
Объекты "Пользователи" и "Курсы пользователей" связаны между собой связью "один-ко-многим", объекты "Пользователи" и "Допустимые шифры" - связью "один-к-одному", объекты "Курсы пользователей" и "Курсы ДО" - связью "многие-к-одному", объекты "Курсы пользователей" и "Тесты пользователей" - связью "один-ко-многим", объекты "Курсы пользователей" и "Тесты пользователей" - связью "один-ко-многим", объекты "Курсы ДО" и "Преподаватели" - связью "многие-к-одному", объекты "Курсы ДО" и "Подразделы курса" - связью "один-ко-многим", объекты "Тесты пользователей" и "Подразделы курса" - связью "многие-к-одному", объекты "Подразделы курса" и "Вопросы тестов" - связью "один-ко-многим", объекты "Вопросы тестов" и "Ответы на вопросы тестов" - связью "один-ко-многим", объект "Новости" не связан с другими объектами.
2.2 Построение даталогической модели предметной области
На основании анализа предметной области и построенной инфологической модели разработана реляционная база данных RLI_test. Для реляционной базы данных проектирование физической структуры заключается в том, чтобы разбить всю информацию по таблицам, а также определить состав полей для каждой из этих таблиц и установить связи между таблицами.
В каждой таблице присутствует уникальное идентификационное поле, которое позволяет однозначно идентифицировать запись таблицы. Такая структура исключает избыточность данных, позволяет ускорить отбор записей по условию, исключает вероятность конфликтов при совместной работе нескольких пользователей.
Одной из основных таблиц является таблица "users". В ней хранится вся информация о пользователях, зарегистрированных в системе. Таблица содержит поля - login - идентификационное поле, идентифицирующее единственным образом студента при входе в систему. Passwd - пароль для доступа к подсистеме обучения. Пароль кодируется шифром md5, алгоритм которого реализован в языке PHP. Кодирование позволяет защитить пароль от просмотра заинтересованными пользователями. По этим двум параметрам осуществляется вход в систему.
Поле n_group хранит информацию о названии учебной группы студента. Поле registration_date содержит дату регистрации студента в системе, это поле заполняется автоматически текущей датой при успешной регистрации в системе. Поле sex хранит пол студента - женский или мужской. В поле student_code хранится шифр студента. По этому полю система проверяет, может ли студент обучаться дистанционно или нет. Запретить обучение может администратор системы. Проверка осуществляется поиском значения шифра в таблице student_codes.
Поле u_admin идентифицирует данного пользователя как администратора или обычного пользователя. Если пользователь является администратором, он обладает дополнительными правами по редактированию базы данных, просмотру статистики, успеваемости, редактированию данных курсов и редактированию базы тестов.
Ключевым полем в таблице users является поле login. По полю login данная таблица связана с таблицей "user_courses" связью "один-ко-многим", по полю student_code - c таблицей "student_codes" связью "один-к-одному". Типы данных полей таблицы "users" представлены в таблице 2.1
Таблица 2.1 - Структура таблицы "users"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Логин студента | login | char(16) | Ключевое |
2 | Пароль | passwd | char(128) | NOT NULL |
3 | Фамилия | lastname | char(40) | NOT NULL |
4 | Имя | firstname | char(40) | NOT NULL |
5 | Отчество | middlename | char(40) | NOT NULL |
6 | Учебная группа | n_group | char(40) | NOT NULL |
7 | Дата регистрации в системе | registration_date | date | |
8 | Пол | sex | enum('мужской', 'женский') | |
9 | Адрес электронной почты | char(128) | NOT NULL | |
10 | Шифр студента | student_code | char(10) | NOT NULL, UNIQUE |
11 | Флаг администратора | u_admin | enum('y', 'n') | DEFAULT 'n' |
В таблице "courses" хранится информация о курсах дистанционного обучения. Ключевым полем в таблице является поле id_course. Таблица связана по полю id_course с таблицей "user_courses" и таблицей "course_parts" связью "один-ко-многим", по полю n_teacher с таблицей "teachers" связью "многие-к-одному". Поле course_period содержит информацию о продолжительности курса в месяцах. Если студент не прошел курс с даты регистрации в течение числа месяцев, указанных в course_period курс считается не сданным. Структура таблицы с описанием типов полей приведена в таблице 2.2
Таблица 2.2 - Структура таблицы "courses"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор курса | id_course | int | Ключевое, AUTO_INCREMENT |
2 | Название курса | course_name | char(128) | NOT NULL |
3 | Аннотация курса | course_annotation | text | |
4 | Ссылка на файл описания курса | course_full_description | char(128) | |
5 | Ссылка на файл картинки курса | course_picture_link | char(128) | |
6 | Продолжительность курса | course_period | float | |
7 | Преподаватель курса | n_teacher | int | NOT NULL |
В таблице "course_parts" хранится информация о подразделах курсов дистанционного обучения. Ключевым полем в таблице является поле id_course_part. Таблица связана по полю id_course_part с таблицей "questions" и таблицей "user_tests" связью "один-ко-многим", по полю n_course с таблицей "courses" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.3
Таблица 2.3 - Структура таблицы "course_parts"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор подраздела курса | id_course_part | int | Ключевое, AUTO_INCREMENT |
2 | Курс | n_course | int | NOT NULL |
3 | Подраздел курса | n_part | int | NOT NULL |
4 | Ссылка на файл загрузки подраздела курса | download_link | char(128) | NOT NULL |
5 | Описание ссылки загрузки | download_description | text | |
6 | Название теста | test_name | char(128) | |
7 | Количество вопросов, выводимых при тестировании | test_question_count | int | NOT NULL, DEFAULT 5 |
В таблице "questions" хранится информация о вопросах тестов. Ключевым полем в таблице "questions" является поле id_question. Таблица связана по полю id_question с таблицей "answers" связью "один-ко-многим", по полю n_course_part с таблицей "course_parts" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.4
Таблица 2.4 - Структура таблицы "questions"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор вопроса | id_question | int | Ключевое, AUTO_INCREMENT |
2 | Подраздел | n_course_part | int | NOT NULL |
3 | Содержимое вопроса | question_content | char(255) | NOT NULL |
В таблице "answers" хранится информация о вариантах ответов на вопросы тестов. Ключевым полем в таблице является поле id_answer. Таблица связана по полю n_question с таблицей "questions" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.5
Таблица 2.5 - Структура таблицы "answers"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор ответа | id_answer | int | Ключевое, AUTO_INCREMENT |
2 | Вопрос | n_question | int | NOT NULL |
3 | Содержимое ответа | answer_content | char(255) | NOT NULL |
4 | Флаг правильного ответа | right_answer | enum('y', 'n') | NOT NULL, DEFAULT 'n' |
В таблице "user_courses" хранится информация о курсах, на которые зарегистрировались студенты. Ключевым полем в таблице "user_courses" является поле id_user_course. Таблица связана по полю id_user_course с таблицей "user_tests" связью "один-ко-многим", по полю login с таблицей "users" связью "многие-к-одному", по полю n_course с таблицей "courses" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.6
Таблица 2.6 - Структура таблицы "user_courses"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор курса студента | id_user_course | int | Ключевое, AUTO_INCREMENT |
2 | Логин студента | login | char(16) | NOT NULL |
3 | Курс | n_course | int | NOT NULL |
4 | Статус курса | status | enum('reg', 'end', 'not') | NOT NULL |
5 | Дата регистрации курса | registration_date | date | |
6 | Дата окончания курса | end_date | date |
В таблице "user_tests" хранится информация о тестах пройденных студентами. Ключевым полем в таблице "user_tests" является поле id_user_test. Таблица связана по полю n_user_course с таблицей "user_courses" связью "многие-к-одному", по полю n_course_part с таблицей "course_parts" связью "многие-к-одному". Поле status может принимать одно из трех значений - reg - студент обучается, end - студент успешно завершил курс, not - студент не прошел курс. Поле registration_date заполняется автоматически текущей датой при регистрации на курс. Поле end_date заполняется автоматически текущей датой при успешном или неуспешном завершении курса. Структура таблицы с описанием типов полей приведена в таблице 2.7
Таблица 2.7 - Структура таблицы "user_tests"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор теста студента | id_user_test | int | Ключевое, AUTO_INCREMENT |
2 | Курс студента | n_user_course | int | NOT NULL |
3 | Подраздел курса | n_course_part | int | NOT NULL |
4 | Число использованных попыток | attemps | int | |
5 | Процент лучшего результата | percent | int | |
6 | Дата последнего тестирования | last_test_date | date |
В таблице "teachers" хранится информация о преподавателях. Ключевым полем в таблице "teachers" является поле id_teacher. Таблица связана по полю id_teacher с таблицей "courses" связью "один-ко-многим". Поле attemps содержит число попыток студента пройти тест. В поле last_test_date заносится дата последней попытки прохождения теста. Структура таблицы с описанием типов полей приведена в таблице 2.8
Таблица 2.8 - Структура таблицы "teachers"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор преподавателя | id_teacher | int | Ключевое, AUTO_INCREMENT |
2 | Имя преподавателя | teacher_name | char(128) | NOT NULL |
3 | Ученая степень преподавателя | teacher_degree | char(128) | NOT NULL |
4 | Адрес электронной почты преподавателя | teacher_email | char(128) | |
5 | Ссылка на файл с фото преподавателя | teacher_photo | char(128) | |
6 | Информация о преподавателе | teacher_about | text |
В таблице "correct_codes" хранится информация о шифрах студентов, которым разрешено администратором обучаться дистанционно. Ключевым полем в таблице "correct_codes" является поле student_code. Таблица связана по полю student_code с таблицей "users" связью "один-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.9
Таблица 2.9 - Структура таблицы "correct_codes"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Шифр студента | student_code | int | Ключевое |
В таблице "news" хранится информация о новостях сайта. Ключевым полем в таблице "news" является поле id_news. Структура таблицы с описанием типов полей приведена в таблице 2.10
Таблица 2.10 - Структура таблицы "news"
№п/п | Описание | Поле | Тип данных | Дополнительные параметры |
1 | Идентификатор новости | id_news | int | Ключевое, AUTO_INCREMENT |
2 | Название новости | title | char(128) | NOT NULL |
3 | Дата новости | date_news | date | |
4 | Ссылка на файл новости | body_news | char(128) | NOT NULL |
5 | Автор новости | autor_news | char(128) |
Схема даталогической модели предметной области представлена на рисунке 2.1
Рисунок 2.1 - Даталогическая модель предметной области
2.3 Тонкости установки и настройки аппаратно-программного комплекса
Для разработки системы используется комплекс программ, без которых создание требуемого приложения было бы невозможным. Как уже говорилось ранее, в качестве web-сервера выбран Apache версии 2.0.35, в качестве языка программирования PHP 4.1.2, в качестве сервера баз данных MySQL 4.0.21. Для разработки и тестирования приложения используется Macromedia Dreamweaver MX 2004. Каждый из этих продуктов требует тонкой настройки. В этом подразделе описаны тонкости установки и настройки перечисленных программных средств.
2.3.1 Web-сервер Apache
Функции Web-сервера выполняет не компьютер, а программа, установленная на нем. Apache и является той самой программой. Когда браузер пользователя подключается к Web-серверу и посылает заголовок GET (это просьба передать файл), его запрос обрабатывает Apache. Apache проверяет, есть ли указанный в заголовке GET файл, и, если есть, отправляет его вместе с заголовками браузеру.
Apache - это своего рода стандарт Web-сервера в Интернете. Его основным конкурентом является IIS (Internet Information Server) от Microsoft, который работает под Windows. Apache, хотя и существуют его версии под Windows, преимущественно устанавливается на Unix-подобных операционных системах - Linux и FreeBSD. Нужно также заметить, что большинство хостеров используют именно Apache, а не IIS. IIS устанавливается в основном на корпоративных серверах, работающих под Windows.
Сервер Apache просто необходим - без него мы не сможем протестировать web сценарии PHP. Конечно, можно тестировать и без сервера, но тогда нужно будет использовать сервер хостера, но в этом случае затраты на Интернет сильно возрастут.
2.3.2 Установка и настройка Apache
Для установки Apache для Windows нужно посетить сайт http: // www. apache. org и загрузить версию Apache для Windows) [12]. Установка сервера проблем не вызывает: нужно просто запустить программу установки и выбрать тип установки Typical. Еще потребуется указать каталог, в который будет производиться установка. По умолчанию будет установлен в каталог "C: \Program Files\Apache Group\Apache". Окно установки с заданием некоторых параметров показано на рисунке 2.2
Рисунок 2.2 - Окно установки web-сервера Apache
По окончании установки Apache необходимо настроить. По умолчанию корневым каталогом для HTML-документов будет C: \Program Files\Apache Group\Apache\htdocs. Такое расположение не очень удобно, поэтому создадим каталог С: \www, в котором будут находиться файлы. В этом же каталоге создадим два подкаталога - cgi и html. В первом будут находится CGI-приложения, а во втором - HTML-файлы.
Затем нужно открыть в любом текстовом редакторе файл C: \Program Files\Apache Group\Apache\conf \httpd. conf и отредактировать следующие директивы:
ServerName - установить имя сервера. При этом, директива ServerName по умолчанию закомментирована, то есть игнорируется сервером. Поэтому необходимо раскомментировать эту директиву, убрав перед ней значок #.
DocumentRoot - установим значение С:/www/html:
DocumentRoot с:/www/html
Таким образом, укажем каталог, в котором будут размещаться HTML-файлы.
Установим директивы ScriptAlias так:
ScriptAlias/cgi/"с:/www/cgi/"
ScriptAlias/cgi-bin/"c:/www/cgi/"
Благодаря этому создадим два псевдонима для каталога с:/www/cgi. Таким образом, если будет указан путь http: // localhost/cgi или http: // localhost/cgi-bin, то на самом деле обращение будет к каталогу с:/www/cgi.
Секцию <Directory "С:/Program Files/Apache Group/Apache/htdocs"> заменим на следующую:
<Directory "c:/www">
Options Indexes Includes AllowOverride All Allow from all </Directory>
Таким образом, зададим ряд настроек по умолчанию для каталога с: \www и всех его подкаталогов. А именно: автоматическую генерацию списка содержимого каталога при просмотре его в браузере, поддержку SSI, а также возможность использовать файлы. access для индивидуальной настройки каталогов.
Убедимся, что есть директива AddHandler:
AddHandler cgi-script. bat. exe. cgi
Эта директива указывает Apache на то, что файл с расширениями. bat. exe и. cgi следует воспринимать как CGI-модули.
Установим параметры SSI:
Addtype text/html. shtml
AddHandler server-parsed. shtml. html. htm Благодаря этому файлы с указанными расширениями будут обрабатываться SSI.
Необходимо сохранить отредактированный файл.
Теперь протестируем работу Apache. Запуск:
C: \Program Files\Apache Group\Apache\apache. exe
При успешном запуске появится надпись
Apache/2.0.35 (Win32) running...
Теперь можно проверить корректность работы сервера. Запустим Internet Explorer или любой другой браузер и введем: http: // localhost. Вы должны увидеть стартовую страницу Apache. Теперь проверим CGI и SSI. Для этого создадим файл test. bat и поместим его в каталог c: \www\cgi:
@echo off
echo Content-type: text/html
echo.
echo.
echo Hello!
В окне браузера введите http: // localhost/cgi/test. bat -увидите слово Hello! Для проверки SSI нужно создать файл test. html и поместить его в каталог c: \www\html:
SSI Test<br>
<! -tinclude virtual="/index. html" ->
SSI (Server Side Include) - включение со стороны сервера, позволяет включать в Web-страницу код HTML, находящийся в других файлах.
В окне браузера при вызове файла test. html вы увидите SSI Test, a затем - стартовую страницу Apache.
2.3.3 Установка РНР и настройка Apache для работы с РНР
После установки Apache установим РНР 4. Версию РНР 4 для Windows можно скачать по адресу http: // www. php. net (последняя версия РНР доступна по адресу http: // www. php. net/downloads. php) [13].
Запустим программу установки, которая по умолчанию установит РНР 4 в каталог C: \Program Files\PHP 4\. Однако в процессе установки можно выбрать другой каталог.
Окно установки PHP показано на рисунке 2.3
Рисунок 2.3 - Окно установки PHP 4
Сразу после установки необходимо открыть файл php. ini (он будет в каталоге, куда вы установили РНР) и отредактировать следующие параметры:
[mail function] ; For Win32 only. SMTP = localhost
sendmail_from = me@localhost. com
Параметр SMTP задает имя SMTP-сервера. По умолчанию в качестве SMTP-сервера используется локальный компьютер - это хорошо для Linux, но в Windows вам нужно указать SMTP-сервер провайдера, потому что вряд ли у вас будет установлен почтовик под Windows. Если вы не сделаете этого, функция mail(), отправляющая сообщения, работать не будет.
После этого откроем файл httpd. conf (файл конфигурации Apache) и найдем в нем строку:
AddType application/x-httpd-php php
Убедимся, что данная строка не закомментирована, то есть перед ней не стоит значок #. Если он стоит - уберем его. Таким образом, всем файлам с расширением. php будет поставлен в соответствие МIМЕ-тип application/x-httpd-php.
Типы MIME используются для идентификации типа содержимого. Благодаря этому приложения смогут определять, какого вида данные присланы и в каком соответствии сети проводить их обработку. Перечень всех типов MIME, поддерживаемых системой, находится в файле C: \Program Files\Apache Group\Apache\conf. Тип MIME указывается в формате: тип/подтип. Вот основные типы MIME:
application - приложение (программа или документ, связанный с программой).
audio - аудиофайл (audio/mpeg).
image - графический файл (audio/png).
text - текст (text/html - в формате HTML, text/plain - простой).
MIME-тип пересылаемых по сети данных указывается в заголовке Content-type.
Сразу же после этой строки добавим строки:
ScriptAlias/_php_/"с:/Program Files/PHP5/" Action application/x-httpdhp "/_php_/php. exe"
В этих двух строках мы сначала создаем псевдоним _php_ для каталога с:/Program Files/PHP 4/, а затем связываем все файлы типа application/x-httpd-php с обработчиком php. exe.
Теперь можно протестировать РНР. Для этого создадим файл test. php:
<?
phpinfo ();? >
Данный файл нужно поместить в каталог c: \www\html. В браузере введите http: // localhost/test. php. В итоге вы должны увидеть результат работы функции phpinfo().
2.3.4 Установка MySQL
Сервер MySQL можно загрузить по адресу http: // www. mysql. com. Программа установки установит сервер в каталог С: \Progam Files\MySQL\. Для запуска MySQL создадим файл server. bat:
@echo off
"С: \Program Files\MySQL\bin\mysqld"
start/m "C: \Program Files\Apache Group\Apache\apache"
Если вы работаете в Windows NT или 2000, server. bat должен выглядеть так, как это показано в следующем листинге:
@echo off
start C: \Progra~l\MySQL\bin\mysqld-nt - standalone
C: \Progra~l\Apache~l\Apache\apache - k start
Теперь для запуска Apache и MySQL нужно ввести команду server. Создадим файл shutdown. bat, который будет останавливать оба сервера:
@echo off
C: \Progra~l\Apache~l\Apache\apache - k shutdown
C: \Progra~l\MySQL\bin\mysqladmin - u root shutdown
Также необходимо добавить в конец файла my. ini следующие строки (конкретно для данного проекта), задающие логин и пароль доступа к серверу:
user=root
password=geijr
Файл настройки сервера баз данных MySQL находится по умолчанию в корневом каталоге Windows.
Просмотреть все базы данных и таблицы, созданные на сервере MySQL можно утилитой WinMySQLadmin 1.4, окно которой показано на рисунке 2.4.
Рисунок 2.4 - Окно утилиты WinMySQLadmin 1.4
2.4 Работа в Macromedia Dreamweaver MX 2004
Интерфейс пакета Dreamweaver показан на рисунке 2.5 Помимо строки заголовка, строки меню, панели инструментов и стандартного рабочего окна программы отметим наличие нескольких палитр, которые, как и в графических редакторах, размещаются в рабочем окне программы.
Рисунок 2.5 - Интерфейс пакета Dreamweaver MX 2004 с командами меню Window.
Остановимся на палитре Object (Объекты), внешний вид которой представлен на рисунке 2.6 Внешний вид палитры изменяется в зависимости от типа объекта, выбранного в раскрывающимся списке, расположенного в ее верхней части; таким образом палитру можно назвать адаптивной. По умолчанию в списке устанавливается раздел Common (Основные). На рисунке 2.6 выбран именно этот вариант.
Рисунок 2.6 - Палитра Objects раздел Common
Эта палитра с помощью различных инструментов позволяет включать в состав страницы различные элементы, в частности, по порядку расположения кнопок в палитре в направлении слева направо и сверху вниз: Image (Изображение), Rollover Image (Анимированную кнопку), внешний вид которой изменяется при подведении к ней курсора мыши, Table (Таблицу), Tabular Data (таблицу с занесенными в нее данными, подготовленными заранее в другом программном пакете), Draw Layer (Новый изобразительный слой), Navigation Bar (Навигационную панель со специальными кнопками для перемещения по сайту), Horizontal Rule (Горизонтальную линейку), Е-mail Link (Ссылку на электронный адрес), Date (Текущую дату), Server-Side Include (Активизацию серверной стороны), Flash Button (Анимированную Flash-кнопку), Flash Text (Анимированный Flash-текст), Shockwave (Анимационный файл в Shockwave-формате), Generator (средства, делающие Web-страницы динамическими, в частности, апплеты и элементы ActiveX, объекты, воспроизводимые с помощью дополнительных модулей) и пр.
Палитра Objects раздел Forms (Формы), показанная на рисунке 2.7, служит для создания форм (см. разд.2.8) и содержит следующие кнопки: Form (Форма), Text field (текстовое поле), Button (Кнопка), Checkbox и Radio Batton (Переключатели), List/menu (Список/меню), File field (Поле для передачи файлов) и Image field (Поле для передачи изображений), Hidden field (Скрытое поле) и Jump menu (Указатель гиперссылки для перехода на другой сайт).
Рисунок 2.7 - Палитра Objects раздел Forms
Палитра Objects раздел Text (Формы), показанная на рисунке 2.8 позволяет включать в страницу различные элементы текстового форматирования - жирный текст, наклонный, создавать списки, переносы и т.п. (рисунок 2.8).
Рисунок 2.8 - Палитра Objects раздел Text
В нижней части всех палитр группы Object (Объект) предусмотрены поля Layout (Выравнивание) и View (Просмотр), которые позволяют наблюдать и управлять размещением объектов на Web-странице (рисунок 2.9).
Рисунок 2.9 - Палитра Objects раздел Layout
И наконец, важная палитра, облегчающая во многом работу со скриптами PHP - палитра Object - PHP. Предусмотрена вставка различных элементов языка PHP, например открывающего и закрывающего тэгов, операторов и т.п. (рисунок 2.10).
Рисунок 2.10 - Палитра Objects раздел PHP
Прежде всего, надо тщательно продумать общую структуру сайта, а также структуру каталогов (папок) и размещение в них файлов. В начале работы следует разместить в корневом каталоге сайта все PHP-файлы и несколько подкаталогов, в том числе: изображений, создания баз данных, файлов, данных, новостей.
Для непосредственного создания сайта следует предварительно сделать все необходимые установки. С этой целью выбирается команда Edit | Preferences (Редактирование | Настройки). В результате откроется диалоговое окно Preferences (Настройки), показанное на рисунке 2.11 Здесь задаются различные настройки для будущего сайта - название, цвета ссылок, размещение каскадных таблиц стилей CSS, параметры использования различных элементов.
Рисунок 2.11 - Диалоговое окно Preferences
Для изменения любой страницы в Dreamweaver используется редактор страниц. На рисунке 2.12 показана рабочая область с загруженным документом inde. php. Редактировать можно в трех режимах - кода, дизайнера, совмещенного (кода и дизайнера). Для работы с PHP больше всего подходит первый режим. Просматривать страницы и запускать скрипты удобно по клавише F12, которая автоматически открывает страницу в выбранном заранее браузере.
Рисунок 2.12 - Редактор кода страниц
Для синхронизации изменений внесенных при модификации страниц сайта или добавлении данных (файлов или рисунков) используется редактор файлов (рисунок 2.13). Добавлять или удалять файлы можно из контекстного меню редактора, выбирая соответствующие пункты. Удобнее всего редактировать данные и модифицировать страницы в локальном режиме Local View, а затем синхронизировать с сервером в режиме Testing Server через пункт меню Sinchronize.
Рисунок 2.13 - Редактор файлов сайта
2.5 Создание электронных учебных материалов для ДО
Электронное пособие (как впрочем и любое электронное издание) для достижения максимального эффекта должно быть составлено несколько иначе по сравнению с традиционным печатным пособием: главы, параграфы и другие разделы должны быть более короткие, что соответствует меньшему размеру компьютерных экранных страниц по сравнению с книжными, затем каждый раздел, соответствующий рубрикации нижнего уровня, должен быть разбит на дискретные фрагменты, каждый из которых содержит необходимый и достаточный материал по конкретному узкому вопросу. Как правило, такой фрагмент должен содержать 1-3 текстовых абзаца (абзацы также должны быть короче книжных) или рисунок и подпись к нему, включающую краткое пояснение смысла рисунка.
Таким образом, студент работает не с непрерывно излагаемым материалом, а отдельными экранными фрагментами, дискретно следующими друг за другом. Изучив материал, представленный на экране, студент нажимает кнопку Следующий, размещенную обычно ниже текста, и получает следующий фрагмент материала. Если он видит, что не все понял или не все запомнил из предыдущего экрана, то нажимает расположенную рядом с первой кнопку Предыдущий и возвращается на один шаг назад. Дискретная последовательность экранов находится внутри (и в пределах) наименьшей структурной единицы, позволяющей прямую адресацию, т.е. внутри параграфа или подпараграфа (того, что характеризуется заголовком третьего уровня), содержит один или несколько фрагментов, последовательно связанных друг с другом гипертекстовыми связями.
Такая организация учебного материала обеспечивает дифференцированный подход к обучаемым в зависимости от уровня их подготовленности, результатом чего является более высокий уровень мотивации обучения, что приводит к лучшему и ускоренному усвоению материала.
При проектировании электронных учебников и организации обучения студентов на их основе на начальной стадии внедрения электронных учебников целесообразна фреймовая структура. Именно при ней предусматриваются отдельные фреймы для решения многих задач. Пример структуры из 5 фреймов, используемый в данной работе, представлен на рисунке 2.14.
Рисунок 2.14 - Фреймовая структура электронного учебника
В частности, необходим отдельный фрейм для организации навигации в пределах пособия в целом, который может быть оформлен в виде оглавления документа. Так как размеры подробного оглавления обычно велики, то во фрейме обязательно должен содержаться маркер прокрутки.
Это оглавление постоянно находится на экране в отдельном фрейме или "всплывает" при необходимости в специальном окне. Таким образом, отпала необходимость в специальном "навигационном" программном обеспечении и организации взаимодействия документа с этими программами. При использовании фреймовой структуры основная проблема связана с большой протяженностью оглавления, лишь малая часть которого помещается в окне соответствующего фрейма. В результате студент тратит определенное время на просмотр заголовков в этом фрейме.
Выбранные из оглавления разделы появляются во фрейме, названном "Основной текст электронного издания". Этот фрейм имеет самые большие размеры, необходимые для помещения 2-3 абзацев текста или рисунка с пояснениями. Указанный фрейм представляет собой главное информационное поле, т.е. содержит тот материал, который должен быть за один прием воспринят учащимся, осознан им и сохранен в оперативной, а затем и в долговременной памяти.
В этом тексте также содержаться ссылки в виде адресов (URL) иллюстраций (если они выводятся в специальных окнах), некоторых других электронных документов, рассматриваемых как дополнительная литература, анимационных, аудио - и видеофайлов, содержащих динамическое описание процессов или явлений, авторские пояснения и иллюстрационный видеоматериал. В качестве иллюстрации этого положения, могу сослаться на большое впечатление, которое произвела на автора динамическая схема (модель) производства сахара на автоматизированном производстве, оформленная в виде анимационного изображения в GIF-формате на соответствующем сайте. Для удобства студента в отдельный фрейм выделен глоссарий или список определений, переход к которым организован с помощью указателей гиперссылок от терминов, встречающихся в основном тексте и требующих пояснения. Этот фрейм не является обязательным. Для увеличения площади экрана, занятой основным фреймом, можно список определений формировать в дополнительном всплывающем окне.
Предметный или алфавитный указатель пособия также позволяет перейти от соответствующих терминов и понятий к основному тексту, в котором они упоминаются, с помощью гипертекстовых ссылок (в печатных изданиях указаны страницы, где эти понятия встречаются). Таким образом, содержимое этого фрейма обеспечивает дополнительные возможности навигации в пределах электронного учебника. Однако, реализация этого способа требует от студента хотя бы предварительного знакомства с тематикой пособия.
Помимо 4 перечисленных фреймов, каждый из которых снабжен возможностью прокрутки, предусмотрен дополнительный 5-й фрейм. В нем размещается постоянная (неизменная для данного издания), или, иначе, справочная информация. Используя эту информацию, студент может перейти на сайт института, послать электронное письмо с вопросами или просьбой о предоставлении консультации или дополнительных материалов автору учебника, просмотреть список других пособиям по данной и близкой тематике. Иногда можно предусмотреть возможность сетевого обсуждения студентами вопросов, рассматриваемых в данном электронном учебнике.
Рисунки, которые должны присутствовать в тексте во многих случаях следует показывать в отдельных окнах, изолировано от фрагментов текста. Следовательно, в таком случае во фрейме "Основной текст издания" выводятся действительно только абзацы текста учебника. Если в одном из них присутствует гиперссылка на рисунок, то при воздействии на нее всплывает окно с графикой. Размер окна с рисунком не должен быть чрезмерно большим, чтобы иметь возможность перемещать это окно в пределах экрана для того, чтобы попытаться оптимально разместить на экране рисунок относительно поясняющего его текста. Например, рисунок может перекрывать фреймы "Оглавление" и "Глоссарий", так как во время изучения и запоминания изображения обычно не требуется перемещаться по тексту издания. После детального изучения рисунка вместе с поясняющим его текстом окно с рисунком, как правило, можно закрыть.
Для данной работы также характерна разбивка электронного участка на подразделы, размещенные в отдельных файлах, для осуществления поэтапного доступа к материалам курса.
2.6 Разработка web-приложения
Одним из значимых элементов любого приложения является пользовательский интерфейс. Удобство и простота его реализации во многом определяют успех любого проекта. Неудачная подборка цветовой гаммы, в том числе несочетающихся цветов, бывает причиной нежелания пользователей посещать даже насыщенный полезной информацией web-ресурс. Для облегчения вывода текста созданы каскадные таблицы стилей. А в качестве языка программирования используется PHP, эффективно взаимодействующий с базами данных и позволяющий реализовывать серьезные проекты.
2.6.1 Разработка пользовательского интерфейса
В качестве цветовой гаммы выбраны синие и оранжевые цвета. Подобраны оттенки, достаточно хорошо гармонирующие друг с другом. Текст отображен шрифтом семейства Verdana, Arial, Sans-serif черным или темно-серым цветом.
Основными элементами интерфейса являются: верхняя заголовочная часть, содержащая меню, левая информационная панель, рабочая область страницы и нижняя часть, содержащая электронный адрес web-дизайнера.
Верхняя часть для всех страниц одинаковая, выполнена в синих оттенках. Здесь изображены логотип приложения и название. Внешний вид этой части страницы показан на рисунке 2.15.
Рисунок 2.15 - Заголовочная часть пользовательского интерфейса
В нижней части расположено пользовательское меню с ниспадающими подменю. Элементы меню выполнены в светло-синем стиле, подсветка активного пункта осуществляется оранжевым цветом. Меню написано на языке java-скрипт и взято с сайта бесплатных шрифтов [11]. Оно реализовано в файле popup_me. js, к которому прикрепляются файлы содержимого меню (menu. php - для основного меню, menu_adm. php - для меню администрирования) и содержимого подменю (menu_rli. js - для подменю основного меню, menu_rli_adm. js - для подменю меню администрирования). Внешний вид меню представлен на рисунке 2.16.
Рисунок 2.16 - Пользовательское меню
Слева страницы расположена информативная панель, отображающая поля для входа в систему, либо имя активного пользователя, поле поиска, а также последние новости. Панель выполнена в светло-синем стиле. Внешний вид информативной панели приведен на рисунке 2.17.
Рисунок 2.17 - Информативная панель
В нижней части страницы отображается строка статуса, на которой представлена информация о web-дизайнере (рисунок 2.18).
Рисунок 2.18 - Строка статуса
Цвет рабочей области страницы - белый, для лучшего восприятия пользователем темного текста. Элементы рабочей области, содержащие информацию, обрамлены в оранжевые фреймы с заголовочным текстом белого цвета, выведенном на оранжевом фоне. Текст фрейма темно-серого цвета, а ссылки на другие страницы - синего. Внешний вид рабочей области страницы показан на рисунке 2. 19.
Рисунок 2. 19 - Рабочая область страницы
2.6.2 Использование каскадных таблиц стилей CSS
В программе для удобства вывода интерфейсных элементов используются каскадные таблицы стилей CSS. Все стили хранятся в файле rli_style. css. Присоединение таблицы стилей к странице осуществляется следующим образом:
<link href="rli_style. css" rel="stylesheet" type="text/css">
Вывести стиль применительно к элементу страницы можно, задав свойству class элемента название стиля, например, class=\"buttonOrange\".
Для создания стиля необходимо добавить в файл rli_style. css строку стиля в следующем виде:
Название стиля {Свойство стиля: Значение; Свойство стиля: Значение; }
Основные свойства стилей приведены в таблице 2.11
Таблица 2.11 - Назначение свойств стилей
№п/п | Имя свойства | Назначение свойства |
1 | height | Высота элемента |
2 | width | Ширина элемента |
3 | border-top | Параметры верхней границы |
4 | border-bottom | Параметры нижней границы |
5 | border-left | Параметры левой границы |
6 | border-right | Параметры правой границы |
7 | font-family | Семейство шрифта |
8 | font-size | Размер шрифта |
9 | font-weight | Свойства шрифта |
10 | color | Цвет текста |
11 | background-color | Цвет фона |
12 | background-image | Фоновый рисунок |
13 | border | Тип границы |
Как уже говорилось ранее, файл, где хранятся стили, называется rli_style. css. Основные стили, используемые в приложении, и их описание, приведено в таблице 2.12.
Таблица 2.12 - Используемые каскадные таблицы стилей
№п/п | Название стиля | Назначение стиля |
1 | center,a,div,tr,td,table, input,textarea,p,small,body | Стили для тэгов |
2 | popfirst, poplast | Стиль пунктов меню |
3 | a. m, a. ml | Cтили ссылок |
4 | brbt | Рамка для пунктов меню |
5 | bpics | Высота белых полосок в меню |
6 | bcoursespic, btrainingpic, bcontactspic, baboutpic, bstudentpic, badminpic | Ширина белых полосок в меню |
7 | bb, bn, bi, bd | Рамки таблиц |
8 | popuser, a. pmenu | Пункты в меню |
9 | textheader | Стиль текста заголовка |
10 | textonlightblue | Текст на светло-голубом фоне |
11 | textonlight | Текст на светлом фоне (основной) |
12 | textonblue | Текст на синем фоне |
13 | textonorange | Текст на оранжевом фоне |
14 | textrederror | Текст ошибки |
15 | a | Основная ссылка |
16 | a. light | Текст ссылки |
17 | a. notunder | Текст ссылки без подчеркивания |
18 | buttonBlue | Синяя кнопка |
19 | buttonOrange | Оранжевая кнопка |
20 | buttonFiolete | Фиолетовая кнопка |
21 | hr_onlightblue_orange | Оранжевая разделительная полоска |
22 | hr_onlightblue_blue | Синяя разделительная полоска |
23 | table_admin | Таблицы на странице администрирования |
2.6.3 Файловая структура приложения
Все файлы приложения размещаются в корневом каталоге сайта. Проект содержит несколько подкаталогов:
config, каталог с файлами конфигурации Apache и MySQL, а также тестовую базу данных;
data, хранит файлы описания и картинки курсов;
dbedit, хранит скрипты для создания базы данных (db_create_rli. php);
files, хранит файлы для загрузки студентами, может содержать отдельные подкаталоги для каждого курса для закачки подразделов курсов;
images, хранит все файлы изображений, используемые в приложении;
news, в котором хранятся файлы новостей для таблицы news.
В корневом каталоге хранятся файлы, описанные в таблице 2.13.
Таблица 2.13 - Описание файловой структуры приложения
№п/п | Название файла | Назначение файла | |
1 | 2 | 3 | |
1 | about_contacts. php | Страница о контактах | |
2 | about_contacts_right. php | Область для вывода данных страницы о контактах | |
3 | about_faq. php | Страница вопросов ответов | |
4 | about_faq_right. php | Область для вывода данных страницы вопросов и ответов | |
5 | about_info. php | Страница о проекте | |
6 | about_info_right. php | Область для вывода данных страницы о проекте | |
7 | about_teachers. php | Страница о преподавателях | |
8 | about_teachers_right. php | Область для вывода данных страницы о преподавателях | |
9 | admin. php | Страница администрирования | |
10 | admin_add. php | Модуль администрирования - добавление данных в таблицу | |
11 | admin_add_check. php | Модуль администрирования - проверка добавления данных в таблицу | |
12 | admin_del. php | Модуль администрирования - удаление данных из таблицы | |
13 | admin_edit. php | Модуль администрирования - вывод таблицы для редактирования | |
14 | admin_right. php | Область для вывода данных страницы администрирования | |
15 | admin_update. php | Модуль администрирования - форма обновления | |
16 | admin_update_check. php | Модуль администрирования - проверка обновления | |
17 | body_left. php | Левая часть всех страниц | |
18 | body_list_after_header. php | Средняя часть (вывода данных) оранжевого фрейма | |
19 | body_list_footer. php | Нижняя часть оранжевого фрейма | |
20 | body_list_header. php | Заголовочная часть оранжевого фрейма | |
21 | body_right. php | Область для вывода данных главной страницы | |
Продолжение таблицы 2.13 | |||
1 | 2 | 3 | |
22 | buttom. php | Нижняя строка всех страниц | |
23 | contacts. php | Страница общения | |
24 | contacts_chat. php | Страница чата | |
25 | contacts_chat_right. php | Область для вывода данных страницы чата | |
26 | contacts_forum. php | Страница форума | |
27 | contacts_forum_right. php | Область для вывода данных страницы форума | |
28 | contacts_guestbook. php | Страница гостевой книги | |
29 | contacts_guestbook_right. php | Область для вывода данных страницы гостевой книги | |
30 | contacts_right. php | Область для вывода данных страницы общения | |
31 | courses. php | Информация о курсах | |
32 | courses_for_students. php | Страница курсов | |
33 | courses_for_students_right. php | Область для вывода данных страницы курсов | |
34 | courses_info. php | Информация о курсах | |
35 | courses_info_right. php | Область для вывода данных информации о курсах | |
36 | courses_literature. php | Страница рекомендуемой литературы | |
37 | courses_literature_right. php | Область для вывода данных страницы рекомендуемой литературы | |
38 | courses_organization. php | Страница организации обучения | |
39 | courses_organization_right. php | Область для вывода данных страницы организации обучения | |
40 | courses_registration. php | Проверка регистрации на курсы | |
41 | courses_registration_right. php | Область для вывода данных страницы проверки регистрации на курсы | |
42 | courses_right. php | Область для вывода данных страницы о курсах | |
43 | courses_technology. php | Страница технологии обучения | |
44 | courses_technology_right. php | Область для вывода данных страницы технологии обучения | |
45 | download. php | Страница загрузок | |
46 | download_right. php | Область для вывода данных страницы загрузок | |
47 | error. php | Страница вывода ошибки | |
48 | error_right. php | Область для вывода данных страницы ошибки | |
49 | find. php | Страница организации поиска | |
50 | find_right. php | Область для вывода данных страницы организации поиска | |
51 | header. php | Заголовок всех страниц | |
52 | index. php | Главная страница | |
53 | login_form. php | Модуль отображения данных о пользователе вошедшем в систему | |
54 | menu. php | Модуль основного меню | |
55 | menu_adm. php | Меню администрирования | |
56 | menu_adm_rli. js | Формирование пунктов меню администрирования | |
57 | menu_rli. js | Формирование пунктов основного меню | |
58 | news. php | Страница новостей | |
59 | news_list_after_header. php | Основная часть фрейма новостей слева | |
60 | news_list_footer. php | Нижняя часть фрейма новостей слева | |
61 | news_list_header. php | Заголовок фрейма новостей слева | |
62 | news_right. php | Область для вывода данных страницы новостей | |
Продолжение таблицы 2.13 | |||
1 | 2 | 3 | |
63 | option. php | Параметры подключения к серверу MySQL | |
64 | popup_me. js | Модуль формирования и отображения меню | |
65 | progress. php | Страница успеваемости | |
66 | progress_right. php | Область для вывода данных страницы успеваемости | |
67 | rli_style. css | Каскадная таблица стилей приложения | |
68 | statistics. php | Страница статистики | |
69 | statistics_right. php | Область для вывода данных страницы статистики | |
70 | student. php | Страница информации для студента | |
71 | student_right. php | Область для вывода данных страницы информации для студента | |
72 | student_shedule_exams. php | Страница расписания экзаменов | |
73 | student_shedule_exams_right. php | Область для вывода данных страницы расписания экзаменов | |
74 | student_shedule_from_teacher. php | Страница информации преподавателей курсов | |
75 | student_shedule_from_teacher_right. php | Область для вывода данных страницы информации преподавателей курсов | |
76 | student_shedule_internal. php | Страница расписания очных занятий | |
77 | student_shedule_internal_right. php | Область для вывода данных страницы расписания очных занятий | |
78 | student_shedule_tutorial. php | Страница расписания консультаций | |
79 | student_shedule_tutorial_right. php | Область для вывода данных страницы расписания консультаций | |
80 | training. php | Личная страница обучения | |
81 | training_check_registration. php | Страница проверки регистрации пользователей | |
82 | training_check_registration_right. php | Область для вывода данных страницы проверки регистрации пользователей | |
83 | training_registration. php | Страница регистрации курсов | |
84 | training_registration_right. php | Область для вывода данных страницы регистрации курсов | |
85 | training_right. php | Область для вывода данных страницы обучения | |
86 | training_test. php | Страница тестирования | |
87 | training_test_right. php | Область для вывода данных страницы тестирования | |
88 | user_form. php | Часть левой страницы с полями ввода логина и пароля |
2.6.4 Формирование страниц приложения
Все скрипты PHP заключаются в скобки <? и? >. Язык позволяет формировать страницы из нескольких отдельных составляющих. Для этого используются функции include и require. Например, скрипт
<? include "header. php"? >
Включает в страницу текст файла header. php.
Практически все страницы приложения сформированы следующим образом:
Создается пустой файл нужной страницы с тэгами <html>, <head> и <title>;
К нему подключается файл header. php, в котором хранится скрипт, отображающий заголовочную часть с логотипом и названием сайта;
Далее подключается файл body_left. php, с содержимым левой части страницы.
Выводится основная часть страницы в виде НазваниеСтраницы_right. php;
Формируется нижняя строка из файла buttom. php.
В свою очередь файл НазваниеСтраницы_right. php содержит фреймы для вывода данных. Каждый фрейм включает заголовочную часть из файла body_list_header. php, затем выводится текст заголовок, нижняя часть строки заголовка body_list_after_header. php, текст фрейма и нижняя часть фрейма body_list_footer. php. Внешний вид фрейма, который используется для вывода данных на страницах приложения, представлен на рисунке 2. 20.
Рисунок 2.20 - Фрейм для вывода данных
Для вывода данных используется функция echo - это функция, которая отправляет браузеру текст. Между словом и символом конца строки "; " помещается строка, которая заключается в кавычки. Текст и тэги HTML, находящиеся внутри кавычек, отправляются браузеру. Если в тексте используется символ кавычки или прямой слэш, то перед ними помещается еще один слэш, т.е./” или // Таким образом выводятся и другие служебные символы.
Листинг некоторых основных страниц приложения приведен в приложении Б.
2.6.5 Передача значений форм в другие страницы
Чаще всего серверные скрипты используются для обработки результатов заполнения форм. Например, в гостевой книге посетитель вводит данные в форму, которая затем обрабатывается на сервере. Отвечая на какой-либо вопрос пользователь, аналогично, устанавливает значение определенных полей формы.
Каждое поле ввода имеет атрибут NAME, которое будет передано в обработчик вместе со своим значением. Существует два метода передачи данных: GET и POST. Их отличие состоит в том, что при использовании метода GET значения полей присоединяются к URL, указанному в атрибуте ACTION. Происходит это таким образом:
http: // localhost/action. php? имя=значение&... имя=значение
Схема состоит в том, что для каждого элемента, имеющего имя (NAME), создается пара NAME=VALUE, где VALUE - конкретное значение соответствующего элемента формы. Для кнопок и переключателей передается только значение выбранного элемента. Указанные выше пары соединяются в виде символьных последовательностей, причем в качестве разделителей пар используется символ &. Сформированный таким образом набор символов пересылается как часть URL-запроса и носит название строка запроса.
Внутри символьной последовательности могут содержаться символы, недопустимые в составе URL-запроса. Известно, что ASCII-символы кодируются двумя шестнадцатиричными цифрами. Поэтому недопустимые в составе запроса символы заменяются триадами из знака % и 2-х цифр шестнадцатиричной системы счисления, соответствующих этому символу.
Пары "имя=значение" создаются для каждого элемента ввода, для которого указано имя атрибутом NAME. В случае использования метода POST значения полей передаются в заголовке запроса к серверу. Формат передачи при этом методе нам не интересен, значения передаются "незаметно" для обычного пользователя.
При исполнении скрипта на языке PHP создаются переменные с именами, соответствующими именам полей и содержащие соответствующие значения.
Cуществует специальный тип поля HIDDEN. Это поле, которое не выводится на экран, но, если ему присвоено имя атрибутом NAME, значение его передается в форму. Это бывает полезно, например, когда один обработчик может производить не одно, а несколько действий. С помощью такого поля можно задать тип действия, которое мы хотим произвести с данными формы.
В таблице 2.14 перечислены все элементы ввода, которые используются в приложении.
Таблица 2.14 - Описание файловой структуры приложения
№п/п | Тип | Описание |
1 | TEXT | Поле ввода текста |
2 | CHECKBOX | Кнопка-флажок. Используется для выбора варианта |
3 | SUBMIT | Кнопка, которая инициирует вызов обработчика формы |
4 | HIDDEN | Скрытое поле ввода текста |
Теперь рассмотрим, как значения и состояния этих элементов передаются в обработчик.
Введенное значение в поле TEXT передается в виде: имя=значение. В обработчике значение можно получить из переменной $имя. Для поля HIDDEN передача параметров осуществляется аналогично.
CHECKBOX - если флажок установлен, то передается значение on, если флажок не установлен, то переменная не передается вообще. Таким образом, установку флажка в скрипте можно проверить, сравнив значение переменной $имя с "on". Переменная и строка выглядят аналогично элементу типа TEXT.
SUBMIT - кнопка SUBMIT, как ни странно, тоже может передавать значение в обработчик. Значение устанавливается из атрибута VALUE. Все остальное аналогично полю типа TEXT.
PHP предоставляет еще одну интересную особенность. Мы можем каждому элементу присвоить имя переменной массива.
В этом случае мы сможем получить доступ к значениям, обращаясь к элементам ассоциативного массива:
$personal ["name"] и $personal ["email"].
Кроме того, если включена директива PHP <? php_track_vars? >, то, при передаче значений, будут заполнены массивы $HTTP_GET_VARS и $HTTP_POST_VARS, для соответствующих методов передачи переменных в обработчик.
2.6.6 Взаимодействие приложения с web-сервером
Этапы взаимодействия данного приложения с web-сервером следующие:
Пользователь с помощью браузера формирует запрос на получение документа и через сеть Интернет посылает его на Web-сервер.
Сервер извлекает документ (форму) из своей базы данных и через сеть Интернет посылает его пользователю (клиенту).
Клиент с помощью браузера заносит в документ необходимые данные и вновь направляет его через сеть web-серверу.
Сервер с помощью CGI-программы анализирует полученный документ и (при необходимости) направляет его для обработки в соответствующее приложение.
Приложение, используя CGI-переменные, обрабатывает направленный в него документ и возвращает серверу выходную информацию.
Сервер передает выходную информацию клиенту.
Клиент (web-браузер) получает выходную информацию, которая отображается у него и может быть оценена и использована.
Таким образом, пользователь (клиент) имеет возможность не только получать информацию (документы) от сервера, но и передавать свои данные на сервер, где с помощью соответствующего приложения, установленного на Web-узле, эти данные будут обработаны, а клиент получит результаты обработки данных. Такая система взаимодействия обеспечивает принципиально более высокий уровень интерактивности в системе клиент-сервер, и реализацию дистанционной обработки данных клиента.
CGI-программа создает динамический (виртуальный) гипертекстовый документ или же формирует ссылку на уже имеющийся документ и дополняет его передачей результатов. Чаще всего для передачи данных от удаленного пользователя Web-серверу используются HTML-формы. Именно с их помощью организуется диалог между браузером пользователя и Web-сервером удаленного узла сети. Такой диалог позволяет осуществить важнейшие операции в сети Интернет.
Web-сервер, получив URL-запрос от клиента, присваивает переменной среды QUERY_STRING значение строки запроса и вызывает CGI-программу, указанную в первой части запроса. Затем CGI-программа может обратиться к переменной среды QUERY_STRING, чтобы осуществить обработку закодированной в ней информации.
2.6.7 Создание таблиц базы данных
Для подключения к серверу баз данных необходимо задать ряд параметров:
$SERVER = "localhost"; // Имя сервера
$USER = "root"; // Имя пользователя
$PASSWD = "geijr"; // Пароль
$DB = "rli_test"; // Имя базы данных "RLI_test"
$REPLY = "andrewnik@list. ru";
mysql_createdb ($DB); // Создание базы данных
Для выбора и работы с созданной базой данных сначала пытаемся присоединиться к серверу:
mysql_connect($SERVER,$USER,$PASSWD))
При удачной попытке выбираем базу данных:
mysql_select_db($DB);
И создаем таблицы. Таблицы базы данных создаются в виде скрипта PHP, затем скрипт запускается и база данных RLI_test появляется в списке данных MySQL сервера. Проверить процесс создания таблиц можно утилитой WinMySQLadmin 1.4 на странице Databases.
Для выполнения различных запросов на создание, модификацию и удаление таблиц и записей в них в MySQL используется команда:
mysql_query(“Строка запроса”);
//Создаем таблицу пользователей - users
mysql_query("CREATE TABLE users
(login char(16) PRIMARY KEY,
passwd char(128) NOT NULL,
lastname char(40) NOT NULL,
firstname char(40) NOT NULL,
middlename char(40) NOT NULL,
n_group char(40) NOT NULL,
registration_date date,
sex enum('мужской', 'женский'),
email char(128) NOT NULL,
student_code char(10) NOT NULL UNIQUE,
u_admin enum('y', 'n') DEFAULT 'n',
FOREIGN KEY (login) REFERENCES user_courses (login),
FOREIGN KEY (student_code) REFERENCES correct_codes (student_code))");
//Создаем таблицу курсов - courses
mysql_query("CREATE TABLE courses
(id_course int PRIMARY KEY AUTO_INCREMENT,
course_name char(128) NOT NULL,
course_annotation text,
course_full_description char(128),
course_picture_link char(128),
course_period float,
n_teacher int NOT NULL,
FOREIGN KEY (id_course) REFERENCES user_courses (n_course),
FOREIGN KEY (id_course) REFERENCES course_parts (id_course_part))");
//Создаем таблицу ссылок загрузок курсов - course_parts
mysql_query("CREATE TABLE course_parts
(id_course_part int PRIMARY KEY AUTO_INCREMENT,
n_course int NOT NULL,
n_part int NOT NULL,
download_link char(128) NOT NULL,
download_description text,
test_name char(128),
test_question_count int NOT NULL DEFAULT 5,FOREIGN KEY (id_course_part) REFERENCES questions (n_course_part),
FOREIGN KEY (id_course_part) REFERENCES user_tests (n_course_part))");
//Создаем таблицу вопросов - questions
mysql_query("CREATE TABLE questions
(id_question int PRIMARY KEY AUTO_INCREMENT,
n_course_part int NOT NULL,
question_content char(255) NOT NULL,
FOREIGN KEY (id_ question) REFERENCES answers (n_ question))");
//Создаем таблицу ответов - answers
mysql_query("CREATE TABLE answers
(id_answer int PRIMARY KEY AUTO_INCREMENT,
n_question int NOT NULL,
answer_content char(255) NOT NULL,
right_answer enum('y', 'n') DEFAULT 'n' NOT NULL)");
//Создаем таблицу курсов пользователей - user_courses
mysql_query("CREATE TABLE user_courses
(id_user_course int PRIMARY KEY AUTO_INCREMENT,
login char(16) NOT NULL,
n_course int NOT NULL,
status enum('reg', 'end', 'not')),
registration_date date,
end_date date,
FOREIGN KEY (id_ user_course) REFERENCES user_tests (n_user_course))");
//Создаем таблицу тестов пользователей - user_tests
mysql_query("CREATE TABLE user_tests
(id_user_test int PRIMARY KEY AUTO_INCREMENT,
n_user_course int NOT NULL,
n_course_part int NOT NULL,
attemps int,
percent int,
last_test_date date)");
//Создаем таблицу преподавателей - teachers
mysql_query("CREATE TABLE teachers
(id_teacher int PRIMARY KEY AUTO_INCREMENT,
teacher_name char(128) NOT NULL,
teacher_degree char(128),
teacher_email char(128),
teacher_photo char(128),
teacher_about text,
FOREIGN KEY (id_teacher) REFERENCES courses (n_teacher))");
//Создаем таблицу корректных шифров студентов - correct_codes
mysql_query("CREATE TABLE correct_codes
(student_code char(10) PRIMARY KEY)");
//Создаем таблицу новостей - news
mysql_query("CREATE TABLE news
(id_news int PRIMARY KEY AUTO_INCREMENT,
title char(128) NOT NULL,
date_news date,
body_news char(128) NOT NULL,
autor_news char(100))");
Используемые типы данных и их описание приведено в таблице 2.15.
Таблица 2.15 - Используемые типы данных
№п/п | Тип данных | Описание |
1 | int | Целое число. В MySQL тип данных int может быть со знаком или без знака |
2 | float | Число с плавающей запятой. Этот тип допускает больший диапазон значений, чем int, но не обладает его точностью |
3 | char(длина) | Символьная величина фиксированной длины. Поля типа char не могут содержать строки длины большей, чем указанное значение. Поля меньшей длины дополняются пробелами |
4 | date | Стандартное значение даты. Формат хранения даты по умолчанию ‘yyyy-mm-dd’ |
5 | text | Символьная величина переменной длины |
6 | enum(‘знач1’, …, ‘значN’) | Перечисляемый тип |
Создание базы данных и таблиц базы данных осуществляется один раз на сервере при установке web-приложения. Созданная база данных по умолчанию хранится в папке установки MySQL в папке data/rli_test. Заранее созданную и наполненную содержимым базу данных можно перенести на сервер, скопировав указанную папку в аналогичную на сервере.
Закрытие выбранной базы данных осуществляется функцией mysql_close().
2.6.8 Функции для работы с базами данных
Извлечение данных из таблицы осуществляется в цикле while() с помощью функции mysql_fetch_row, в качестве параметра которой подается массив $result, хранящий результат выполнения строки запроса выборки данных из таблиц. Функция выбирает строку из массива, которая записывается в переменную $row и автоматически переходит на следующую строку. При следующем вызове mysql_fetch_row, выбирается следующая строка из массива, и так далее до тех пор, пока не будет достигнут конец массива. В этом случае mysql_fetch_row вернет значение false, которое послужит сигналом, что все записи выбраны, и можно завершить цикл.
К каждому столбцу в массиве $row можно обратиться по его порядковому номеру, который заключается в квадратные скобки, например, $row [1], в которой хранятся значения второго столбца таблицы данных. Элементы массивов нумеруются с 0, а не с 1.
Функция mysql_fetch_array() позволяет обращаться к каждому полю массива не по номеру, а по имени, например, $row ["user"] ("user" - название столбца в базе данных и в массиве).
2.6.9 Использование механизма Cookies
Cookie - это переменная, которая хранится на диске у пользователя. Cookies используются для хранения небольшой по объему информации у клиента, например, его логина и другой информации.
Для установки Cookies используется функция SetCookie. В общем случае для этой функции можно указать целых шесть параметров, но обязательный из них является только один - name:
name - задает имя (строка), закрепленное за Cookie;
value - определяет значение переменной (строка);
expire - время жизни переменной (целое число). Если этот параметр не указан, Cookie будет "жить" до конца сессии, то есть до закрытия браузера. Если время указано, то, когда оно наступит, Cookie самоуничтожится;
path - путь к Cookie (строка);
domain - домен (строка). В качестве значения устанавливается имя хоста с которого установили;
secure - передача через HTTPS-соединение.
Обычно используются только три первые параметра.
При использовании Cookies нужно иметь в виду, что Cookies должны быть установленными до первого вывода сценария (будь то оператор echo или вывод какой-нибудь функции). Поэтому желательно устанавливать Cookies в самом начале сценария. Дело в том, что Cookies устанавливаются с помощью определенного заголовка сервера, а если вы выводите что-нибудь, то это означает, что начинается тело документа. В результате Cookies не будут установлены.
Получить доступ к Cookies достаточно просто. Все они хранятся в переменной окружения НТТР_СООКIЕ. Если мы установили несколько Cookies, то в переменной НТТР_СООКIЕ они будут перечислены через "; " (через точку с запятой). Например:
mycookiel=valuel; mycookie2=value2
Для чтения значения Cookies можно обращаться к ним, как к обыкновенным переменным. Например: echo $user_name_. Только необходимо проверить существование переменной.
В работе Cookies используются для хранения данных логина пользователя, вошедшего в систему, значения параметра, вошел ли пользователь в систему (login_reg) и значения параметра, является ли пользователь администратором (login_admin). Значения переменных хранятся соответственно в Cookies user_name_, login_reg, login_admin. Это очень удобно, так как доступ к значению переменной, заданной Cookie, можно получить с любой страницы, при этом нет необходимости предавать их через поля. Cookie создаются на период сессии работы с системой, при выходе из системы они автоматически удаляются.
2.6.10 Описание алгоритма работы web-приложения
Опишем, как происходит работа системы. Алгоритм работы приложения представлен на рисунке 2.21.
Пользователь (студент или администратор) заходит на сайт и имеет возможность навигации по материалам сайта. Если пользователь зарегистрирован в системе, он может ввести логин и пароль и попасть на персональную страницу обучения. Если же не зарегистрирован, имеется возможность регистрации. При регистрации заполняются необходимые поля. Система проверяет, заполнил ли пользователь обязательные для регистрации поля. Если все верно происходит проверка, существует ли указанный пользователем (студентом) логин в системе и сверяет его шифр с разрешенными шифрами базы данных. Если все верно, то происходит успешная регистрация, и пользователь попадает на личную страницу обучения. Если что-то неверно, предлагается зарегистрироваться в системе повторно.
Рисунок 2.21 - Алгоритм работы web-приложения
На странице обучения пользователь получает возможность зарегистрироваться на какой-либо из предложенных курсов. Одновременно можно регистрировать до трех курсов одному пользователю. Выбрав зарегистрированный курс пользователь попадает на страницу обучения по этому курсу. Здесь проверяется не истек ли период действия курса, так как любой курс регистрируется на определенный срок. Курс разбит на подразделы. Студент скачивает материалы по подразделу и проходит тестирование. При успешном прохождении теста пользователь получает доступ к материалам следующего подраздела курса. После успешного тестирования по всем подразделам, необходимо пройти итоговый тест. В итоговом тесте студент отвечает на случайным образом выбранные вопросы по всему курсу. Каждый тест можно сдавать до трех раз. При неуспешной третьей попытке курс считается не сданным. Результаты тестирования хранятся в базе данных.
2.7 Запуск и описание работы с web-приложением
Для запуска web-приложения необходимо запустить Интернет-браузер и набрать в строке адреса следующее:
в локальном режиме http: // localhost/rlearning. ru или http: // localhost/rlearning. ru/index. php;
при регистрации домена в сети Интернет http: // www. rlearning. domen. ru или http: // www. rlearning. domen. ru/index. php (где domen - название домена).
Откроется главная страница приложения (рисунок 2.22).
Рисунок 2.22 - Главная страница web-приложения
Пользователь получает возможность навигации по материалам сайта, регистрации (для незарегистрированных пользователей) или входа в систему (для зарегистрированных пользователей) и дистанционного обучения.
С левой стороны расположены поля для входа в систему и поле для поиска информации по сайту, а также показаны последние новости.
2.7.1 Навигация по сайту
Навигация по сайту организована средствами меню, расположенного в верхней части страницы. Меню состоит из 7 пунктов.
Первый пункт "Новости" содержит информацию о новостях сайта.
Пункт "Курсы" содержит информацию о курсах дистанционного обучения представленных на сайте. Пункт меню состоит из четырех подпунктов "Курсы обучения для студентов" - здесь представлены краткие аннотации курсов, а зарегистрированный в системе пользователь может зарегистрироваться на доступный курс. Более подробная информация по этой странице представлена в п.2.7.2. Подпункт меню "Организация обучения" переносит на страницу информации по организации обучения. При выборе подпункта "Технология обучения", разрешаться все вопросы, связанные с технологией обучения. Подпункт "Рекомендуемая литература" содержит информацию по литературе, которая рекомендуется при изучении курсов.
Пункт меню "Обучение" включает подпункты "Регистрация" и "прохождение обучения", связанные непосредственно с обучением через web-сайт. Более подробно эти подпункты рассмотрены в п.2.7 2.
Пункт "Общение". В данном разделе предполагается предоставлять сервисы для организации общения студентов и преподавателей при прохождению обучения, такие как чат, форум и гостевая книга. На данном этапе эти пункты полностью не реализованы.
Меню "О проекте" включает подпункты "О преподавателях" - информация о преподавателях с возможностью отправить электронное письмо преподавателю, "Контакты" - как связаться с разработчиком сайта и руководителем работы (рисунок 2.23), "Часто задаваемые вопросы" - вопросы задаваемые чаще всего посетителями сайта.
Рисунок 2.23 - Страница "Контакты"
Меню "Download" содержит ссылки загрузки учебных материалов и программ, загрузка которых не требует регистрации в системе.
Меню "Студенту" включает информацию подготовленную специально для студентов - это расписания очных занятий, расписания консультаций и экзаменов, а также информация по дистанционным консультациям преподавателей в чате или форуме.
2.7.2 Обучение
Для того чтобы получить доступ к обучению на сайте необходимо зарегистрироваться в системе. Переход на страницу регистрации осуществляется щелчком по ссылке "Регистрация" в левой части страницы или через меню "Обучение" - "Регистрация". Открывается форма регистрации (рисунок 2.24). Пользователь должен заполнить все поля формы и нажать на кнопку "Регистрация". Программа проверяет наличие введенного логина в базе данных и сверяет введенный шифр с базой разрешенных шифров. При успешной проверке происходит регистрация и данные из формы записываются в базу данных.
Рисунок 2.24 - Форма "Регистрация"
Теперь пользователь может войти в систему, просто осуществив ввод логина и пароля в левой части формы. При правильном вводе он попадает на личную страницу. С этой страницы он может продолжить ранее начатое обучение по курсу, либо перейти на страницу курсов для регистрации нового курса.
Перед тем как начать обучение необходимо зарегистрироваться на курс. Регистрация на курс происходит на странице "Курсы" выбором ссылки "Регистрация" для данного курса (рисунок 2.25). Одновременно может быть три активных курса. Зарегистрироваться на уже пройденный, непройденный или активный курс повторно нельзя. Подтвердив регистрацию курса, пользователь попадает на страницу обучения, на которой показаны активные курсы и уровень их прохождения (рисунок 2.26). По ссылке "Скачать" пользователь скачивает материалы для обучения, изучает их и проходит тестирование. Для прохождения тестирования необходимо щелкнуть по ссылке "Пройти тест". Далее откроется форма тестирования. Последовательно задаются N вопросов, выбранные случайным образом, и предлагаются перемешанные случайным образом варианты ответов. Можно выбрать один или более ответ на вопрос (рисунок 2.27). Ответ на вопрос считается верным, если пользователь выбрал все правильные варианты ответов. Можно предпринять три попытки сдачи теста. Если пользователь отвечает более чем на 70% заданных вопросов, тест считается пройденным (рисунок 2.28). Пользователь получает доступ к следующему подразделу курса или к итоговому тесту. В противном случае, если использованы все попытки, курс считается не сданным.
Рисунок 2.25 - Страница "Курсы"
Рисунок 2.26 - Страница "Обучение"
Рисунок 2.27 - Страница "Тестирование"
Рисунок 2.28 - Страница "Статистика тестирования"
Отличие итогового теста от теста по подразделу заключается в том, что задаются 2N вопросов, выбранных случайным образом из всех подразделов курса. Если дано более 70% правильных ответов курс считается пройденным. Листинги модуля обучения приведены в приложении В.
2.7.3 Администраторская часть
Если войти в систему под логином администратора (по умолчанию логин "admin" пароль "cneltyn"), то откроется скрытое подменю "Админ" (рисунок 2.29). Администратором может быть пользователь подсистемы, которому в таблице базы данных "users" задано значение “y” поля "u_admin".
Рисунок 2.29 - Меню "Админ"
Администратор имеет возможность просмотра статистики системы (рисунок 2.30). Здесь отображается информация о количестве зарегистрированных пользователей, доступных курсах обучения и количестве их подразделов, а также преподавателях курсов.
Рисунок 2.30 - Страница "Статистика"
Также администратор может посмотреть успеваемость студентов (рисунок 2.31), т.е. на какие курсы зарегистрированы студенты, и на каких этапах прохождения обучения они находятся.
Рисунок 2.31 - Страница "Успеваемость"
Самая главная особенность, характерная для администратора системы - это возможность редактирования курсов, тестов, а также редактирования данных всех таблиц базы данных. Для редактирования таблиц необходимо зайти в пункт меню "Админ", выбрать имя таблицы для редактирования и нажать кнопку "Выбрать" (рисунок 2.32).
Рисунок 2.32 - Страница "Выбор таблицы для редактирования"
На следующей страницы отображаются данные, которые хранятся в данной таблице. Имеется возможность добавления данных, изменения существующих данных и удаления данных (рисунок 2.33).
Рисунок 2.33 - Страница "Редактирование таблиц базы данных"
Листинги модуля администрирования приведены в приложении Г.
2.8 Предложения по размещению приложения в сети Интернет
При выборе хостинга необходимо учитывать поддержку языка PHP и сервера баз данных MySQL. Предлагается использовать web-хостинг Agava. ru. Из предлагаемых тарифных планов наиболее интересным является тарифный план Normal. Он включает в себя поддержку PHP версии 4, поддержку CGI скриптов (скрипты могут быть написаны на shell, C, Perl и других языках). В рамках этого тарифного плана предоставляется доступ к серверу баз данных MySQL и большое дисковое пространство для сайта (до 500 Мб).
Предлагается бесплатный домен. При покупке хостинга по тарифному плану "Normal" можно бесплатно получить домен в любой из предлагаемых зон при оплате хостинга от трех месяцев.
Трафик на данном тарифном плане "Normal" неограничен. Понятие "неограниченный трафик" означает то, что трафик никаким образом не ограничивается. Входящий и исходящий, российский и зарубежный трафик не дифференцируются между собой.
Также среди хостинг предоставляет возможности:
управлять (создавать, редактировать, удалять) почтовыми аккаунтами в вашем домене;
читать и отправлять почту через веб-интерфейс;
активировать фильтрацию СПАМа для вашего аккаунта;
управлять планировщиком заданий (cron) через веб-интерфейс;
создавать поддомены 3-го уровня в вашем домене (кол-во доменов 3-го уровня неограничено);
создавать, редактировать, удалять базы данных MySQL, а также работать с БД MySQL через PHPMyAdmin;
администрировать свой сайт с помощью файл-менеджера (загрузка, редактирование файлов по HTTP протоколу);
создавать дополнительных ftp-пользователей имеющих ограниченный или полный доступ к сайту, разрешать или запрещать анонимный ftp-доступ;
управлять веб-сервером Apache (mime-types, apache handlers, авторизация, индексы каталогов, страницы HTTP-ошибок, hotlink-защита, запрет доступа с определенных IP и. т.п.);
SSH через браузер - администрирование вашего сервера через командную строку с использованием Java-апплета для вашего броузера;
просматривать статистические отчеты о посещениях вашего сайта сгенерированные программами Analog или Webalizer;
работа с почтой через веб-интерфейс. Поддерживается возможность чтения, отсылки почты, создания папок, настройки правил сортировки, настройка сборщика внешней почты (сбор сообщений со сторонних почтовых ящиков в ваш почтовый ящик у нас).
Стоимость хостинга на тарифном плане “Normal” порядка 250 руб.
3. Экономическая часть
3.1 Определение трудоемкости разработки приложения
Для определения трудоемкости разработки АИС (автоматизированной информационной системы) прежде всего составляется перечень всех основных этапов работ, которые должны быть выполнены [18]. Форма разделения работ по этапам с указанием трудоемкости их выполнения приведена в таблице 3.1
Таблица 3.1 - Распределение работ по этапам и видам и оценка их трудоемкости
Этап проведения | Вид работы на данном этапе | Трудоемкость выполнения, чел. - ч. |
Подготовительный | Сбор данных о предметной области | 50 |
Определение задач | 20 | |
Анализ данных | 40 | |
Создание структуры баз данных | 10 | |
Этап реализации | Разработка алгоритма | 20 |
Разработка web-интерфейса | 40 | |
Написание программы | 90 | |
Заключительный | Отладка программы | 100 |
Оформление пояснительной записки | 40 | |
ИТОГО трудоемкость выполнения дипломной работы | 410 |
3.2 Расчет затрат на разработку приложения
Определение затрат на разработку АИС производится путем составления соответствующей сметы, которая включает следующие статьи:
Материальные затраты.
Затраты на оплату труда.
Отчисления на социальные нужды.
Амортизация основных фондов.
Прочие затраты.
Если для разработки АИС используется электрооборудование, то необходимо рассчитать затраты на электроэнергию по форме, приведенной в таблице 3.2
Таблица 3.2 - Затраты на электроэнергию
Наимено-вание оборудо-вания | Паспортная мощность, кВт | Коэффициент использо-вания мощности | Время работы оборудования для разработки АИС, ч |
Цена электроэнергии, |
Сумма, руб. |
ПК | 0,300 | 0,8 | 410 | 1,15 | 113,16 |
Монитор | 0,080 | 0,9 | 410 | 1,15 | 35,31 |
ИТОГО | 148,47 |
Общая сумма затрат на электроэнергию (ЗЭ) рассчитывается по формуле (3.1):
, |
(3.1) |
где Mi - паспортная мощность i-го электрооборудования, кВт; Ki - коэффициент использования мощности i-го электрооборудования (принимается Кi = 0.7ё0.9); Ц - цена электроэнергии, руб/кВтЧч; - вид электрооборудования; количество электрооборудования; - количество электрооборудования. |
руб.
Общая сумма затрат на оплату труда определяется по форме, приведенной в таблице 3.3
Таблица 3.3 - Затраты на оплату труда
Категория работника | Квалификация | Трудоемкость разработки АИС, чел. - ч. | Часовая ставка, руб/ч | Сумма, руб |
Разработчик программы | Студент-программист | 410 | 1.85 | 760.00 |
Руководитель диплома | Доцент | 20 | 33 | 660.00 |
Консультант по БЖД | Доцент | 2 | 33 | 66.00 |
Консультант по экономической части | Старший преподаватель | 2 | 21 | 42.00 |
Итого | - | - | - | 1528.00 |
Общая сумма затрат на оплату труда () определяется по формуле (3.2):
, |
(3.2) |
где - часовая ставка i-го работника, руб., - время на разработку АИС, ч, - категория работника, - количество работников, занятых разработкой АИС. |
Общее время работы программиста Т определяется из таблицы 3.1 и равно 410 часов. Министерством образования РФ установлены следующие нормы затрат рабочего времени на одну дипломную работу: руководитель работы 20 ч, консультант по БЖД - 2 ч, консультант по экономической части - 2 ч.
Среднечасовая заработная плата разработчика рассчитывается по формуле (3.3):
, |
(3.3) |
где - среднемесячная заработная плата разработчика АИС (в данном случае берется размер стипендии), руб.; - среднемесячный фонд рабочего времени (приблизительно 100 часов в месяц). |
Стоимость одного часа работы программиста равна:
руб.
Общая сумма затрат на оплату труда равна:
руб.
В статью "Отчисления на социальные нужды" включаются сумма единого социального налога и взносы на страхование от несчастных случаев и профессиональных заболеваний, которые составляют соответственно 26% и 0,2% (для НИ РХТУ) от затрат на оплату труда всех работников, занятых выполнением НИР. Студенческие стипендии данным налогом не облагаются.
Отчисления на социальные нужды составят:
руб.
Расчет амортизационных отчислений приведен в таблице 3.4
Таблица 3.4 - Расчет амортизационных отчислений
Наименование оборудования | Стоимость оборудования, руб | Годовая норма амортизации,% | Эффективный фонд времени работы оборудования, ч/год | Время работы оборудования во время разработки АИС, ч | Сумма, руб. |
Компьютер разработчика | 13098.00 | 20 | 2224 | 410 | 482.93 |
Итого | 482.93 |
Общая сумма амортизационных отчислений определяется по формуле (3.4):
, |
(3.4) |
где - стоимость i-го оборудования, руб.; - годовая норма амортизации i-го оборудования,%; - время работы i-го оборудования за весь период разработки АИС, ч; - эффективный фонд времени работы i-го оборудования за год, ч/год; - вид оборудования; - количество оборудования. |
Сумма амортизационных отчислений составит:
руб.
В статью “Прочие затраты” включаются расходы на содержание административно-управленческого и учебно-вспомогательного персонала, на отопление, освещение и текущий ремонт помещений, канцелярские, командировочные и прочие хозяйственные расходы. Затраты по этой статье принимаются в размере 70-75% от затрат на оплату труда (по согласованию с консультантом по экономической части).
руб.
На основании полученных данных по отдельным статьям составляется смета затрат на разработку АИС по форме, приведенной в таблице 3.5
Таблица 3.5 - Смета затрат на разработку web-приложения "R@Learning Institute"
Статьи затрат | Сумма, руб. |
1 Материальные затраты | 148.47 |
2 Затраты на оплату труда | 1528.00 |
3 Отчисления на социальные нужды | 201.22 |
4 Амортизация основных фондов | 482.93 |
5 Прочие затраты | 1069.60 |
Итого по смете | 3430.22 |
Затраты на разработку АИС составят руб.
3.3 Определение возможной цены разработанного приложения
Величина возможной (договорной) цены приложения должна устанавливаться с учетом эффективности, качества и сроков ее разработки на уровне, отвечающем экономическим интересам заказчика (потребителя) и исполнителя.
Договорная цена () для прикладных АИС рассчитывается по формуле (3.5):
, |
(3.5) |
где - затраты на разработку АИС (из таблицы 3.5), руб.; - средний уровень рентабельности АИС.% (принимается в размере 20-30% по согласованию с консультантом по экономической части);. |
Исходя из этого, договорная цена данной АИС будет следующей:
руб.
3.4 Экономическое обоснование выбора комплекса технических и программных средств
Выбор средств программирования при проектировании во многом зависит от возможностей системы и в не меньшей степени от знакомства с ней разработчика. Web-приложение "R@Learning Institute" написано с использованием современных средств программирования, таких как язык PHP 4 и сервера баз данных MySQL. Для работы этих средств требуется установка web-сервера Apache.
Язык PHP представляет собой полноценный скриптовый язык. Он прост в использовании и функциональнее других современных языков. Практически ни один уважающий себя web-ресурс не обходится без использования на страницах скриптов, написанных на PHP. Язык в полной мере соответствует требованиям, предъявляемым к современным средствам проектирования. А поддержка основных форматов баз данных, таких как mSQL, MySQL, Oracle, InterBase, PostgreSQL, dBase, доступ к которым реализован через их собственные API, обусловило его широчайшее применение.
Перечисленные средства бесплатны, нетребовательны к аппаратной части системы, быстры в работе и поддерживают все те возможности, которые необходимы при разработке данного программного продукта. Они работают в операционных системах UNIX, Microsoft Windows 98/XP.
В качестве среды разработки используется популярное средство создания web-узлов Macromedia Dreamweaver MX 2004. Для работы с ним рекомендуется установка операционной системы Microsoft Windows XP.
Следует учитывать тот фактор, что конечный пользователь, для которого и разработано данное web-приложение, увидит лишь последовательность web-страниц с требуемой ему информацией. И на компьютере пользователя должен быть установлен лишь web-браузер, поддерживающий отображение страниц с PHP-скриптами, например Internet Explorer 5 и выше. Наиболее популярной современной операционной системой для домашнего использования является Microsoft Windows XP Home Edition или Microsoft Windows XP Professional Edition, в которые уже встроен браузер Internet Explorer 6. Операционные системы Windows 98/NT/2000, UNIX сейчас используется довольно редко. Поэтому будем учитывать требования, предъявляемые к Windows XP.
Таким образом, выбор технических средств зависит от нескольких факторов:
Минимальные требования для работы операционной системы (Windows XP);
Минимальные требования к среде разработки программного обеспечения (Macromedia Dreamweaver MX 2004);
Минимальные требования к средствам разработки программного обеспечения (Apache, PHP 4, MySQL);
Минимальные требования к разрабатываемой системе;
Минимальные требования к пользовательской системе.
Термин "минимальные" включает в себя тот минимум, при котором данный модуль работает. Этих требований часто не хватает для комфортной работы с программой (необходимый минимум для работы с системой без больших временных задержек, без сбоев).
Рекомендуемыми требованиями для операционной системы Windows XP Home Edition являются Pentium IV/Celeron, оперативная память 256 Мб, жесткий диск объемом 3 Гб.
Для установки пакета Macromedia Dreamweaver MX 2004 необходим компьютер, работающий под управлением Windows XP. Таким образом, эти требования такие же, как и требования к операционной среде.
При выборе технических средств необходимо также учитывать движение времени, которое с каждым днем повышает требования аппаратной части. И возможности покупки (здесь имеется в виду, что сейчас все фирмы пытаются продавать компьютеры, пользующиеся спросом, и найти устаревшую модель очень сложно).
Предлагается следующая конфигурация компьютера для разработки web-приложения:
Процессор Intel Celeron 2,8GHz (128k, 400MHz) Box: 2750 руб.;
Материнская плата - S478 GIGABYTE 8LD533-P i845GL (mATX, 2DDR, SB, SVGA, LAN, U2.0): 1612 руб.;
Оперативная память - DIMM 256Mb DDR SDRAM M. Tec (PC3200, 400MHz, CL2.5): 646 руб.;
Жесткий диск - 40Gb IDE MAXTOR “6E040L0” 7200rpm U-ATA 133: 1509 руб.;
Дисковод FDD 3,5” - MITSUMI: 182 руб.;
CD-ROM - ASUS “CD-S520 QuieTrack” 52x: 466 руб.;
Монитор - 17” SAMSUNG “793DF” 0,20 (1280x1024@65 Гц) MPRII TCO’03: 4206 руб.;
Корпус - Miditower BX-77S ATX2.03, 300w: 1081 руб.;
Клавиатура - MITSUMI Classic PS/2: 267 руб.;
Мышь - LOGITECH “M-SBF90” оптич. PS/2: 227 руб.;
Сетевой фильтр - SVEN “Optima” (3,1м) на 5 розеток: 152 руб.;
Операционная система - Windows XP Home Edition: 2122 руб.;
Средство разработки web-узлов - Macromedia Dreamweaver MX 2004 Studio: 4200 руб.
Предлагается следующая конфигурация клиентской рабочей станции:
Процессор Intel Celeron 1,8GHz (128k, 400MHz) Box: 1797 руб.;
Материнская плата - S478 GIGABYTE 8LD533-P i845GL (mATX, 2DDR, SB, SVGA, LAN, U2.0): 1612 руб.;
Оперативная память - DIMM 256Mb DDR SDRAM M. Tec (PC3200, 400MHz, CL2.5): 646 руб.;
Жесткий диск - 40Gb IDE MAXTOR “6E040L0” 7200rpm U-ATA 133: 1509 руб.;
Дисковод FDD 3,5” - MITSUMI: 182 руб.;
CD-ROM - ASUS “CD-S520 QuieTrack” 52x: 466 руб.;
Монитор - 17” SAMSUNG “793DF” 0,20 (1280x1024@65 Гц) MPRII TCO’03: 4206 руб.;
Корпус - Miditower BX-77S ATX2.03, 300w: 1081 руб.;
Клавиатура - MITSUMI Classic PS/2: 267 руб.;
Мышь - LOGITECH “M-SBF90” оптич. PS/2: 227 руб.;
Сетевой фильтр - SVEN “Optima” (3,1м) на 5 розеток: 152 руб.;
Операционная система - Windows XP Home Edition: 2122 руб.
Цены на комплектующие даны на 5 мая 2005 по данным ТТЦ "Realm" г. Новомосковск.
Предлагается разместить web-сайт на сервере хостинг-провайдера Agava. ru. Поэтому стоимость серверной части web-приложения, будет включать лишь стоимость хостинга при оплате трех месяцев, т.е.750 руб. При этом регистрация сайта осуществляется бесплатно.
Итого: 34437 руб.
Таким образом, общая сумма затрат на технические средства и программное обеспечение составит: 34437 руб.
3.5 Описание экономического и социального эффекта от разработки приложения
При разработке web-приложения “R@Learning Institute” предполагалось, что внедрение данной системы не окажет какой-нибудь существенной экономической выгоды. Наоборот, для ее внедрения понадобятся дополнительные вложения средств, так как регистрация домена, размещение, хостинг и поддержка web-приложения в сети Интернет требуют дополнительных затрат. Например, хостинг с поддержкой PHP и MySQL от Agava. ru стоит порядка 9$ в месяц, регистрация домена бесплатна.
Внедрение данной системы позволит решить ряд задач:
Усовершенствуется организации учебного процесса и научной деятельности за счет обеспечения коллективного контролируемого доступа к информационным ресурсам сети Интернет;
Создание базы данных позволит обеспечить безопасность информации на должном уровне;
Повысит престиж института.
Дистанционное обучение представленное в данном проекте состоит из нескольких этапов:
Регистрация пользователя в системе;
Регистрация курса обучения;
Получение доступа к электронным материалам курса;
Изучение материалов курса;
Прохождение тестирования.
Прохождение всех этапов дистанционного обучения совокупно с требованиями предъявляемыми к студенту институтом, т.е. обязательный минимум посещения лекций и т.п., позволит студенту получить допуск к сдаче зачета или экзамена без выполнения каких-то заданий курса. Эти задания должны быть определенны преподавателем - разработчиком данного курса.
Электронные материалы полностью загружены на сервер в сети Интернет, поэтому зарегистрированный пользователь получает доступ к информации и может раньше приступать к выполнению поставленных задач. Регистрация пользователя обязательно подтверждается преподавателем.
Дистанционное обучение принято определять как комплекс образовательных услуг, предоставляемых широким слоям специалистов-пользователей с помощью специализированной информационно-образовательной среды на любом расстоянии от учреждений дополнительного профессионального образования.
Дистанционное обучение хорошо вписывается в рамки системы АИС ВУЗ. Такой способ обучения позволяет без отрыва от рабочего места, заниматься изучением обязательного материала курса.
Так как на данный момент все больше людей обращает свое внимание на Internet, не только в целях развлечений, но и в образовательных целях, то тема дистанционного обучения как нельзя лучше подходит для данной работы.
Существуют различные способы организации дистанционного обучения на базе новых информационных технологий: на основе интерактивного телевидения, телекоммуникаций, на основе технологий CD-ROM, учебного радио и телевидения, видеозаписи, пр.
При использовании видеокассет, радио и телевидения в обучении связь получается односторонней. Преподаватель, говоря об очередной теме не ориентируется на аудиторию (как это бывает при очном обучении). То есть, если кто-то что-то не понял, можно, конечно, перемотать кассету, но она не ответит на вопрос, и сомнения останутся. И педагог не сможет уделить внимание каждому ученику отдельно.
Интерактивное телевидение, радио пока не актуально для наших сетей в связи с низкой скоростью передачи данных и достаточно высокой стоимостью выделенных каналов. Метод дистанционного обучения посредством web-интерфейса с возможностью проверки уровня усвоения знаний наиболее удобен, так как не требует больших затрат и предоставляет актуальную информацию в удобной форме и в удобное время.
Социальный эффект от внедрения web-приложения “R@Learning Institute” по мнению автора следующий:
Дополнительная возможность пользователю пройти курс обучения, изучить материалы данного курса и осуществить контроль знаний в удобном для него месте и в удобное время;
Возможность обучения не зависит от фактического расстояния между преподавателем и студентом;
Возможность обучения без привязки к конкретному компьютеру;
Снижение нагрузки на преподавателя посредством автоматизированного контроля знаний с выставлением итоговых оценок. Просмотреть результаты тестирования преподаватель может в любой момент и имеет возможность прекратить обучение по курсу того или иного студента при неудовлетворительных промежуточных результатах. Для этого нужен лишь доступ в Интернет;
Получение своевременного доступа к электронным материалам курсов зарегистрированным пользователям в любой момент при наличии доступа в Интернет;
Удобство пользователя при работе с web-приложением. Нет необходимости в установке какого-либо дополнительного программного обеспечения;
Обучение ведется преимущественно самостоятельно, но пользователь может воспользоваться помощью преподавателя посредством электронной почты, дистанционной консультации в чате или, задав вопрос в форуме;
Изучение материала происходит в удобном для пользователя темпе, что позволяет более внимательно прорабатывать сложный материал и не затрачивать дополнительное время на более легкий;
Последовательность доступа к электронным материалам позволяет контролировать текущий уровень усвоения курса студентом;
Возможность совмещения обучения и работы;
Обеспечение надежности хранения информации о зарегистрированных пользователях. Просматривать данные системы могут только преподаватель и администратор web-приложения;
Актуальность предоставляемой информации;
Снижение стоимости подготовки и издания электронных материалов;
Повышение престижа подразделения.
Нужно принять во внимание также то, что такой социальный эффект во многом зависит от политики руководства института, возможности непосещения некоторых занятий и согласия преподавателя курса.
Совершенствование данного программного продукта не требует дополнительных вложений, изменения можно внести на любой локальной машине, при условии наличия необходимого программного обеспечения, а затем синхронизировать с удаленным сервером.
4.Техника безопасности и охрана окружающей среды
4.1 Теоретическая часть
4.1.1 Пожароопасные и токсичные свойства веществ и материалов, применяемых при выполнении работы
В помещении аудитории № 209 в процессе выполнения работы не использовались никакие вещества, обладающие токсичными свойствами.
Пожароопасными свойствами обладают твердые вещества, расположенные в данном помещении, такие как столы, стулья, книжные стеллажи, компьютеры, принтеры, провода, сетевые кабели и др. Из наиболее пожароопасных объектов можно выделить мебель: это - столы, шкафы (ДСП), двери (дерево+ДВП). Также имеется некоторое количество бумажных материалов, в том числе обоев. Кроме того, при возгорании помещения различная аппаратура из пластмассы (принтеры, ЭВМ) может не только активно гореть, но и выделять ядовитые химические продукты сгорания. Дверные проемы и оконные рамы из дерева, а также предметы интерьера различного рода, в случае возгорания также будут способствовать распространению пламени. Еще один пожароопасный материал - линолеум. Он при пожаре выделяет вредные продукты горения.
ГОСТ 12.1 044-89 ССБТ “Пожаро-взрывоопасность веществ и материалов, номенклатура показателей и методы их определения” устанавливает номенклатуру показателей пожаро-взрывоопасности веществ и материалов, их применяемость, а также методы их определения.
4.1.2 Характеристика потенциальных опасностей и вредностей
В процессе выполнения экспериментальной части данной работы могут возникнуть некоторые опасности и вредности, характеристика которых приведена ниже:
Воздействие электромагнитного излучения.
Основную опасность при работе на компьютере представляют электромагнитные излучения, способные приводить к необратимым изменениям в организме человека. Наибольшую опасность представляет излучение от электронно-лучевой трубки монитора. Необходимо заметить, что подобным воздействием на окружающую среду обладают практически все электрические приборы;
Поражение электрическим током.
Все оборудование, установленное в рабочем помещении, работает от сети напряжением 220В. Следовательно, ЭВМ и периферийные устройства, которые использовались в процессе выполнения экспериментальной части работы, представляют опасность поражения человека-оператора электрическим током из-за:
Нарушения целостности кабельной системы;
Короткого замыкания;
Повреждения корпуса оборудования;
Несоблюдения правил техники безопасности;
Опасные факторы пожара, которые воздействуют на людей:
Первичные:
Пламя и искры;
Повышение температуры окружающей среды;
Токсичные продукты сгорания и термического разложения, главным образом, корпусов оборудования, микросхем;
Дым;
Пониженная концентрация кислорода;
Вторичные:
Осколки в результате разрыва кинескопов дисплеев, части разрушающихся конструкций, зданий, сооружений;
Электрический ток в результате повреждения оборудования и кабельной системы и выноса напряжения на конструкции;
Воздействие на анализаторы человека:
Зрительный анализатор является основным источником получения информации. Особенно в области работ с вычислительной техникой, где обмен информацией между человеком и ЭВМ осуществляется, главным образом, через отображение данных на дисплее, наиболее вероятны случаи перенапряжения органов зрения, что в дальнейшем может привести к нарушению функций и падению зрения.
Слуховой анализатор. В помещении аудитории № 209 есть источники повышенного уровня шума - это матричный принтер и вентиляторы, охлаждающие процессоры.
4.1.3 Категорирование помещения аудитории
Пожар в помещении аудитории может возникнуть (исключая человеческий фактор) из-за короткого замыкания проводки, а также из-за выхода из строя различного электрооборудования.
Согласно НПБ 105-03 по взрывопожарной и пожарной опасности помещение относится к категории В-3, так как есть твердые горючие вещества [19].
Согласно СНиП-21.01-97 помещение относится ко II-ой степени огнестойкости.
Согласно ПУЭ по опасности поражения электрическим током помещение относится к категории без повышенной опасности (I категория) и не относится к классу взрывоопасных или пожароопасных зон, так как характеризуется отсутствием условий, создающих повышенную или особую опасность.
4.1.4 Санитарно-гигиеническая характеристика помещения
Допустимые нормы температуры, относительной влажности и скорости движения воздуха согласно СанПиН 2.2.4 548-96 "Гигиенические требования к микроклимату производственных помещений" [20] в рабочей зоне аудитории для холодного и теплого времени года для категории 1а, к которой относятся виды работ, для аудитории № 209, т.е. работы с интенсивностью энергозатрат до 120 ккал/ч (до 139 Вт), производимые сидя и сопровождающиеся незначительным физическим напряжением, можно отразить таблицей 4.1:
Таблица 4.1 - Допустимые нормы температуры, относительной влажности и скорости движения воздуха
Период года | Температура воздуха, °С | Температура поверхностей, °С | Относительная влажность,% | Скорость движения воздуха, м/с | ||
Диапазон ниже оптимальных величин (tвозд < tоптим) | Диапазон выше оптимальных величин (tвозд > tоптим) | Для диапазона температур воздуха ниже оптимальных (tвозд < tоптим) | Для диапазона температур воздуха выше оптимальных (tвозд > tоптим) | |||
Холодный | 20-21,9 | 24,1-25 | 19,0-26,0 | 15-75 | 0,1 | 0,1 |
Теплый | 21,0-22,9 | 25,1-28,0 | 20,0-29,0 | 15-75 | 0,1 | 0,2 |
Для соблюдения параметров микроклимата в теплый период года необходимо использование естественной вентиляции, а в холодный период года используется центральное водяное отопление.
Для поддержания температуры воздуха в заданных пределах помещение должно быть оборудовано отопительными установками (для холодного времени года), а также системой вентиляции и кондиционирования (для теплого времени года).
4.1.5 Условия безопасности при проведении экспериментальной части работы. Электробезопасность
Согласно СанПиН 2.2.2 - 2.4 1340-03 [21] устанавливаются гигиенические требования к персональным электронно-вычислительным машинам и организации работы.
Требования к ПЭВМ. При работе на ПЭВМ должный контроль уделяется следующим параметрам: уровням электромагнитных полей (ЭМП), акустического шума, концентрации вредных веществ в воздухе, визуальным показателям ВДТ, мягкому рентгеновскому излучению. Эти параметры соответствовуют нормам.
Конструкция ПЭВМ обеспечивает возможность поворота корпуса в горизонтальной и вертикальной плоскости с фиксацией в заданном положении для обеспечения фронтального наблюдения экрана ВДТ. Д.изайн ПЭВМ предусматривает окраску корпуса в спокойные мягкие тона с диффузным рассеиванием света. Корпус ПЭВМ, клавиатура и другие блоки и устройства ПЭВМ имеют матовую поверхность и не имеют блестящих деталей, способных создавать блики. Конструкция ВДТ предусматривает регулирование яркости и контрастности.
Требования к помещениям для работы с ПЭВМ. Помещения для эксплуатации ПЭВМ должны имеют естественное и искусственное освещение. Оконные проемы оборудованы регулируемыми устройствами типа жалюзи из занавесей.
Требования к уровням шума и вибрации. При выполнении основных или вспомогательных работ с использованием ПЭВМ уровни шума на рабочих местах не превышают предельно допустимых значений.
Шумящее оборудование (принтеры, серверы), уровни шума которых превышают нормативные, размещены вне аудитории.
Требования к освещению на рабочих местах, оборудованных ПЭВМ. Рациональное освещение помещений и рабочих мест - еще один из важнейших элементов благоприятных условий труда. При правильном освещении повышается производительность труда, улучшаются условия безопасности, снижается утомляемость.
Расчет освещенности должен выполняться с учетом двух основных правил:
1.Для обеспечения требуемой контрастности между экраном дисплея и окружающей обстановкой уровень освещенности должен составлять 300-500 лк при использовании общего освещения.
2.При установке экрана монитора следует учитывать направление потока естественного света и располагать экран таким образом, чтобы поток исходил сбоку с левой стороны.
Мониторы на рабочих местах ориентированы боковой стороной к световым проемам, чтобы естественный свет падал преимущественно слева. Искусственное освещение равномерное.
В случае появления у работающих дискомфорта или неприятных ощущений администрация обязана ввести индивидуальный график работы или перевести на работу, не связанную с компьютером.
Работодатели несут ответственность за проведение оценки рабочего места с точки зрения проведения обучения. Необходимо проводить обучение по вышеизложенным требованиям.
При размещении рабочих мест с ПЭВМ расстояние между рабочими столами с видеомониторами (в направлении тыла поверхности одного видеомонитора и экрана другого видеомонитора) должно быть не менее 2,0 м, а расстояние между боковыми поверхностями видеомониторов - не менее 1,2 м.
Рабочие места с ПЭВМ при выполнении творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рекомендуется изолировать друг от друга перегородками высотой 1,5-2,0 м.
Экран видеомонитора должен находиться от глаз пользователя на расстоянии 600-700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.
Электробезопасность. Для защиты людей от поражения электрическим током принимаются следующие меры электробезопасности:
недопустимо оголение токоведущих частей, приборов;
электропроводка внутренняя (в стенах), напряжение сети 220В, частота тока 50Гц;
все приборы и оборудование должны быть в исправном состоянии и иметь защитное заземление;
предусматривается аварийное отключение электросети в случае резкого увеличения тока (короткое замыкание и т.п.), для этих целей необходима установка защитного оборудования - плавких предохранителей, реле;
пол должен быть выполнен из нетоковедущих материалов (дерево, линолеум и т.п.);
все работы по монтажу производятся при отключенном напряжении с использованием инструмента с изолированными рукоятками;
к работе допускаются лица, прошедшие инструктаж по технике безопасности;
помещение поддерживается в чистоте и сухости, что является мерой для повышения сопротивления человека;
особое внимание уделяется исправности розеток и разъемов.
4.1.6 Пожарная безопасность и средства пожаротушения
Рекомендации НПБ 105-03 [19] определяют два основных принципа обеспечения пожаробезопасности:
предотвращение образования горючей среды;
пожаро- и взрывозащита помещений и зданий и трактуют пожарную безопасность как состояние объекта, при котором с установленной вероятностью исключается возможность возникновения и развития пожара, а также обеспечивается защита материальных ценностей.
В качестве пожаропредупреждения можно посоветовать применять соответствующее электрооборудование, соблюдать требования искробезопасности и т.д. К защите можно отнести следующее: применение пожарной сигнализации, средств пожаротушения, применение конструкций с заданными пределами огнестойкости, эвакуация людей, применение средств коллективной и индивидуальной защиты. Должны быть проведены в полном объеме и своевременно мероприятия по обучению правилам пожарной безопасности, разработаны нормы, регламенты, средства наглядной агитации, контроль. В помещении должно быть необходимое количество огнетушителей, объем которых должен позволять ликвидировать очаг пожара в помещении. Так как возникновение пожара в данном помещении возможно, скорее всего, из-за электрической неисправности, то можно порекомендовать углекислотные огнетушители, типа ОУ-5, которые применяются для тушения загорании различных веществ и материалов, а также электроустановок, находящихся под напряжением.
4.1.7 Защита окружающей среды
Никаких вредных выбросов и загрязненного воздуха в рабочем помещении не образуется. Поэтому защита окружающей среды сводится к соблюдению элементарных правил:
Поддержание санитарно-гигиенического состояния рабочего места, то есть уборка мусора в специально отведенные для этого урны. Категорически запрещается выбрасывать мусор в окна, загрязняя тем самым территорию, прилежащую к НИ РХТУ;
Регулярно должна проводиться влажная уборка помещения. Необходимо соблюдать чистоту и порядок в помещении.
4.1.8 Гражданская оборона
Системы оповещения о непосредственной угрозе нападения противника.
На основании постановления главы муниципального образования города Новомосковска и Новомосковского района 30.12.98 г. №2775.
"О системе оповещения и информировании населения об угрозе возникновения или возникновении ЧС-й" в г. Новомосковске и Новомосковском районе разработана система оповещения и информирования населения. Утверждены и введены в действие тексты информации об угрозе возникновения или возникновении ЧС-й в мирное и военное время, а также об отбое опасности, подлежащее передаче по сетям местного радиовещания, телеканалам ТВ-6, ТВ-7 и посредством использования громкоговорящих устройств УВД Новомосковского района.
Система оповещения в институте: решение на производство тех или иных мероприятий о непосредственной угрозе нападения противника принимает ректор НГО НИ РХТУ на основании информации полученной по СМИ или адресным распоряжениям (указанием органов управления муниципального образования города Новомосковска и Новомосковского района).
Защитных сооружений, отвечающих требованиям норм ИТМ ГО институт не имеет, следовательно, при угрозе заражения города СДЯВ защита сотрудников института и студентов будет состоять из мероприятий по экстренной эвакуации с использованием простейших средств защиты органов дыхания и других подручных средств.
Своих средств защиты органов дыхания институт не имеет, поэтому, если позволяет обстановка, по указанию Управления по делам ГО и ЧС города в институте развертывается пункт выдачи противогазов в спортивном зале нового учебного корпуса и организуется выдача противогазов всему личному составу института и членам их семей и только после этого организуется вывоз людей из предполагаемой зоны заражения. В случае экстренной эвакуации личный состав использует простейшие средства защиты органов дыхания (влажные ватно-марлевые повязки, респираторы, полотенце и т.п.).
На объектовом уровне (в т. ч. институте) координирующим органом является объектовая комиссия по ЧС (КЧС объекта), которая организует и проводит все мероприятия по защите личного состава института.
Для ликвидации последствий чрезвычайных ситуаций в военное время в НИ РХТУ созданы формирования ГО:
Санитарная дружина;
Пост РХН;
Группа охраны общественного порядка;
Сборный эвакопункт;
Пункт выдачи противогазов.
Обучение населения в области ГО осуществляется в рамках единой системы подготовки населения в области чрезвычайной обороны и защиты от чрезвычайных ситуаций природного и техногенного характера. Обучение является обязательным и проводится по месту работы, учебы и месту жительства по определенным программам. Работающее население, не входящее в состав формирований обучаются:
По месту работы;
Участие в учениях, тренировках и других плановых мероприятиях по ГО;
Индивидуальные изучения способов защиты от опасностей, возникающих при ведении военных действий или вследствие этих действий.
4.2 Расчетная часть
4.2.1 Определение пожарной нагрузки помещения (В1-В4)
Определение пожароопасной категории помещения осуществляется путем сравнения максимального значения удельной временной пожарной нагрузки на любом из участков с величиной удельной пожарной нагрузки, приведенной в таблице 4.2
Таблица 4.2 - Категории помещения, в зависимости от удельной пожарной нагрузки
Категории | Удельная пожарная нагрузка q на участке, МДж·м-2 | Способ размещения |
В1 | Более 2200 | Не нормируется |
В2 | 1401 - 2200 | Примечание 2 |
В3 | 181 - 1400 | Примечание 2 |
В4 | 1 - 180 | На любом участке пола помещения площадью 10 м2. Способ размещения пожарной нагрузки определяется согласно примечанию 1. |
В помещениях категорий В1 - В4 допускается наличие нескольких участков с пожарной нагрузкой, не превышающей значений, приведенных в таблице 4.2
Если при определении категории В2 или В3 количество пожарной нагрузки Q превышает или равно Q ≥ 0,64∙qT∙H2, то помещение будет относиться к категориям В1 или В2 соответственно.
При пожарной нагрузке, включающей в себя различные сочетания (смесь) горючих, трудногорючих жидкостей, твердых горючих и трудногорючих веществ и материалов в пределах пожароопасного участка, пожарная нагрузка Q, МДж, определяется по формуле (4.1)
, |
(4.1) |
где Gi -количество i-го материала пожарной нагрузки, кг; - низшая теплота сгорания i-го материала, МДж∙кг-1. |
Удельная пожарная нагрузка q (МДж∙м-2) определяется из соотношения (4.2):
q = , |
(4.2) |
где S - площадь размещения пожарной нагрузки, м2 (но не менее 10 м2). |
Низшая теплота сгорания веществ и материалов, используемых в аудитории приведена в таблице 4.3
Таблица 4.3 - Низшая теплота сгорания веществ и материалов, используемых в аудитории
Вещества и материалы | Низшая теплота сгорания, МДж/кг |
Древесина (мебель) | 13,800 |
Линолеум на тканной основе | 20,292 |
Бумага | 13,400 |
Полистирол | 39,000 |
Органическое стекло | 27,670 |
Пожарная нагрузка мебели в количестве - 340 кг, линолеум - 100 кг, бумаги - 80 кг, пластика - 15 кг, органическое стекло - 3 кг.
Площадь аудитории № 209: 6,45 м x 7,77 м.
Q = 340*13,800+100*2,292+80*13,400+15*39,000+3*27,670 = 6661,21 МДж.
Удельная пожарная нагрузка:
МДж/м2.
Помещение относится к категории В4. При загорании помещения для тушения применяется огнетушитель ОУ-5.
4.2.2 Освещение производственных помещений
Искусственное освещение предусматривается в помещениях, в которых недостаточно естественного света, или для освещения помещения в часы суток, когда естественная освещенность отсутствует.
Основной метод расчета - по коэффициенту использования светового потока, которым определяется поток, необходимый для создания заданной освещенности горизонтальной поверхности при общем равномерном освещении с учетом света, отраженного стенами и потолком. Расчет ведется для люминесцентных ламп по следующим формуле (4.3):
, |
(4.3) |
Для искусственного освещения нормируемый параметр - освещенность рабочей поверхности, которую согласно СанПиН 2.2.2/2.4 1340-03 [21] принимаем Е = 300 лк.
Выбираем для освещения помещения люминесцентные лампы типа ЛБ - лампы белого света мощностью 65 Вт, номинальным световым потоком
F = 4600 лм [ГОСТ 6825-91].
Принимаем также:
Поправочный коэффициент светильника, при освещении линиями люминесцентных ламп z = 1,1;
Количество люминесцентных ламп в светильнике m =2
Коэффициент запаса, учитывающий снижение освещенности при эксплуатации k = 1,4;
Коэффициент использования светового потока, зависящий от типа светильника, показателя (индекса - i) помещения, площади помещения, расчетной высоты, коэффициентов отражения потолка, стен, пола помещения и т.д. - u.
, |
(4.4) |
где S = 6,45*7,77 = 50,12 м2 - площадь помещения; h = 2,2 м - расчетная высота, т.е. расстояние между источником света и освещаемой им рабочей поверхностью; A = 7,77 м, B = 6,45 м - длина и ширина помещения соответственно. |
Тогда коэффициент использования светового потока принимаем равным u = 0,52.
При заданной освещенности и выбранном световом потоке конкретной лампы можно определить количество светильников п:
.
В результате произведенного расчета для оптимального освещения аудитории № 209 получаем 5 светильников, каждый из которых включает в себя: 2 люминесцентные лампы типа ЛБ мощностью 65 Вт и номинальным световым потоком 4600 лм каждая. Схема размещения рабочих мест и светильников в помещении представлена на рисунке 4.1
Рисунок 4.1 - Схема размещения светильников в аудитории № 209.
Заключение
В работе проведено исследование использования программ дистанционного обучения для подготовки учебно-методической документации, описаны их положительные стороны и выявлены основные проблемы. В результате проведенного исследования разработано web-приложение "R@Learning Institute". Для разработки использовался язык серверных скриптов PHP 4.
Разработана структура данных для организации дистанционного обучения студентов кафедры ВТИТ. Описан процесс создания структуры базы данных в формате сервера MySQL и созданы механизмы её администрирования через web-интерфейс. Рассмотрены проблемы, связанные с подготовкой электронных учебных материалов и созданием системы контроля знаний.
Описаны тонкости установки программных продуктов - web-сервера Apache, языка PHP 4 и сервера баз данных MySQL.
Большое внимание уделено вопросам описания структуры созданного приложения, основных механизмов и используемых функций, что крайне полезно для будущих разработчиков подсистемы.
Определены технические требования к установке и эксплуатации, предъявляемые к программному продукту "R@Learning Institute".
В ходе работы осуществлен начальный этап создания приложения "R@Learning Institute", созданного для организации дистанционного обучения НИ РХТУ.
Достоинствами разработанной версии приложения является:
1. Простой, удобный в навигации, интуитивно понятный студенту web-интерфейс, основанный на системе подменю;
2. Разграничение пользовательской и административной части программного комплекса;
3. Обеспечение возможности однократной регистрации студентов-пользователей в системе и беспрепятственного входа в систему;
4. Возможность индивидуального обучения по каждой дисциплине;
5. Поэтапное изучение учебных материалов с возможностью промежуточного контроля студента;
6. Ограничение числа попыток пройти тестирование пользователем;
7. Хранение базы данных пользователей, курсов, данных для тестирования, результатов прохождения тестов на web-сервере;
8. Хранение учебных материалов на web-сервере, с возможностью загрузки зарегистрированным пользователем;
9. Обеспечение доступа администратора к базе данных через web-интерфейс;
10. Просмотр администратором статистики и текущей успеваемости студентов;
11. Организация возможности общения студентов и преподавателей посредством электронной почты и других средств общения;
12. Организация поиска по сайту;
13. Отсутствие необходимости установки дополнительных программ для функционирования созданного продукта;
14. Web-совместимость (совместимость с различными браузерами);
15. Незначительный объем (размер сайта без базы учебных материалов ~200 Кб).
Для тестирования системы в базу данных была занесена информация по дисциплине "Схемотехника". Курс представлен из 7 подразделов, включает соответственно 7 тестов и итоговый тест. На примере данной дисциплины был проведен полный цикл обучения (регистрация в системе, регистрация курса, изучение материалов и прохождение тестирования). В процессе тестирования были выявлены некоторые ошибки программного кода, которые были успешно устранены.
Таким образом, в результате исследования разработан готовый продукт, не требующий специальной доработки, но имеющий такую возможность, и пригодный к включению в образовательный процесс.
Создана основа подсистемы, позволяющая начать её постепенное внедрение. Необходимы этапы доработки, исправление ошибок и уточнений в процессе эксплуатации, проверки идей и алгоритмов на большем количестве зарегистрированных пользователей и учебных дисциплин.
В перспективе необходимо дополнить сайт такими структурными элементами как чат, форум и гостевая книга, исправить выявленные в процессе пробной эксплуатации ошибки, проверить работоспособность системы при входе большого числа пользователей, особое внимание следует уделить развитию идей использования расширенных возможностей тестирования (в том числе организации тестирования на время), администрирования web-сайта, получения более информативной статистики и организации удобного поиска информации на web-ресурсе.
В экономической части дипломного проекта было предложено экономическое обоснование выбора комплекса технических и программных средств, необходимых для работы, а также был произведен расчет затрат на разработку и реализацию приложения, приведен расчет ее возможной цены. Внедрение системы не потребует значительных материальных и трудовых затрат.
В разделе "Безопасность жизнедеятельности" была приведена характеристика потенциальных опасностей, возникающих в процессе трудовой деятельности персонала, приведен расчет освещенности и категорирование помещения аудитории № 209 старого корпуса НИ РХТУ по взрыво- и пожароопасности.
Список использованных источников
Агопонов С.В. Средства дистанционного обучения. - СПб.: БХВ-Петербург, 2003.
Методика применения дистанционных образовательных технологий (дистанционного обучения) в образовательных учреждениях высшего, среднего и дополнительного профессионального образования Российской Федерации.
http: // db. informika. ru/do/npb/index. asp
Официальный web-сайт программного комплекса "eLearning Server 3000".
http: // www. elearn. ru
Официальный web-сайт программного комплекса "Lotus LearningSpace".
http: // www. commed. ru
Официальный web-сайт программного комплекса "Батисфера".
http: // www. baty. ru
Официальный web-сайт программного комплекса "SunRav TestOfficePro".
http: // www. sunrav. ru
Вуль В.А. Электронные издания. - СПб.: БХВ-Петербург, 2003. - 560 с.
Оганесян А.Г. Проблема обратной связи при дистанционном обучении. - М.: Открытое образование, 2002. - 238 с.
Шевелев М.Ю. Автоматизированный внешний контроль самостоятельной работы студентов в системе дистанционного образования/Дистанционно образование. Состояние, проблемы, перспективы. Тез. докл. научно-методической конференции. - Томск: ТУСУР, 2002.
Кастаньетто Дж., Рават Х. Профессиональное PHP программирование. Пер. с англ. - СПб.: Символ-Плюс, 2001. - 912 с.
Колисниченко Д.Н. Самоучитель PHP 5. Издание 2-е. - СПб.: Наука и Техника, 2005. - 576 с.
Web-сайт бесплатных java-скриптов
www. freejavascripts. narod. ru
Официальный web-сайт web-сервера Apache.
http: // www. apache. org
Официальный web-сайт языка web-программирования PHP.
http: // www. php. net
Официальный web-сайт сервера баз данных MySQL.
http: // www. mysql. com
Стивен Спэйнауэр, Роберт Экштейн. Справочник вебмастера. Издание 2-е. Пер. с англ. - СПб.: Символ-Плюс, 2001. - 608 с.
Мэрдок Келли Л. JavaScript: наглядный курс создания динамических Web-страниц. Пер. с англ. - М.: Вильямс, 2001. - 288 с.
Лобковская О.З. Методические указания по технико-экономическому обоснованию дипломных проектов, связанных с разработкой автоматизированных систем управления и программных изделий. - Новомосковск, 2002.
НПБ 105-03. Нормы пожарной безопасности.
СанПиН 2.2.4 548-96. Гигиенические требования к микроклимату производственных помещений.
СанПиН 2.2.2 - 2.4 1340-03. Гигиенические требования к персональным электронно-вычислительным машинам и организации работы.
Приложения
Приложение А Инфологическая модель предметной области
Приложение Б Листинги модулей формирования страниц приложения
Б.1 Листинг модуля "courses_registration. php"
<html>
<head>
<title> Remote Learning Institute | Courses Registration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php"? >
<table width="835" border="0" cellpadding="3" cellspacing="0">
<! - -DWLayoutTable-->
<tr>
<td width="160" height="503" valign="top" bgcolor="#8AD9FF">
<? include "body_left. php";? >
</td>
<td width="659" valign="top" bgcolor="#F9FDFF" class=bd>
<? include "courses_registration_right. php";? >
</td>
</tr>
</table>
<? include "buttom. php"? >
</body>
</html>
Б.2 Листинг модуля "header. php"
<table width="835" border="0" cellpadding="2" cellspacing="0" bgcolor="#0094DE">
<! - -DWLayoutTable-->
<tr>
<td width="280" rowspan="2" valign="top"><img src="images/logo. gif" width="280" height="108"></td>
<td width="520" height="88" valign="top"><div align="center"><img src="images/logo_text. gif" width="265" height="73"></div></td>
<td width="35" valign="top"><div align="right"><img src="images/table_corner_news. gif" width="15" height="15"></div></td>
</tr>
<tr>
<td height="20" colspan="2" valign="top">
<? include "menu. php"? >
</td>
</tr>
</table>
Б.3 Листинг модуля "body_left. php"
<?
echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr> <td bgcolor=\"#8AD9FF\">";
//echo "$user_name $user_pswd";
if ($login_reg=="yes") {
include "user_form. php";
}
else {
include "login_form. php";
}
$FindScript="find. php";
echo "<hr color=\"#0094DE\" size=\"1\" style=\"border-style: dotted\"></hr>";
echo "<form name=\"form_find\" action=\"$FindScript\" metod=\"get\" style=\"margin: 0px\">";
echo "<input type=\"text\" name=\"find\" class=\"textblockBlue\" style=\"height: 18; width: 110\">|";
echo "<input type=\"submit\" name=\"login\" style=\"height: 18; width: 43\" class=\"buttonBlue\" value=\"поиск\">";
echo "</form>";
echo "<hr color=\"#0094DE\" size=\"1\" style=\"border-style: dotted\"></hr>";
include "news_list_header. php";
echo "информация";
include "news_list_after_header. php";
echo "25.04.05 Cайт был создан, вышла его первая версия";
include "news_list_footer. php";
echo "</td> </tr> </table>";
? >
Б.4 Листинг модуля "courses_registration_right. php"
<table width="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td width="100%" valign="top" bgcolor="#F9FDFF">
<span class="textheader"> РЕГИСТРАЦИЯ НА КУРСЫ </span>
</td>
</tr>
<tr>
<td>
<?
$maxReg=3;
include "body_list_header. php";
echo "Подтверждение регистрации";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$strSQL="SELECT * FROM user_courses WHERE login='". $user_name_. "' AND status='reg'";
$res=mysql_query($strSQL);
$cRow=mysql_num_rows($res);
echo "Вы в данный момент зарегистрированы на следующее количество курсов: ". $cRow. "<br>";
$strSQL="SELECT * FROM user_courses WHERE (login='". $user_name_. "' AND n_course='". $id_course. "')";
$resUserCourses=mysql_query($strSQL);
if (! mysql_fetch_row($resUserCourses)) {
if ($cRow<=($maxReg-1)) {
echo "Вы действительно желаете зарегистрироваться на выбранный курс? ";
echo "<hr color=\"#0094DE\" size=\"1\" style=\"border-style: dotted\"></hr>";
echo "<a class=\"light\" href=\"courses_for_students. php\">возврат</a>";
echo " | <a class=\"light\" href=\"training. php? id_course=". $id_course. "&course_reg=y\">подтвердить</a>";
}
else {
echo "Вы уже зарегистрированны на максимально возможное (по единовременному прохождению) количество курсов (на ". $maxReg. ")";
echo "<hr color=\"#0094DE\" size=\"1\" style=\"border-style: dotted\"></hr>";
echo "<a class=\"light\" href=\"courses_for_students. php\">возврат</a>";
}
}
else {
echo "Вы уже зарегистрированны на выбранный курс";
echo "<hr color=\"#0094DE\" size=\"1\" style=\"border-style: dotted\"></hr>";
echo "<a class=\"light\" href=\"courses_for_students. php\">возврат</a>";
}
include "body_list_footer. php";
? >
</td>
</tr>
</table>
Б.5 Листинг модуля "buttom. php"
<table width="835" border="0" cellpadding="2" cellspacing="0" bgcolor="#77D2FF">
<! - -DWLayoutTable-->
<tr>
<td width="161" height="20" valign="top" bgcolor="#0094DE"><div align="left"><img src="images/table_corner_l_b. gif" width="15" height="15"></div>
</td>
<td width="26" valign="top"><! - -DWLayoutEmptyCell--> </td>
<td width="614" align="right" valign="top"><div align="right"><span class="textonlightblue">дизайн студии <a class="notunder"
href=mailto: andrewnik@mail. ru>< A&D-STYLE> </a></span></div></td>
<td width="16" valign="top"><div align="right"><span class="textonblue"></span></div></td>
</tr>
</table>
<? include "menu_adm. php"? >
Б.6 Листинг модуля "menu. php"
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<meta http-equiv=Content-Language content=ru>
<script type="text/javascript" src="popup_me. js"></script>
<link href="rli_style. css" rel="stylesheet" type="text/css">
</head>
<body>
<div><script type="text/javascript" src="menu_rli. js"></script></div>
<table cellspacing=0 cellpadding=0 border=0 id=menu_table>
<tr valign=top>
<td width="20"><a href=index. php title="Домашняя страница"><img src="images/home. gif" width="16" height="16" border="0"></a></td>
<td class=brbt><a class=m onclick="subnews. className='menuclick'; this. blur(); " href=news. php><img src="images/l_corner. gif" width="8" height="8"
border="0"> новости</a>
<div class=menuc id=subnews><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="subcourses. className='menuclick'; popcourses. style. visibility='hidden'; this. blur(); " onmouseover="popup(event, this,
'popcourses'); " onmouseout="popdown_1(event, this, 'popcourses'); " id=menuleft href=courses. php><img src="images/l_corner. gif" width="8" height="8"
border="0"> курсы</a>
<div class=menuc id=subcourses><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="subtraining. className='menuclick'; poptraining. style. visibility='hidden'; this. blur(); " onmouseover="popup(event,
this, 'poptraining'); " onmouseout="popdown_1(event, this, 'poptraining'); " href=courses_organization. php><img src="images/l_corner. gif" width="8"
height="8" border="0"> <b>обучение</b></a>
<div class=menuc id=subtraining><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="subcontacts. className='menuclick'; popdate. style. visibility='hidden'; this. blur(); " onmouseover="popup(event, this,
'popcontacts'); " onmouseout="popdown_1(event, this, 'popcontacts'); " href=contacts. php><img src="images/l_corner. gif" width="8" height="8" border="0">
общение
</a><div class=menuc id=subcontacts><img width=1 height=2></div>
<td class=brbt><a class=m onclick="subabout. className='menuclick'; popabout. style. visibility='hidden'; this. blur(); " onmouseover="popup(event, this,
'popabout'); " onmouseout="popdown_1(event, this, 'popabout'); " href=about_info. php><img src="images/l_corner. gif" width="8" height="8" border="0">
о проекте</a>
<div class=menuc id=subabout><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="subdown. className='menuclick'; this. blur(); " href=download. php><img src="images/l_corner. gif" width="8" height="8"
border="0"> download</a>
<div class=menuc id=subdown><img width=1 height=2></div></td>
<td class=brbt><a class=m onclick="substudent. className='menuclick'; popstudent. style. visibility='hidden'; this. blur(); " onmouseover="popup(event, this,
'popstudent'); " onmouseout="popdown_1(event, this, 'popstudent'); " href=student. php><img src="images/l_corner. gif" width="8" height="8" border="0">
студенту</a>
<div class=menuc id=substudent><img width=1 height=2></div></td>
</tr></table>
</body>
</html>
Приложение В Листинги модуля тестирования
В.1 Листинг модуля "training_check_registration_right. php"
<table width="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td width="100%" valign="top" bgcolor="#F9FDFF">
<span class="textheader"> РЕГИСТРАЦИЯ </span>
</td>
</tr>
<tr>
<td>
<?
$submit = 1; // флаг передачи
$dataComplite= 1; // проверка данных
$err_note="2"; // сообщение об ошибке
$qs=""; // строка передачи данных
global $qs,$r_lastname,$r_firstname,$r_middlename,$r_login,$r_pass,$r_pass_c,$r_student_code,$r_sex,$r_n_group,$r_email;
function check_email($str) {
//возвращает 1 если адрес допустим
if (ereg ("^. +@. +\\. +$",$str)) {
return 1;
}
else {
return 0;
}
}
function check_form() {
global $qs,$err_note,$submit, $dataComplite,$r_lastname,$r_middlename,$r_firstname,$r_login,$r_pass,$r_pass_c,$r_student_code,$r_sex,$r_n_group,$r_email;
if ($dataComplite== 1) {
if(! $r_lastname) {
$err_note = "не введена фамилия";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_firstname) {
$err_note = "не введено имя";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_middlename) {
$err_note = "не введено отчество";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_login) {
$err_note = "не введен login";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if($r_pass<>$r_pass_c) {
$err_note = "введенные пароли не совпадают";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_pass) {
$err_note = "не введен пароль";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_pass_c) {
$err_note = "не введен проверочный пароль";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_student_code) {
$err_note = "не введен код студента";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_n_group) {
$err_note = "не введен номер группы";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
if(! $r_email) {
$err_note = "не введен адрес электронной почты";
$dataComplite= 0;
}
else {
if (check_email($r_email) ==0) {
$err_note = "не правильно введен адрес электронной почты";
$dataComplite= 0;
}
}
}
if ($dataComplite== 1) {
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$sqlstr = "SELECT login FROM users WHERE login='". $r_login. "'; ";
$res=mysql_query($sqlstr);
if (mysql_fetch_row($res)) {
$err_note = "в системе уже используется данный login";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$sqlstr = "SELECT student_code FROM users WHERE student_code='". $r_student_code. "'; ";
$res=mysql_query($sqlstr);
if (mysql_fetch_row($res)) {
$err_note = "в системе уже используется данный код студента";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$sqlstr = "SELECT student_code FROM correct_codes WHERE student_code='". $r_student_code. "'; ";
$res=mysql_query($sqlstr);
if (! (mysql_fetch_row($res))) {
$err_note = "преподаватель запретил доступ к системе обучения";
$dataComplite= 0;
}
}
if ($dataComplite== 1) {
$qs = "? r_lastname=". urlencode($r_lastname).
"&r_firstname=". urlencode($r_firstname).
"&r_middlename=". urlencode($r_middlename).
"&r_login=". urlencode($r_login).
"&r_pass=". urlencode($r_pass).
"&r_student_code=". urlencode($r_student_code).
"&r_n_group=". urlencode($r_n_group).
"&r_email=". urlencode($r_email).
"&r_sex=". urlencode($r_sex).
"&r_registration_date=". urlencode(date("Y/m/d")).
"&user_login=0";
return 1;
}
}
include "body_list_header. php";
echo "Регистрационная форма | Проверка введенной информации ";
include "body_list_after_header. php";
$LoginScript = "training. php";
echo "<form name=\"form_reg\" style=\"margin: 0px\">";
echo "<span class=\"textonlightblue\"><b>Фамилия: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_lastname</b></span><br>";
echo "<span class=\"textonlightblue\"><b>Имя: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_firstname</b></span><br>";
echo "<span class=\"textonlightblue\"><b>Отчество: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_middlename</b></span><br>";
echo "<span class=\"textonlightblue\"><b>login: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_login</b></span><br>";
echo "<span class=\"textonlightblue\"><b>пароль: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_pass</b></span><br>";
echo "<span class=\"textonlightblue\"><b>Код студента: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_student_code</b></span><br>";
echo "<span class=\"textonlightblue\"><b>№ группы: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_n_group</b></span><br>";
echo "<span class=\"textonlightblue\"><b>Пол: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_sex</b></span><br>";
echo "<span class=\"textonlightblue\"><b>Почта: </b></span><br>";
echo "<span class=\"textonOrrange\"><b>$r_email</b></span><br>";
echo "</form>";
if (check_form() ==0) {
echo "<form name=\"form_err\" style=\"margin: 0px\">";
include "body_list_footer. php";
include "body_list_header. php";
echo "Возникла ошибка при вводе данных ";
include "body_list_after_header. php";
echo "<span class=\"textrederror\"> $err_note </span>";
echo "<hr class=hr_onlightblue_orange></hr>";
echo "<input type=\"button\" name=\"back\" style=\"height: 18\" class=\"buttonOrange\" value=\"возврат\" onClick=\"self. history. back(); \">";
include "body_list_footer. php";
}
else {
$surl= "training. php". $qs;
echo "<form method=post action=\"$surl \" name=\"form_but\" style=\"margin: 0px\">";
echo "<hr class=hr_onlightblue_orange></hr>";
echo "<input type=\"button\" name=\"back\" style=\"height: 18\" class=\"buttonOrange\" value=\"возврат\" onClick=\"self. history. back(); \">|";
echo "<input type=\"submit\" style=\"height: 18\" class=\"buttonOrange\" value=\"оК\">";
include "body_list_footer. php";
}
echo "</form>";
? >
</td>
<div id="error_input"
style="position: absolute;
width: 220px;
top: 45%;
left: 45%;
background: #8AD9FF;
font-size: 11px;
border: 1px solid #0094DE;
padding: 1px;
z-index: 1">
<form name="form_err" style="margin: 0px">
<span class="textonLightBlue"><b>При вводе произошла ошибка: </b></span><br>
<div style="background: white; padding: 2px">
<span class="textrederror">$err_note</span><br>
<input type="button" align="middle" style="height: 18" class="buttonBlue" value="исправить" onClick="hiddeLayer()">
</form> </div>
</div>
</tr>
</table>
В.2 Листинг модуля " training_test_right. php"
<table width="100%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td width="100%" valign="top" bgcolor="#F9FDFF">
<span class="textheader"> ПРОХОЖДЕНИЕ ТЕСТОВ </span>
</td>
</tr>
<tr>
<td>
<?
include "body_list_header. php";
$TestScript="training_test. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
if ($q_count>1 && $q_count<7) {
//проверка ответов на правильность
if ($q_count==6) {
echo "Информация по тестам";
}
else {
echo "Выберите ответ на вопрос №". $q_count;
}
include "body_list_after_header. php";
$str_answer ="SELECT * FROM answers WHERE n_question='";
if ($q_count==2) {
$str_answer = $str_answer. $q_1. "' AND id_answer='";
}
elseif ($q_count==3) {
$str_answer = $str_answer. $q_2. "' AND id_answer='";
}
elseif ($q_count==4) {
$str_answer = $str_answer. $q_3. "' AND id_answer='";
}
elseif ($q_count==5) {
$str_answer = $str_answer. $q_4. "' AND id_answer='";
}
else {
$str_answer = $str_answer. $q_5. "' AND id_answer='";
}
//проверка ответа 1
$str_answer_full = $str_answer. $id_a_1. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_1)) {
$r_count_1=1;
}
else {
$r_count_1=0;
}
}
else {
if (! (isset($a_1))) {
$r_count_1=1;
}
else {
$r_count_1=0;
}
}
//проверка ответа 2
$str_answer_full = $str_answer. $id_a_2. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_2)) {
$r_count_2=1;
}
else {
$r_count_2=0;
}
}
else {
if (! (isset($a_2))) {
$r_count_2=1;
}
else {
$r_count_2=0;
}
}
//проверка ответа 3
$str_answer_full = $str_answer. $id_a_3. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_3)) {
$r_count_3=1;
}
else {
$r_count_3=0;
}
}
else {
if (! (isset($a_3))) {
$r_count_3=1;
}
else {
$r_count_3=0;
}
}
//проверка ответа 4
$str_answer_full = $str_answer. $id_a_4. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_4)) {
$r_count_4=1;
}
else {
$r_count_4=0;
}
}
else {
if (! (isset($a_4))) {
$r_count_4=1;
}
else {
$r_count_4=0;
}
}
//проверка ответа 5
$str_answer_full = $str_answer. $id_a_5. "'";
$res_answer = mysql_query($str_answer_full);
$row_answer = mysql_fetch_row($res_answer);
if ($row_answer [3] =='y') {
if (isset($a_5)) {
$r_count_5=1;
}
else {
$r_count_5=0;
}
}
else {
if (! (isset($a_5))) {
$r_count_5=1;
}
else {
$r_count_5=0;
}
}
//проверка в общей сложности
$r_count_1=$r_count_1*$r_count_2*$r_count_3*$r_count_4*$r_count_5;
if ($r_count_1==1) {
echo "Вы правильно ответили на предыдущий вопрос <br>";
$r_count++;
}
else {
echo "Вы не правильно ответили на предыдущий вопрос <br>";
}
echo "<hr color=\"#FFDFBF\" size=\"1\" style=\"border-style: dotted\"></hr>";
$r_percent = $r_count/5*100;
if ($q_count==6) {
echo "Вы правильно ответили на ". $r_count. " из 5 вопросов. <br>Процент правильных ответов ". $r_percent. "%. <br><br>";
$res_user_tests=mysql_query("SELECT * FROM user_tests WHERE n_user_course='". $id_course. "' AND n_course_part='". $id_part. "'");
$row_user_tests = mysql_fetch_row($res_user_tests);
if ($row_user_tests [4] >$r_percent) {
$r_percent=$row_user_tests [4] ;
}
$user_tests_SQL = "UPDATE user_tests SET percent='". $r_percent. "', last_test_date='". date("Y/m/d"). "' WHERE n_user_course='". $id_course. "' AND n_course_part='". $id_part. "'";
mysql_query($user_tests_SQL);
if ($r_percent>=70) {
echo "Тест успешно пройден<br>";
$res_user_courses2=mysql_query("SELECT * FROM user_courses WHERE id_user_course='". $id_course. "'");
$row_user_courses2=mysql_fetch_row($res_user_courses2);
$res_course_parts2=mysql_query("SELECT * FROM course_parts WHERE n_course='". $row_user_courses2 [2]. "'");
$res_user_tests2=mysql_query("SELECT * FROM user_tests WHERE n_user_course='". $id_course. "'");
if (mysql_num_rows($res_course_parts2) == mysql_num_rows($res_user_tests2)) {
//$res_user_courses3=mysql_query("SELECT * FROM user_courses WHERE id_user_course='". $id_course. "'");
//$row_user_courses3 = mysql_fetch_row($res_user_tests3);
$user_courses_SQL = "UPDATE user_courses SET status='end', end_date='". date("Y/m/d"). "' WHERE id_user_course='". $id_course. "'";
mysql_query($user_courses_SQL);
};
}
else {
echo "Вы не прошли тест";
$res_user_tests = mysql_query("SELECT * FROM user_tests WHERE n_user_course='". $id_course. "' AND n_course_part='". $id_part. "'");
$row_user_tests = mysql_fetch_row($res_user_tests);
if ($row_user_tests [3] >2) {
//$res_user_courses=mysql_query("SELECT * FROM user_courses WHERE id_user_course='". $id_course. "'");
//$row_user_courses = mysql_fetch_row($res_user_courses);
$user_courses_SQL = "UPDATE user_courses SET status='not', end_date='". date("Y/m/d"). "' WHERE id_user_course='". $id_course. "'";
mysql_query($user_courses_SQL);
}
}
echo "<hr color=\"#FFDFBF\" size=\"1\" style=\"border-style: dotted\"></hr>";
echo "<a class=\"light\" href=\"training. php\">на личную страницу<a>";
}
}
if ($q_count>0 && $q_count<6) {
//прорисовка вопросов - ответов
if ($q_count==1) {
$res_user_tests=mysql_query("SELECT * FROM user_tests WHERE n_user_course='". $id_course. "' AND n_course_part='". $id_part. "'");
if (mysql_num_rows($res_user_tests) ==0) {
$user_tests_SQL = "INSERT INTO user_tests values('0','". $id_course. "','". $id_part. "','1','0','". date("Y/m/d"). "')";
mysql_query($user_tests_SQL);
}
else {
$row_user_tests = mysql_fetch_row($res_user_tests);
$row_user_tests [3] ++;
if ($row_user_tests [3] <4) {
$user_tests_SQL = "UPDATE user_tests SET attemps='". $row_user_tests [3]. "', last_test_date='". date("Y/m/d"). "' WHERE n_user_course='". $id_course. "' AND n_course_part='". $id_part. "'";
mysql_query($user_tests_SQL);
}
}
echo "Выберите ответ на вопрос №". $q_count;
include "body_list_after_header. php";
}
$str_question ="SELECT * FROM questions WHERE id_question='";
if ($q_count==1) {
$res_question=mysql_query($str_question. $q_1. "'");
}
elseif ($q_count==2) {
$res_question=mysql_query($str_question. $q_2. "'");
}
elseif ($q_count==3) {
$res_question=mysql_query($str_question. $q_3. "'");
}
elseif ($q_count==4) {
$res_question=mysql_query($str_question. $q_4. "'");
}
else {
$res_question=mysql_query($str_question. $q_5. "'");
}
$row_question=mysql_fetch_row($res_question);
echo "<b>". $row_question [2]. "</b><br>";
echo "<form name=\"form_test\" action=\"$TestScript\" metod=\"get\" style=\"margin: 0px\">";
$strSQL="SELECT * FROM answers WHERE n_question='". $row_question [0]. "'";
$res_answer=mysql_query($strSQL);
//$answer_count=1;
//echo "<form>";
//
//while ($row_answer=mysql_fetch_row($res_answer)) {
//echo "<input name=\"a_". $answer_count. "\" type=\"checkbox\">". $row_answer [2] ;
//echo "<input name=\"id_a_". $answer_count. "\" type=\"hidden\" value=". $row_answer [0]. "><br>";
//$answer_count++;
//}
$mas_count=0;
while ($mas_temp=mysql_fetch_row($res_answer)) {
$mas_answer [$mas_count] [0] =$mas_temp [0] ;
$mas_answer [$mas_count] [1] =0;
$mas_count++;
}
$mas_count--;
for ($i=1; $i<=5; $i++) {
mt_srand(time());
while (true) {
$mas_index=mt_rand(0,$mas_count);
if ($mas_answer [$mas_index] [1] ==0) {
$mas_answer [$mas_index] [1] =1;
break;
}
}
$strSQL="SELECT * FROM answers WHERE id_answer='". $mas_answer [$mas_index] [0]. "'";
$res_answer=mysql_query($strSQL);
$row_answer=mysql_fetch_row($res_answer);
echo "<input name=\"a_". $i. "\" type=\"checkbox\">". $row_answer [2] ;
echo "<input name=\"id_a_". $i. "\" type=\"hidden\" value=". $row_answer [0]. "><br>";
}
echo "<input name=\"id_course\" type=\"hidden\" value=". $id_course. ">";
echo "<input name=\"id_part\" type=\"hidden\" value=". $id_part. ">";
echo "<input name=\"q_1\" type=\"hidden\" value=". $q_1. ">";
echo "<input name=\"q_2\" type=\"hidden\" value=". $q_2. ">";
echo "<input name=\"q_3\" type=\"hidden\" value=". $q_3. ">";
echo "<input name=\"q_4\" type=\"hidden\" value=". $q_4. ">";
echo "<input name=\"q_5\" type=\"hidden\" value=". $q_5. ">";
echo "<input name=\"q_count\" type=\"hidden\" value=". ++$q_count. ">";
echo "<input name=\"r_count\" type=\"hidden\" value=". $r_count. ">";
echo "<hr color=\"#FFDFBF\" size=\"1\" style=\"border-style: dotted\"></hr>";
echo "<input type=\"submit\" name=\"test_ok\" style=\"height: 18; width: 41\" class=\"buttonOrange\" value=\"ОК\">";
echo "</form>";
}
include "body_list_footer. php";
? >
</td>
</tr>
</table>
Приложение Г Листинги модуля администрирования
Г.1 Листинг модуля "admin_edit. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<?
include "header. php";
$ScriptAdmAdd="admin_add. php";
$ScriptAdmDel="admin_del. php";
$ScriptAdmMdf="admin_update. php";
global $SelectT;
echo "<table width=\"835\" border=\"0\" cellpadding=\"3\" background=\"#FAF1D8\" cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo "Редактирование таблиц данных: ";
include "body_list_after_header. php";
echo "<table splitcell=3><tr>";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$ListF=mysql_list_fields($DB,$SelectT);
$CounterF=0;
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$CounterF++;
$massField [$CounterF] =$stItem;
echo "<td bgcolor=#ffcc00 class=\"textblockBlue\">$massField [$CounterF] </td>";
}
echo "<td bgcolor=#ffcc00 class=\"textblockBlue\">редактировать</td>";
echo "</tr><tr>";
$strSQL ="SELECT * FROM ". $SelectT. "; ";
$res=mysql_query($strSQL);
while ($Row=mysql_fetch_row($res)) {
for ($CounterF=0; $CounterF< mysql_num_fields($ListF); $CounterF++) {
echo "<td class=\"textblockBlue\">$Row [$CounterF] </td>";
}
echo "<td class=\"table_admin\" align=\"center\">";
echo "<a href=\"$ScriptAdmMdf". "? t_name=". urlencode($SelectT). "&t_index=". urlencode($Row [0]). "\">изменить<a>|";
echo "<a href=\"$ScriptAdmDel". "? t_name=". urlencode($SelectT). "&t_index=". urlencode($Row [0]). "\">удалить<a>";
echo "</td></tr><tr>";
}
$ScriptAdmAdd=$ScriptAdmAdd. "? t_name=". urlencode($SelectT);
mysql_free_result($ListF);
echo "</tr></table>";
echo "<tr><td colspan=2><table>";
echo "<form name=\"FormName\" method=\"post\" margin=\"0\" action=$ScriptAdmAdd>";
echo "<input type=\"submit\" name=\"select\" style=\"height: 18\" class=\"buttonOrange\" value=\"добавить\">|";
echo "<a class=\"light\" href=admin. php>возврат</a>";
echo "</form>";
include "body_list_footer. php";
echo "</table></td></tr></table>";
include "buttom. php";
? >
</body>
</html>
Г.2 Листинг модуля "admin_add. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php"? >
<?
$ScriptAdm = "admin_add_check. php";
global $t_name,$t_index;
echo "<table width=\"835\" border=\"0\" cellpadding=\"3\" background=\"#FAF1D8\" cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo "Добавление данных в таблицу: ";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$t_name= urldecode($t_name);
$ListF=mysql_list_fields($DB,$t_name);
$CounterF=0;
echo "<form name=\"FormName\" method=\"get\" margin=\"0\" action=\"$ScriptAdm\">";
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$CounterF++;
$massField [$CounterF] =$stItem;
echo "<span class=\"textonlightblue\"><b>$massField [$CounterF] </b></span><br>";
echo "<input type=\"text\" name=\"". $massField [$CounterF]. "\" class=\"textblockBlue\"><br>";
}
echo "<input type=\"hidden\" name=\"t_name\" value=\"". $t_name. "\"class=\"textblockBlue\"><br>";
echo "<input type=\"button\" name=\"back\" style=\"height: 18\" class=\"buttonOrange\" value=\"возврат\" onClick=\"self. history. back(); \">|";
echo "<input type=\"submit\" name=\"select\" style=\"height: 18\" class=\"buttonOrange\" value=\"ок\">";
echo "</form>";
include "body_list_footer. php";
echo "</td></tr></table>";
include "buttom. php"? >
</body>
</html>
Г.3 Листинг модуля "admin_del. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php";
$ScriptAdm ="admin_edit. php";
global $t_name,$t_index;
echo "<table width=\"835\" border=\"0\" cellpadding=\"3\" background=\"#FAF1D8\" cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo "удаление данных из таблицы: ";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$ListF=mysql_list_fields($DB,$t_name);
$CounterF=0;
$ScriptAdm = $ScriptAdm. "? SelectT=". urlencode($t_name);
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$massField [$CounterF] =$stItem;
$CounterF++;
}
$strSQL="DELETE FROM ". $t_name. " WHERE ". $massField [0]. "='". $t_index. "'";
mysql_query($strSQL);
echo "<form name=\"FormName\" method=\"post\" margin=\"0\" action=$ScriptAdm>";
echo "<span class=\"textonlightblue\"><b>Запись удалена</b></span><br>";
echo "<input type=\"submit\" name=\"select\" style=\"height: 18\" class=\"buttonOrange\" value=\"готово\">";
echo "</form>";
include "body_list_footer. php";
echo "</td></tr></table>";
include "buttom. php";
? >
</body>
</html>
Г.4 Листинг модуля "admin_update. php"
<html>
<head>
<title> Remote Learning Institute | Administration</title>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
</head>
<body>
<? include "header. php"? >
<?
$ScriptAdm = "admin_update_check. php";
global $t_name,$t_index;
echo "<table width=\"835\" border=\"0\" cellpadding=\"3\" background=\"#FAF1D8\" cellspacing=\"0\" >";
echo "<tr><td>";
include "body_list_header. php";
echo "Изменение данных в записи: ";
include "body_list_after_header. php";
require "option. php";
mysql_connect($SERVER,$USER,$PASSWD) or die(mysql_error());
mysql_select_db($DB);
$t_name= urldecode($t_name);
$ListF=mysql_list_fields($DB,$t_name);
$CounterF=0;
echo "<form name=\"FormName\" method=\"get\" margin=\"0\" action=\"$ScriptAdm\">";
$stItem=mysql_field_name($ListF,$CounterF);
$sqlstr = "SELECT * FROM ". $t_name. " WHERE ". $stItem. "='". $t_index. "'; ";
$res=mysql_query($sqlstr);
$Row=mysql_fetch_row($res);
echo "<input type=\"hidden\" name=\"id_tab\" value=\"". $Row [0]. "\">";
while ($CounterF < mysql_num_fields($ListF)) {
$stItem=mysql_field_name($ListF,$CounterF);
$CounterF++;
$massField [$CounterF] =$stItem;
echo "<span class=\"textonlightblue\"><b>$massField [$CounterF] </b></span><br>";
echo "<input type=\"text\" name=\"". $massField [$CounterF]. "\" class=\"textblockBlue\" value=\"". $Row [$CounterF-1]. "\"><br>";
}
echo "<input type=\"hidden\" name=\"t_name\" value=\"". $t_name. "\"class=\"textblockBlue\"><br>";
echo "<input type=\"button\" name=\"back\" style=\"height: 18\" class=\"buttonOrange\" value=\"возврат\" onClick=\"self. history. back(); \">|";
echo "<input type=\"submit\" name=\"select\" style=\"height: 18\" class=\"buttonOrange\" value=\"ок\">";
echo "</form>";
include "body_list_footer. php";
echo "</td></tr></table>";
include "buttom. php"? >
</body>
</html>