- •Содержание предисловие 5
- •Тема 1. Основные понятия информатики 8
- •Тема 2. Алгоритмизация и программирование 23
- •Тема 3. Технические средства реализации информационных процессов 40
- •Тема 10. Искусственный интеллект 170
- •Предисловие
- •Тема 1. Основные понятия информатики
- •1.1. Информатика, ее структура, задачи и функции
- •1.2. Место информатики в ряду других фундаментальных наук
- •1.3. Понятие информации
- •1.4. Измерение информации: количество, единицы измерения, энтропия
- •1.5. Свойства информации
- •1.6. Виды информации
- •1.7. Требования к информации
- •1.8. Классификация и кодирование информации
- •Кодирование и декодирование числовой информации
- •Международные системы байтового кодирования текстовой информации
- •Кодирование графических данных
- •1.9. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- •Тесты для самопроверки
- •1. Из каких взаимосвязанных частей состоит информатика?
- •2. Информация это
- •Тема 2. Алгоритмизация и программирование
- •2.1. Понятие алгоритма
- •2.2. Свойства алгоритмов
- •2.3. Графическое представление алгоритмов
- •2.4. Технологии программирования Операционный подход
- •Структурный подход
- •Объектно-ориентированное программирование
- •Декларативный подход в программировании
- •Процедурно-ориентированное программирование
- •2.5. Понятие языка программирования
- •2.6. Грамматика языков программирования
- •2.7. Проектирование программ
- •2.8. Системы программирования
- •2.9. Языки программирования высокого уровня Язык программирования Паскаль
- •Основные элементы языка программирования Паскаль
- •Язык программирования Пролог
- •Тесты для самопроверки
- •Задания для самопроверки
- •2. Разработать алгоритм и программу на языке Паскаль, выполняющую следующие действия:
- •Тема 3. Технические средства реализации информационных процессов
- •3.1. Офисная техника
- •3.2. История развития средств вычислительной техники
- •3.3. Методы классификации компьютеров
- •Классификация по поколениям Первое поколение
- •Второе поколение
- •Третье поколение
- •Четвёртое поколение
- •Пятое поколение37
- •Классификация по условиям эксплуатации
- •Классификация по производительности и характеру использования
- •Основные разновидности портативных компьютеров
- •3.4. Архитектура эвм
- •Классическая архитектура (архитектура фон Неймана)
- •Многопроцессорная архитектура
- •Многомашинная вычислительная система
- •Архитектура с параллельными процессорами
- •3.5. Базовая аппаратная конфигурация пк
- •Системный блок
- •Видеосистема компьютера
- •Монитор на базе электронно-лучевой трубки
- •Последняя не должна быть ниже 85 Гц, иначе изображение будет мерцать. Жидкокристаллические мониторы
- •Сенсорный экран
- •Клавиатура
- •3.6. Внутренние устройства системного блока пк
- •Системная плата
- •Внешняя память
- •Накопители на гибких магнитных дисках
- •Накопители на жестких магнитных дисках
- •Оптические накопители cd-rom
- •Накопители на магнитной ленте (стримеры)
- •Flash-память
- •Платы расширения
- •Аудиоадаптер
- •Видеоадаптер и графический акселератор
- •Модем и факс-модем
- •3.7. Системы, расположенные на материнской плате пк Центральный процессор
- •Микропроцессорный комплект
- •Системные шины
- •Внутренняя память
- •Оперативная память
- •Постоянная память
- •3.8. Периферийные устройства пк Принтеры
- •Плоттер
- •Манипуляторы
- •Дигитайзер
- •3.9. Общая схема пк
- •Тесты для самопроверки
- •Тема 4. Программные средства реализации информационных процессов
- •4.1. Программное обеспечение эвм. Классификация и структура.
- •4.2. Назначение и основные функции ос
- •4.3. Классификация ос
- •4.4. Понятие файловой системы
- •4.5. Сетевое по
- •4.6. Операционные среды и оболочки
- •4.7. Служебное по
- •Тесты для самопроверки
- •Тема 5. Инструментарии решения функциональных задач
- •5.1. Понятие прикладного по и пакета прикладных программ
- •5.2. Прикладное по общего назначения
- •5.2.1. Текстовые процессоры
- •5.2.2. Электронные таблицы
- •5.2.3. Средства создания презентаций
- •5.2.4. Система управления базами данных
- •5.2.5. Графические редакторы
- •5.2.6. Офисные системы
- •5.3. Проблемно-ориентированное по
- •5.4. Методо-ориентированное по
- •Тесты для самопроверки
- •Тема 6. Базы данных
- •6.1. Основные понятия баз данных
- •6.2. Виды моделей баз данных
- •6.2.1. Иерархическая модель данных
- •6.2.2. Сетевая модель данных
- •Реляционная модель данных
- •6.3. Классификация баз данных
- •6.4. Проектирование реляционной бд
- •6.4.1. Требования к бд
- •6.4.2. Трехуровневая архитектура представления данных
- •6.4.3. Средства представления инфологической модели данных
- •6.4.4. Нормализация отношений
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •6.5. Основы использования языка sql
- •6.5.1. Язык Описания Данных
- •6.6. Язык Манипулирования Данными
- •Тесты для самопроверки
- •Тема 7. Модели и моделирование
- •7.1. Ключевые этапы моделирования
- •7.2. Обобщённая классификация моделей
- •7.2.1. Категориальные модели
- •7.2.2. Модели, фиксирующие особенности свойств оригинала
- •7.2.3. Природа моделей
- •7.2.4. Основания для перехода от модели к оригиналу
- •7.3. Классификация математических моделей
- •7.3.1. Модели, определяемые методом получения результата
- •7.3.2. Модели, определяемые инструментальной средой моделирования
- •Тесты для самопроверки
- •9. Среди общепринятых классификаций видов моделей отсутствует их классификация на
- •10. В отношении «объект-модель» не находятся понятия
- •Тема 8. Компьютерные сети
- •8.1. Основные понятия компьютерных сетей
- •8.2. Топология компьютерных сетей
- •8.3. Структура вычислительной сети
- •8.3.1. Компьютеры
- •8.3.2. Каналы передачи данных
- •8.3.3. Устройства сопряжения эвм с аппаратурой передачи данных
- •8.3.4. Устройства межсетевого интерфейса
- •8.3.5. Устройства коммутации
- •8.3.6. Методы доступа к каналам связи
- •8.4. Локальные сети
- •8.5. Организация работы в локальной сети
- •8.5.1. Сеть с файловым сервером
- •Одноранговая сеть
- •Модель открытой системы взаимодействия
- •8.6. Возможности сети Интернет
- •8.6.1. Программное обеспечение работы в Интернет
- •8.6.2. Адресация и протоколы в Интернет
- •8.7. Службы Интернета
- •8.7.1. Терминальный режим
- •8.7.2. Всемирная паутина, или World Wide Web
- •8.7.3. Служба Gopher
- •8.7.4. Файловые информационные ресурсы ftp
- •8.7.5. Электронная почта (e-mail)
- •8.7.6. Списки рассылки (Mail List)
- •8.7.7. Новости, или конференции
- •8.7.8. Передача разговоров по Интернету
- •8.7.9. Многопользовательские области, или Игры в Internet
- •8.7.10. Радиовещание Интернет (Internet Talk Radio)
- •8.7.11. Базы данных wais
- •8.8. Сетевая операционная система (сос)
- •8.8.1. Сетевая операционная система aix
- •8.8.2. Сетевая операционная система Cairo
- •8.8.3. Сетевая операционная система Dayton
- •8.8.4. Сетевая операционная система lan Server
- •8.8.5. Сетевая операционная система NetWare
- •8.8.6. Сетевая операционная система vines
- •8.8.7. Сетевая операционная система Windows 95
- •8.8.8. Сетевая операционная система Windows nt*
- •8.8.9. Сетевая операционная система Windows ntas
- •8.8.10. Операционная система unix
- •Тесты для самопроверки
- •1. Выберите определение компьютерной сети
- •2. Сетевая плата - это устройство
- •3. Какие типы локальных сетей существуют?
- •4. Какие области выделяются пользователю на жестком диске сервера?
- •Тема 9. Информационная безопасность
- •9.1. Защита информации
- •9.2. Объекты и элементы защиты в компьютерных системах обработки данных
- •9.3. Средства опознания и разграничения доступа к информации
- •9.4. Криптографический метод защиты информации
- •9.5. Компьютерные вирусы и антивирусные программные средства
- •9.6. Защита программных продуктов
- •9.7. Обеспечение безопасности данных на автономном компьютере
- •9.8. Безопасность данных компьютерных сетей
- •Тесты для самопроверки
- •Тема 10. Искусственный интеллект
- •10.1. Основные положения
- •10.2. Типичные модели представления знаний
- •10.2.1 Логическая модель представления знаний
- •10.2.2. Представление знаний правилами продукций
- •10.2.3. Объектно-ориентированное представление знаний фреймами
- •10.2.4. Модель семантической сети
- •10.3. Эволюционные аналогии в искусственных интеллектуальных системах
- •Тесты для самопроверки
- •Библиографический список
- •Информатика
- •300012, Г. Тула, пр. Ленина, 92
- •300012, Г. Тула, ул. Болдина, 151
2.6. Грамматика языков программирования
Несмотря на значительные различия между языками программирования, ряд фундаментальных понятий в большинстве из них схожи.
Оператор – законченная фраза языка, определяющая однозначно трактуемый этап обработки данных.
В теории алгоритмов выделяют основные (базисные) операторы языка: присвоения, условный и безусловный переход, пустой оператор. К производным, неосновным, относят: составной оператор, оператор выбора, оператор цикла и оператор присоединения. Все операторы в тексте программы отделяются друг от друга явными23 или неявными разделителями.
Большая часть операторов ведет обработку величин. Величины могут быть постоянными и переменными. Величины характеризуются типом, именем и значением. Наиболее распространенные типы величин – числовые (целые и вещественные), символьные и логические.
Величины классифицируются на простые и структурированные. Простая величина в каждый момент времени может иметь не более одного значения. Ей соответствует одна ячейка памяти компьютера. Структурированная величина, имея одно имя, может иметь сразу несколько значений. Эти значения представляют собой элементы (компоненты) величины24.
Всем программным объектам даются индивидуальные имена. Имя программного объекта называют идентификатором. Чаще всего идентификатором является любая конечная последовательность букв и цифр, начинающаяся с буквы25.
Описания или объявления программных объектов необходимы для определения их свойств26. В некоторых языках стандартные описания простых числовых и символьных данных опускают (описание по умолчанию) или в них задаются правила описания по имени объекта27. Особый интерес представляют в языках программирования описания нестандартных структур данных, таких как запись, файл, объект, список, дерево и т.п.
Переменная – программный объект, способный принимать некоторое значение с помощью оператора присваивания. Каждая переменная после ее описания отождествляется с некоторой ячейкой памяти, содержание которой является ее значением.
Функция – программный объект, задающий вычислительную процедуру определения значения, зависимого от некоторых аргументов. В каждом языке программирования имеется в наличии библиотека стандартных функций. Кроме того, программист может сам задавать новые функции.
Процедура – программный объект, представляющий некоторый самостоятельный этап обработки данных. Процедура имеет входные и выходные параметры, называемые формальными. При использовании процедуры формальные параметры заменяются на фактические.
Модуль (Unit) – специальная программная единица, предназначенная для создания библиотек и разделения больших программ на логически связанные блоки.
2.7. Проектирование программ
Современный подход к проектированию программ основан на декомпозиции задачи. Целью декомпозиции является создание модулей, которые представляют собой небольшие, относительно самостоятельные программы, взаимодействующие друг с другом по хорошо определенным и простым правилам.
Разработка любой программы или прикладной системы начинается с определения требований к ней для конкретного набора пользователей и заканчивается эксплуатацией системы этими пользователями.
По современным взглядам проектирование и разработку программ целесообразно разбить на ряд последовательных этапов:
постановка задачи;
проектирование программы;
построение модели;
разработка алгоритма;
реализация алгоритма;
анализ алгоритма и его сложности;
тестирование программы;
документирование.
При постановке задачи для крупных компьютерных программ необходимо провести следующие работы:
выработать требования (свойства, качества и возможности), необходимые для решения проблемы или достижения цели (как правило, эта деятельность носит экспертный характер);
разработать спецификации, включающие:
цель программы;
граничные условия;
описание функций системы;
спецификации входных и выходных данных;
верификационные требования (установление тестовых случаев);
тип и количество документов.
Проектирование программы осуществляется следующим образом. Сначала производится проектирование архитектуры программной системы. Это предполагает первичную (общую) стадию проектирования и заканчивается декомпозицией спецификаций в структуру системы. Обычно на модульном уровне разрабатывается спецификация каждого модуля:
имя/цель – дается имя модулю и предложение о его функции с формальными параметрами;
неформальное описание – обзор действий модуля;
ссылки – какие модули ссылаются на него, и на какие модули ссылается данный модуль;
вход/выход – формальные и фактические параметры, глобальные, локальные и связанные (общие для ряда модулей) переменные;
примечания – полезные комментарии общего характера по модулю.
Следующим шагом является детальное проектирование. На этом этапе происходит процедурное описание программы, выбор и оценка алгоритма для реализации каждого модуля. Входной информацией для проектирования являются требования и спецификации системы.
Построение модели в большинстве случаев является непростой задачей. При построении моделей, как правило, используют два принципа: дедуктивный (от общего к частному) и индуктивный (от частного к общему). При дедуктивном подходе рассматривается частный случай общеизвестной фундаментальной модели. При заданных предположениях известная модель приспосабливается к условиям моделируемого объекта.
Индуктивный способ предполагает выдвижение гипотез, декомпозицию сложного объекта, анализ, затем синтез. Здесь широко используется подобие, аналогичное моделирование, умозаключение с целью формирования каких-либо закономерностей в виде предположений о поведении системы.
Технология построения модели при индуктивном способе:
эмпирический этап (умозаключение, интуиция, предположение, гипотеза);
постановка задачи для моделирования;
оценка, количественное и качественное описание;
построение модели.
Разработка алгоритма – самый сложный и трудоемкий процесс, но и самый интересный в творческом отношении. Выбор метода разработки зависит от постановки задачи, ее модели. На этом этапе необходимо провести анализ правильности алгоритма, что очень непросто и трудоемко.
Наиболее распространенная процедура доказательства правильности алгоритма – это прогон его на множестве различных тестов. Однако это не гарантирует того, что не может существовать случая, в котором программа «не сработает».
На этапе реализации алгоритма происходят конструирование и реализация алгоритма, включающие кодирование, интеграцию, тестирование (сертификацию).
По сути, проводится перевод проекта в форму программы для конкретного компьютера, сборка системы и ее прогон при тестовых и нормальных условиях для подтверждения ее работы в соответствии со спецификациями системы.
Анализ алгоритма и его сложности необходим для оценки ресурсов компьютеров, на которых он будет работать, времени обработки конкретных данных, приспособления в работе в локальных сетях и телекоммуникациях. Хотелось бы также иметь для данной задачи количественный критерий для сравнения нескольких алгоритмов с целью выбора более простого и эффективного среди них.
Перед началом эксплуатации программы необходим этап ее отладки и тестирования.
Тестирование – это процесс исполнения программ с целью выявления (обнаружения) ошибок. Тестирование – процесс деструктивный, поэтому считается, что тест удачный, если обнаружена ошибка.
Существуют различные способы тестирования программ:
тестирование программы как «черного ящика» – стратегия «черного ящика» определяет тестирование с анализом входных данных и результатов работы программы.
тестирование программы как «белого ящика» заключается в стратегии управления логикой программы, позволяет использовать ее внутреннюю структуру.
Различают альфа- и бета-тестирование, производимое соответственно специалистами разработчика и заказчика программного изделия.
Основные типы ошибок, встречающихся при программировании:
обращения к переменным, значения которым не присвоены или не инициализированы;
выход индексов за границы массивов;
несоответствие типов или атрибутов переменных величин;
явные или неявные проблемы адресации памяти;
ошибочные передачи управления;
логические ошибки.
Есть золотое правило программистов – оформляй свои программы в том виде, в каком бы ты хотел видеть программы, написанные другими. К каждому конечному программному продукту необходимо документированное сопровождение в виде помощи (help), файлового текста (readme.txt).
