
- •(Конспект лекций)
- •Список сокращений
- •Введение
- •Лекция 1. Языки штучного интеллекта и основы логического программирования Некоторые сведения о языках искусственного интеллекта
- •Введение в логическое программирование Историческая справка
- •Базовые объекты данных
- •Вопросы
- •Переменные
- •Правила
- •Зоны видимости имен
- •Логическая программа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 2. Процедурная семантика интерпретатора Пролога
- •Метод резолюций
- •Унификация и подстановка
- •Композиция подстановок
- •Вычисление резольвенты
- •Алгоритмы Пролога
- •Стратегии доказательств
- •Процедура поиска доказательства в глубину
- •Пример выполнения логической программы с пошаговым анализом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 3. Основы программирования в среде Турбо-Пролога
- •Разделы программы
- •Опции компилятора
- •Имена переменных
- •Раздел описаний доменов
- •Разделы описания предикатов и правил
- •Рекурсивные процедуры
- •Моделирование итеративных процедур
- •Основные сведения об арифметических предикатах
- •Внелогические предикаты
- •Работа с файлами
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 4. Списки и управление выводом в Турбо-Пролог-программах Списки
- •Описания списков
- •Шаблон для работы со списками
- •Примеры программ работы со списками
- •Управление формированием вывода Отсечение
- •«Зеленые» и «Красные» отсечения
- •Предикаты not и fail
- •«Циклы» управляемые отказом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 5. Динамическая база данных в Турбо-Пролог-программах Составные области
- •Операции с динамической базой данных
- •Пример построения проекта с динамической базой данных
- •Ограничения Турбо-Пролога
- •«Циклы» с возвратами
- •Лисп – язык функционального программирования
- •Правильные выражения
- •Базовые предикаты и конструкторы
- •Определяющие выражения функций
- •Условные выражения
- •Выражения для представления циклов
- •Встроенные и определяемые пользователем функции
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 7. Функциональное программирование в среде Лиспа
- •Виды рекурсий Рекурсии по значению и по аргументам
- •Простая рекурсия
- •Параллельная рекурсия
- •Взаимная рекурсия
- •Рекурсии высших порядков
- •Метод накапливающих параметров
- •Функционалы
- •Применяющие функционалы
- •Отображающие функционалы
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 8. Функциональные абстракции и процедурное программирование в Лиспе Представление функции в процессе вычислений Понятие замыкания
- •Создание замыканий
- •Функции с функциональным результатом вычислений и частичные вычисления
- •Функциональные абстракции
- •Формы блоков и связывания переменных
- •Присваивание значений переменным
- •Прочие процедурные формы в Лиспе
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 9. Лисп-методы программирования Программирование, управляемое данными
- •Программирование, управляемое событиями
- •Сопоставление с образцом
- •Списочные образцы
- •Переменные в образцах
- •Образцы с предикатами
- •Продукционное и логическое программирование в Лисп-системах
- •Объектное программирование
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 10. Представление знаний в программах на Лиспе Процедурный подход к представлению знаний
- •Представление знаний на основе продукций
- •Представление продукций
- •Интерпретатор продукций
- •Методы поиска решений
- •Функция для загрузки
- •Разрыв командного цикла и отладка
- •Вычисление s-выражений
- •Функции и формы
- •Типы данных
- •Макросы ввода
- •Lambda-списки
- •Функции ввода/вывода
- •Вычисление форм catch и throw
- •Объектное программирование в Xlisp Создание класса
- •Добавление методов в интерактивном режиме
- •Вопросы для самоконтроля
- •Html-документ Инструментарий создания и редактирования
- •Структура документа
- •Html тэги
- •Информация игнорируемая браузерами
- •Свойства страницы в целом
- •Информация для поисковых систем и стандарты
- •Элементы управления размещением текста и графики
- •Ссылки и протоколы
- •Задание цвета в html
- •Подготовка графики и анимация Графические форматы
- •Подготовка изображений для применения в документе
- •Анимация
- •Вопросы для самоконтроля
- •Управление шрифтами
- •Физические текстовые стили
- •Специальные символы
- •Графика
- •Управление взаимным размещением текста и графики
- •Гипертекстовые и графические ссылки Организация ссылок
- •Графические ссылки
- •Расширенная работа с гиперссылками Типы ссылок в документе
- •Якоря (метки)
- •Атрибут target
- •Изображения-карты
- •Списки и таблицы Виды списков
- •Элементы таблиц
- •Вопросы для самоконтроля
- •Элементы создаваемые тэгом input
- •Простые и графические кнопки
- •Списки выбора
- •Текстовые области
- •Приемы для выравнивания элементов
- •Методы передачи данных к серверу
- •Дизайн web-сайтов Типы сайтов
- •Топология и распределение материала
- •Формат страницы
- •Заглавия и заголовки
- •Навигация
- •Блоки текста
- •Средства позиционирования
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 15. Элементы языка css Язык управления структурой и стилями
- •Размещение css-элементов
- •Адресная модель css
- •Содержимое css-файла или style-контейнера
- •Селекторы
- •Комментарии
- •Применение css в оформлении документов Управление визуализацией
- •Схемы позиционирования
- •Текст и шрифты
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 16. Основы языка Java Script Назначение языка программирования Java Script
- •Тэги для программ на Java Script
- •Основные конструкции языка JavaScript
- •Декларации функций
- •Операторы, операции и выражения
- •Массивы
- •Объектная модель документа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 17. Объекты и скрипты в html-документах Объекты пользователя
- •Создание объектов
- •Добавление новых свойств и методов
- •Проверка наличия свойств и методов
- •Встроенные объекты языка программирования
- •Обработка особых ситуаций в документе
- •Классификация ситуаций
- •Установление реакции на ситуацию
- •Методы объекта String
- •Программирование работы с метками и гиперссылками
- •Динамическое создание меток и гиперссылок
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 18. Различные аспекты применения скриптов Управление окнами
- •Динамическое формирование документа
- •Управление слоями
- •Объект, соответствующий форме
- •Адресация и именование
- •Свойства и методы
- •Динамическое изменение надписей и изображений на кнопках
- •Форматы документов отличающиеся от html
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Литература
Дизайн web-сайтов Типы сайтов
Корреляция по стилю оформления и по качеству дизайна позволяет классифицировать типы сайтов следующим образом:
личные страницы,
некоммерческие сайты, принадлежащие всевозможным добровольческим объединениям, временным проектам, международным или благотворительным организациям,
корпоративные сайты, принадлежащие фирмам или коммерческим организациям,
контент-сайты, к которым относятся поисковые системы, новостные сайты и колонки обозревателей, развлекательные и образовательные сайты и т.п.
Для контент-сайтов, как и для сайтов некоммерческих, содержание превосходит по важности оформление. Средний уровень их дизайна (за исключением сайтов, принадлежащих очень богатым компаниям подобным Microsoft) заметно ниже, чем у корпоративных сайтов. Для корпоративных сайтов характерно стремление дизайнера создать образ фирмы, содержимое их обновляется сравнительно редко, что позволяет обойтись статичным, менее гибким дизайном.
Топология и распределение материала
Топология. Основные магистральные связи между страницами, существующие на любом сайте, всегда складываются в некоторую структуру, отражающие внутренние связи содержимого. Два основных типа таких структур – древовидные (иерархические) и линейные (последовательные). Рекомендуется, по возможности, применять обе структуры. Например, начав с иерархического каталога статей, объединенных в разделы, каждую отдельную статью, если она велика, имеет смысл разбить на следующие друг за другом части. Всю графическую часть сайта имеет смысл вынести в отдельный каталог. Если сайт имеет разноязычные версии, то каждую версию следует разместить в разных каталогах.
Распределение материала. Деление сайта на отдельные страницы должно быть логичным, так чтобы каждая страница была посвящена одной теме. Оставляя разумный минимум на графику (каждый рисунок не более 4-10 Кб), HTML-текст каждой страницы должен «весить» не больше 20-3- Кб. По-возможности, необходимо применение «правила двух щелчков», гласящее, что первую страницу сайта от любой другой должно отделять не более двух щелчков «мыши» (правило учитывает поведение большинства пользователей). Эти простые правила, однако, имеют множество исключений – например объединение мелких информационных статей в пределах одной страницы. Объем страницы следует уменьшать, если для сайта характерны частые обновления, поскольку в этом случае легче вносить изменения.
Формат страницы
Необходимо всеми средствами стремиться исключить горизонтальную прокрутку, поскольку они не только нарушают стилистическое единство сайта, но и представляют собой эргономический нонсенс. Достичь этого можно за счет указания полей текста, размеров таблиц и т.п. в процентах от ширины окна. Трудности могут возникать, в этом случае, для графики, вписанной в ячейки таблицы. В несложных ситуациях, когда графика не сложена из отдельных состыкованных частей, ограничивая размеры графики таким образом, чтобы расположенный справа или слева от нее текст свободно перетекал из одной строки в следующую, можно обойти эту проблему
Заглавия и заголовки
Заглавие. Тэг title должен обязательно присутствовать в любом документе, иначе поиск и ориентировка в содержимом сайта будут сильно затруднены. Не нужно бояться делать заглавия слишком длинными – длинное и подробное лучше, чем короткое и невразумительное. В автоматических поисковых системах текст заглавия всегда имеет больший вес, чем текст самой страницы (см. дополнительно тэг meta с информацией для поисковых систем). Имеет смысл указать в заглавии не только тему данной страницы, но и заголовок того раздела сайта, к которому она принадлежит, а иногда и название самого сайта. Части таких заглавий лучше всего располагать справа налево, так чтобы часть, относящаяся к текущей странице, стояла в начале, а название всего сайта – в конце.
Заголовки. Иерархия заголовков на страницах встречается довольно редко. Вместе с тем, если имеется такая ситуация, то решить ее можно по разному. Можно применить стандартные тэги h1 – h6 а, если необходимо изменить их стандартные параметры, то использовать для этого утверждения CSS. Вместо заголовков следующих уровней часто применяют тэг hr, призванный отделять друг от друга разнородные фрагменты текста. Максимум творческой свободы дает вариант заголовка в виде графической вставки. Обычно такой заголовок содержит графику и текст, а для главного заголовка страницы – еще и логотип сайта или фирмы. Профессиональные дизайнеры вместо того, чтобы украшать текст заголовка интегрируют его в композицию при помощи выравнивания, вписывания и сопряжения с прямоугольниками, линиями и другими элементами геометрического каркаса страницы (см. пример на www.bda-web.com – мелкий шрифт заголовка, только строчные буквы).