Главная | Предыд. | След. | Др. раздел |
ЭВМ и программирование.
Предисловие.
Цель дисциплины - ознакомить студентов со структурой ЭВМ, методами алгоритмизации задач, составом и функциями программного обеспечения ЭВМ, основными языками программирования и интегрированными средами.
В качестве языков высокого уровня предполагаются языки Паскаль, C, C++. В качестве языка низкого уровня рекомендуется язык Ассемблера. Лекционный курс поддерживается дисциплиной "Практика на ЭВМ" и учебной практикой. В результате обучения студенты должны получить умения и навыки по:
Введение.
- Разработке алгоритмов, проектированию программ, выбору структур данных;
- Оценке эффективности разработанных алгоритмов и программ;
- Работе в операционных системах и интегрированных средах.
Эволюция ЭВМ. Современные области применения ЭВМ. Назначение и взаимодействие основных компонент ЭВМ.
Введение в программное обеспечение ЭВМ.Алгоритмы и методы их разработки.
- Понятие и классификация программного обеспечения ЭВМ. Системное и прикладное программное обеспечение.
- Структура машинной команды. Организация памяти ЭВМ.
- Введение в конкретную операционную систему. Программные оболочки и среды.
Языки программирования.
- Эволюция понятия алгоритма. Свойства алгоритма. Необходимость уточнения понятия алгоритма, формализация понятия алгоритма и его исполнителя. Машина Тьюринга. Нормальный алгоритм Маркова.
- Способы описания алгоритма: блок-схемы, дракон-схемы, структурограммы, операторные схемы, псевдокоды, языки программирования.
- Основные типы вычислительных процессов. Структурированный алгоритм.
- Методы разработки алгоритмов: метод функциональной декомпозиции, нисходящее и восходящее проектирование. Способы оценки эффективности алгоритмов. Примеры разработки алгоритмов с оценкой их эффективности.
- Рекурсивные алгоритмы.
Структуры данных.
- Понятие языка программирования. Классификация языков программирования. Алфавит, синтаксис и семантика языка программирования.
- Формальное описание синтаксиса языков программирования с помощью синтаксических диаграмм и металингвистических формул.
- Основные конструкции языка программирования (на примере Паскаля). Структура программы. Величины и их типы. Выражения, типы выражений и правила их вычисления.
- Стандартные и определяемые типы.
- Скалярные и структурированные типы. Операторы. Ввод и вывод данных.
- Функции и процедуры, их назначение и использование. Локализация объектов в программе. Передача параметров по значению и по наименованию.
Технология решения задач на ЭВМ.
- Статические и динамические структуры данных. Статические структуры данных: массивы, записи, множества, таблицы.
- Динамические структуры данных: списки, очереди, стеки, деревья, графы; их рекурсивная и итеративная обработка. Сравнение рекурсивных и итеративных алгоритмов обработки динамических структур данных.
- Представление, хранение и доступ к данным в оперативной и внешней памяти ЭВМ.
- Абстрактные типы данных. Реализация абстрактных типов данных в языках программирования.
- 2D и 3D - объекты. Элементы машинной графики.
Программирование на языке Ассемблера.
- Понятие о технологии программирования.
- Декомпозиционные методы проектирования программ решения задач. Модульное и структурное программирование. Инструментальные системы проектирования программ.
- Методы тестирования и отладки программ.
- Доказательство правильности алгоритмов.
- Документирование и сопровождение программ. Понятие о программном продукте.
Система программирования Турбо-Си.
- Характеристика конкретной ЭВМ. Система машинных команд, машинное представление данных и команд. Адресация данных. Базирование и индексирование. Режимы адресации.
- Структура программы на языке Ассемблера.
- Константы, символические имена, переменные и абсолютные адресные выражения.
- Определения переменных и команд. Обработка числовых, логических и символических данных. Команды переходов. Обработка массивов, использование индексных регистров.
- Подпрограммы. Организация обращения к подпрограммам, способы передачи параметров, системное соглашения о связях. Внутренние и внешние подпрограммы.
- Общая схема ассемблирования. Макросреда языка Ассемблера.
- Интерфейс с языками высокого уровня.
Объектно-ориентированное программирование. Система программирования Borland C++.
- Язык программирования Си и система программирования Турбо-Си. Структура программы. Элементы языка. Базовые типы данных. Операции, выражения, операторы. Приоритеты операций преобразования типов, побочный эффект.
- Структурные типы данных: массивы, записи. Перечисления. Указатели и адресная арифметика. Связь между структурными типами и указателями. Динамические структуры данных.
- Функции, определение, объявление, вызов, передача параметров.
- Модели памяти. Структура программного модуля. Организация связей между модулями. Связь многоязыковых модулей.
- Системное программирование в Турбо-Си. Пример системного программирования: разработка резидентной программы.
- Файловая система: использование библиотечных функций управления вводом/выводом.
Аппаратное базовое программное обеспечение Персональной ЭВМ.
- Объектное мышление и объектное программирование. Объекты. Классы объектов. Определение и описания класса. Атрибуты доступа к элементам класса. Функции-элементы. Статические элементы класса. Дружественные функции класса. Конструкторы и деструкторы объектов.
- Определение операций над объектами классов. Примеры определения операций над классами. Перегрузка операторов. Виртуальные классы, виртуальные функции, абстрактные классы.
- Объектное программирование. Анализ ключевых понятий: ООП-пакетирование, наследование, полиморфизм. Область применения технологии ООП. Библиотека Turbo Vision, ее использование в Паскале и С++.
- Объектно-ориентированные ввод-вывод. Стандартные потоки ввода-вывода. Схема иерархии классов ввода-вывода в С++. Ввод-вывод базовых типов. Ввод-вывод объектов, определённых пользователем. Контроль и управление вводом-выводом.
- Библиотечные классы. Иерархия классов абстрактных структур данных. Привязка реальных объектов к абстрактным структурам.
- Структура микропроцессора. Система прерываний. Эволюция микропроцессора 80х86. Расширение возможностей управления, организации памяти, системы команд.
- Управление памятью. Extended- и expanded-память. Многоуровневая организация памяти. Виртуализация памяти на основе дескрипторных таблиц. Организация защиты и привилегий.
- Операционные системы и оболочки на основе виртуализации. Организация многозадачности. Операционная система MS-DOS. Управление программами. Размещение программ в памяти, модели программ. Префикс программы. Структура объектного исполняемого модуля.
- Операционная оболочка Windows. Графический интерфейс, виды и атрибуты окон, пиктограммы. Основные элементы Windows: program manager, file manager, control panel, print manager.
- Инструментальные средства Windows. Текстовые редакторы, табличные процессоры, графические редакторы.
- Операционная система Unix. Управление процессами, управление памятью, файловая система, командный язык. Команды: обработка файлов, управление программами, средства связи, информационные команды.
- Сравнительный анализ ОС: Windows 95, OS/2, Unix.
Главная | Предыд. | След. | Др. раздел |