Ф 27-015 Учреждение образования «Гродненский государственный университет имени Янки Купалы» УТВЕРЖДАЮ Проректор по учебной работе Учреждения образования “Гродненский государственный университет имени Янки Купалы” ____________ ______________ ___ _____________ ________ г. Регистрационный № УД- ____ /баз. Технологии и языки Internet-программирования Учебная программа для специальности: 1-40 01 01 Программное обеспечение информационных технологий 2011 г. СОСТАВИТЕЛИ: Д.В. Антоник, старший преподаватель кафедры программного обеспечения интеллектуальных и компьютерных систем РЕЦЕНЗЕНТЫ: А.В. Паньков, кандидат физико-математических наук, доцент стохастического анализа и эконометрического моделирования кафедры Н.А. Переверзева, кандидат физико-математических наук, заведующая кафедрой гуманитарных и языковедческих дисциплин Гродненского филиала БИП РЕКОМЕНДОВАНА К УТВЕРЖДЕНИЮ: Кафедрой программного обеспечения интеллектуальных и компьютерных систем (протокол № __ от ________ ); Методической комиссией ___________________________________ (протокол № __ от ________ ); по специальности Советом факультета математики и информатики (протокол № __ от ________ ); Научно-методическим советом Учреждения образования «Гродненский государственный университет имени Янки Купалы» (протокол № __ от ________ ); (ям) 1. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА 1.1. Характеристика учебной дисциплины Программа курса «Технологии и языки Internet-программирования» разработана для студентов специальности 1-40 01 01 «Программное обеспечение информационных технологий» дневной и заочной формы обучения. Курс состоит из 5 блоков, в которых рассматриваются: базовые знания о системах и программном обеспечении Web-серверов; Cascade Style Sheets; JavaScript; CGI, Perl; PHP. В курсе дается обзор современных средств реализации Web-серверов на базе различных систем. Варианты доступа к серверам на базе Unix подобных систем (работа с SSH и FTP). Обзор доступных средств редактирования кода и файловых менеджеров. Курс включает изучение способов гипертекстовой разметки с применением каскадных таблиц стилей (Cascade Style Sheets). В курсе дается описание синтаксиса CSS, варианты размещения описания CSS в теле документа и за его пределами, подробно разобраны атрибуты CSS для блочных и строчных элементов разметки, разобраны методы позиционирования элементов разметки при помощи CSS. Курс также включает изучение языка программирования JavaScript. Главное внимание уделяется логике разработки JavaScript-кода и основным принципам его использования на страницах World Wide Web. Изучаются способы обмена данными в рамках протокола HTTP с применением HTML-форм и CGI-скриптов. Дается описание спецификации Common Gateway Interface, варианты и особенности ее применения для различных методов доступа. Изложение материала опирается на множество примеров. Завершающим этапом курса является изучение языка программирования PHP. Первая часть этого этапа посвящена изучению основ синтаксиса и управляющим конструкциям. После этого рассматривается технология клиентсервер, как основная сфера приложения языка PHP. Затем переходим к изучению наиболее полезных на наш взгляд встроенных функций и решению с их помощью практических задач - все это позволит рассмотреть ключевые задачи практического использования языка. Рассматривается взаимодействие с MySQL сервером баз данных. 3 1.2. Цели и задачи учебной дисциплины Целью курса является знакомство слушателей с особенностями использования наиболее популярных языков (JavaScript, Perl, PHP) webпрограммирования и получения практических навыков разработки простых приложений для Internet. После прослушивания курса слушатели должны получить практические навыки по: - созданию web-станиц с использованием CSS; - использованию JavaScript при создании сайтов; - программированию на языках Perl и PHP. 1.3. Место учебной дисциплины в системе подготовки специалиста Курс является одним из основных курсов для подготовки специалистов по специализации 1-40010101 "Компьютерные системы и Internet-технологии". Впоследствии знания данного курса могут пригодиться для разработки курсовых и дипломных проектов или при последующей работе на предприятиях. 1.4. Связи с другими дисциплинами учебного плана Данный курс является логическим продолжением курса «Языки разметки документов». Так же в курсе используются знания и умения, полученные при изучении курса «Основы теории компьютерных сетей». Продолжением данного курса можно считать «Современные технологии разработки web-приложений». 1.5. Требования к компетентности (согласно образовательного стандарта специальности) В результате изучения учебной дисциплины студент должен: знать: о системах и программном обеспечении Web-серверов; способы гипертекстовой разметки с применением каскадных таблиц стилей; основные принципы использования JavaScript на Web-страницах; о принципе работы CGI; синтаксис и основные команды (функции) языка PHP. уметь: применять полученные теоретические знания на практике; создавать Web-приложения с использованием PHP и JavaScript; устанавливать и настраивать свои Web-приложения на Web-серверах; работать с удаленным доступом к Web-серверам; диагностировать и исправлять ошибки в Web-приложениях. владеть навыками создания Web-приложений при использовании языков программирования PHP, JavaScript. В соответствие с учебным планом на изучение учебной дисциплины отводится 160 часов, из них аудиторных – 68 часов. Примерное распределение аудиторного времени следующее: – лекции –34 часа; – лабораторные занятия – 34 часа. 5 2. ПРИМЕРНЫЙ ТЕМАТИЧЕСКИЙ ПЛАН 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. практические занятия лабораторные занятия Семинары управляемая (контролируемая) самостоятельная работа студента 1 Название раздела (темы, занятия) лекции Номер раздела (темы, занятия) Количество аудиторных часов 2 3 4 5 6 7 Обзор современных средств реализации Web-серверов. Установка и настройка Web-сервера Apache. Назначение и применение CSS. Блочные и строковые элементы. Цвет и шрифт. Текст и списки. Позиционирование. Назначение и применение JavaScript, общие сведения. Программирование свойств окна браузера. Программирование форм. Программирование графики. Программирование гипертекстовых переходов. Введение в CGI Общие сведения. Введение в программирование на Perl. HTML-формы. Введение в PHP. Основы синтаксиса PHP. Управляющие конструкции. Обработка запросов с помощью PHP. Обработка авторизации. Функции в PHP. Работа с массивами данных. Работа со строками. Регулярные выражения. Работа с файловой системой. Работа с базами данных MySQL. Итого часов 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 2 4 2 2 2 6 2 2 34 2 4 34 3. СОДЕРЖАНИЕ УЧЕБНОГО МАТЕРИАЛА 1. Обзор современных средств реализации Web-серверов Основные варианты установки и настройки Web-серверов для различных операционных систем. Примеры установки и использования Web-серверов в ОС Windows и Linux. 2. Назначение и применение CSS. Блочные и строковые элементы, цвет и шрифт Основные понятия CSS, их назначение, определение и использование при форматировании HTML-документа. Блочные и строковые элементы: описание, форматирование и свойства. Управление отображением цветами текста и фоном, на котором отображается текст, а также использование гарнитур шрифтов. 3. Текст и списки, позиционирование Свойства текстовых фрагментов: межбуквенные расстояния, высота строк, выравнивание, отступ в первой строке параграфа, преобразования начертания. Управление формой и отображением списков. Размещение блочных элементов HTML-разметки в рабочей области браузера с точностью до пикселя: размеры блока, абсолютные и относительные координаты. Слои: управление видимостью. 4. Назначение и применение JavaScript, общие сведения Назначение и способы применения JavaScript-кода на HTML-страницах. Рассказывается краткая история JavaScript, даются основные понятия и определения. 5. Программирование свойств окна браузера. Программирование форм Вопросы программирования свойств окна браузера, управление окнами, а также работа с фреймами. Рассматривается самая старая часть спецификации JavaScript программирование HTML-форм. Разбираются различные методы обработки событий, перехват отправки данных на сервер и способы организации обмена данными при помощи форм и JavaScript-кода. 7 6. Программирование графики Описаны приемы программирования изменений графических образов на HTML-страницах. Подробно разбираются основные приемы программирования образов и приводятся примеры. 7. Программирование гипертекстовых переходов Рассматриваются вопросы построения динамических списков гипертекстовых ссылок и программирования гипертекстовых переходов в зависимости от условий просмотра HTML-страниц и действий пользователей. 8. Введение в CGI, общие сведения. Определяется место CGI-скриптов в общем контексте Web-технологий. Обсуждаются основные способы применения скриптов и особенности программирования для Web. Введены все необходимые понятия CGIпрограммирования. 9. Введение в программирование на Perl Подробно разбираются особенности программирования CGI-скриптов на языке Perl. Определяются правила вызова скрипта, передачи ему данных и получение результатов работы скрипта для дальнейшего использования в HTTPобмене и генерации HTML-страниц. 10. HTML-формы Подробным образом разбираются элементы разметки, входящие в группу HTML-FORM. Рассматриваются их атрибуты, совместимость атрибутов и форматы записи данных при формировании запросов к HTTP-серверу. Способы взаимодействия между браузерами и HTTP-сервером по методу доступа GET и POST. При использовании HTML-форм. Объясняются особенности формирования HTML-сообщения и разбора его CGI-скриптом. 11. Введение в PHP. Основы синтаксиса PHP. История языка (от PHP/FI до PHP5); описание его возможностей (краткий перечень платформ, протоколов, баз данных, приложений электронной коммерции и функций, которые поддерживаются PHP); области применения (как серверное приложение, в командной строке, создание GUI приложений); способы использования (как PHP встраивается в HTML-код и простейшие примеры.); создание первого скрипта на PHP. Установка и настройка программного обеспечения, необходимого для работы с PHP. Основы синтаксиса PHP. Рассматриваются способы разделения инструкций, создания комментариев, переменные, константы и типы данных, операторы. 12. Управляющие конструкции Условные операторы (if, switch), работа с циклами (while, for, foreach) и использование функций include, require. Пример - универсализация письма в зависимости от ситуации и его отправка каждому из группы пользователей. 13. Обработка запросов с помощью PHP Способы отправки данных на сервер и их обработка с помощью PHP. Рассматриваются основные понятия клиент-серверных технологий. Рассматривается понятие HTML-формы и отправка данных с ее помощью. Дается краткая характеристика методов Post и Get. Рассматривается механизм получения данных из HTML-форм и их обработка с помощью PHP. Пример - создание формы для регистрации пользователей на сайте, отправка "универсального письма" всем зарегистрировавшимся. 14. Функции в PHP Понятие функции, функции, определяемые пользователем, аргументы функций, передача аргументов по значению и по ссылке, значение аргументов по умолчанию и значения, возвращаемые функцией (функция return()). Пример создание web-интерфейс для генерации HTML-формы. 15. Работа с массивами данных Подробное изучение массивов и функций, встроенных в PHP для работы с ними. Рассматриваются функции для поиска элементов в массиве, для сортировки элементов массива, а также применение созданных пользователем функций ко всем элементам массива, разбивка массива на подмассивы и другое 16. Работа со строками, регулярные выражения Подробно обсуждаются вопросы работы со строками, изучаются функции, полезные для решения разнообразных прикладных задач. Рассматриваются различные способы вывода строк, разбивка и соединение строк (функции explode, implode), определение длины строки (strlen), выделение подстроки (strstr, substr). 9 Рассматривается понятие регулярного выражения, реализация механизма регулярных выражений в языке PHP, их синтаксис и семантика. Пример - задача контекстного поиска. 17. Работа с файловой системой Создание файлов, чтение данных из файла, удаление файла, а также проверка наличия файла на сервере. (Функции fopen, fwrite, fclose , file, fget, unlink, file_exists.) Пример - загрузка файла на сервер с помощью web-интерфейса 18. Работа с базами данных на MySQL-сервере Создание скриптов на языке PHP работающих с базами данных на MySQLсервере. Создание таблиц в базе данных, добавление, удаление и редактирование данных в таблицах. 4. ИНФОРМАЦИОННО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ПО ДИСЦИПЛИНЕ 4.1. Перечень рекомендуемой литературы Основная литература 1. Джамcа К., Кинг К., Андерсон Э. Эффективный самоучитель по креативному Web-дизайну. HTML, XHTML, CSS, JavaScript, PHP, ASP, ActiveX. Текст, графика, звук и анимация. Пер с англ. - М.: ООО "ДиаСофтЮП", 2005.- 672 с. 2. Бранденбау Джерри JAVASCRIPT: Сборник рецептов для профессионалов/Бранденбау Дж.- Спб. : Питер , 2000.- 416с. 3. Дарнелл Рик JAVASCRIPT: справочник /Дарнелл Рик; Пер С Англ.- Спб. : Питер , 2000.- 192с 4. Кристиансен Том PERL: библиотека программиста: пер. с англ /Кристиансен Т., Торкингтон Н.- Спб. : Питер , 2000.- 734с. 5. Коггзолл Дж. PHP5. Полное руководство/ Пер. с англ.- М.: Издательский дом "Вильямс", 2006.- 752с. Дополнительная литература 1. Колисниченко Д.Н. Самоучитель PHP 5. - СПб.: Наука и техника, 2005. 568с. 2. Энди Харрис. PHP/MySQL для начинающих. / Пер,. с англ. -М.: КудицОбраз, 2002-384с. 3. Кухарчик А. PHP:обучение на примерах - Мн.: Новое знание, 2004.- 237 с. 11 4.2. Критерии оценок результатов учебной деятельности Оценка 10 баллов 9 баллов 8 баллов 7 баллов Критерии оценки уровня знаний и компетенций студента а) Полностью раскрыто содержание теоретических вопросов. При ответе использована терминология и символика предметной области в необходимой логической последовательности. Рисунки, графики и схемы, сопутствующие ответу, выполнены верно. При ответе студент демонстрирует свободное оперирование учебным материалом различной степени сложности с использованием сведений из других учебных курсов и дисциплин. При ответе на дополнительные вопросы заметно умение развивать систему теоретических знаний на основе самостоятельной работы. б) Все задания практической части выполнены безукоризненно. Решения характеризуются краткостью, обоснованностью, рациональностью либо приведены нестандартные подходы к решению задач. Студентом демонстрируется умение действовать в новой нестандартной ситуации, требующей выхода на иной, более высокий уровень знаний. а) При ответе на теоретическую часть билета и дополнительные вопросы студент показывает свободное владение программным учебным материалом различной степени сложности, отличное знание содержания учебной дисциплины, фактов и зависимостей, а также творческое использование этих знаний в обосновании утверждений и заключений. Допускается один недочёт, который легко устраняется самим отвечающим. б) При решении задач практической части студентом демонстрируется высокая техника выполнения всех операций и обоснования выбранного способа решения фактами из теории. При безукоризненном ответе допускается вычислительная ошибка или другой небольшой недочёт, не повлиявшие на конечный результат, которые легко исправляются самим отвечающим. а) При обосновании фундаментальных положений учебной дисциплины либо при изложении иного требуемого теоретического материала имеются один-два недочёта, которые студент сам исправляет по замечанию экзаменатора. При ответе на дополнительные вопросы выявляется владение программным учебным материалом и оперирование им в знакомой и незнакомой ситуациях. б) Практическая часть имеет единичные несущественные недочёты, самостоятельно исправляемые студентом по замечанию экзаменатора. Студент при решении демонстрирует хорошее знание фактов и зависимостей, правильное (но не всегда рациональное) использование этих знаний в новой ситуации, недостаточное владение методикой оформления результатов выполненной работы. а) При изложении фундаментальных положений и основного материала ответа студент показывает владение программным учебным материалом, в том числе и различной степени сложности, а также свободное оперирование им в знакомой ситуации. При ответе допускается два-три недочёта либо не более одной ошибки. Экзаменующийся уверенно отвечает на дополнительные вопросы, касающиеся определений, свойств, положений всего изучаемого курса согласно экзаменационной программе. б) При решении практической части выявлено умение применять теоретические знания для решения стандартных (многошаговых) задач, 6 баллов 5 баллов 4 балла 3 балла, незачтено однако имеются ошибки либо недочёты в графическом или вычислительном этапе оформления решения, ошибки в программном коде, которые студент исправляет после замечания экзаменатора. а) Изложение фундаментальных положений приведены с ошибками либо отсутствуют вообще. Однако, при ответе на дополнительные вопросы, касающиеся основных положений, свойств, соотношений демонстрируется полное воспроизведение требуемого программного материала с отсутствием грубых ошибок, применение имеющихся знаний в знакомой ситуации по образцу, либо с помощью экзаменатора, верное использование терминов и схем, необходимых функций в программном коде. б) В решении задач практической части допускается более чем одна ошибка или два-три недочёта в вычислениях или реализации алгоритма, в выборе метода решения, что приводит в отдельных случаях к неверному конечному результату. а) При ответе на вопросы теории выявляется не всегда осознанное воспроизведение программного учебного материала. Положения, приводимые в качестве доказательства излагаемых в ответе положений либо отсутствуют, либо приводятся очень фрагментарно, схематично, без логической взаимосвязи. При ответе на дополнительные вопросы, касающиеся важнейших и основных понятий и фактов учебной программы, имеются затруднения в использовании специальной терминологии и принятой системы обозначений. б) При решении задач практической части студент допускает существенные ошибки. Решение типовых стандартных заданий неэффективно, с грубыми ошибками. Однако, экзаменующийся выполнил более половины предложенных типовых заданий, что тем самым подтверждает владение большей частью обязательных умений и навыков, предусмотренных экзаменационной программой. а) Изложение теоретического материала приводится с существенными ошибками, неточно или схематично или на конкретных примерах. Студент может применять свои знания только в типичной знакомой ситуации, а при незначительном её изменении испытывает затруднения. Появляются затруднения и при ответе на дополнительные вопросы в применении отдельных специальных умений и навыков, но демонстрируется знание основных формул и определений. б) Студент может решить только простейшие типовые примеры и задачи, основанные на знании основных понятий, фактов и базовых алгоритмов, предусмотренных экзаменационной программой с использованием простейших практических навыков и логических умозаключений. а) Если была попытка ответить на вопросы экзаменационного билета, но при этом выявлено, что студентом усвоены, лишь отдельные факты программного материала, все имеющиеся знания отрывочны и бессистемны. Наличие грубых ошибок в ответе. Неспособность осознать связь теоретического материала с примерами и задачами. б) При правильном или с недочётами выполнении менее половины предложенных задач, что показывает, что связь изучаемого теоретического материала с решением конкретных примеров экзаменуемым не осознаётся и самостоятельно, без помощи экзаменатора, студент не в состоянии применить даже известные ему факты. Студентом допускаются многочисленные грубые ошибки в 13 2 балла, незачтено процессе оперирования понятиями предметной области дисциплины, грубые ошибки в программном коде, что доказывает не владение даже минимально необходимой частью обязательных умений и навыков, предусмотренных экзаменационной программой. а) Если была попытка ответить на вопросы экзаменационного билета, но при этом выявлено, что студентом усвоены лишь отдельные факты программного материала, все имеющиеся знания отрывочны и бессистемны. Наличие грубых ошибок в ответе. б) Практические навыки отсутствуют. Неспособность исправить ошибки даже помощью рекомендаций преподавателя 1 балл, незачтено При отсутствии ответа либо отказ от ответа. минимальных знаний и компетенций по дисциплине. Отсутствие 4.3. Перечень рекомендуемых средств диагностики результатов учебной деятельности: - визуальная проверка выполнения заданий с использованием web-браузера и текстового редактора; - проверка наличия необходимых файлов и их содержания; - тестирование в системе Moodle.