Оригинал рабочей программы по данному курсу.

advertisement
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет вычислительной техники
Кафедра вычислительной техники
УТВЕРЖДАЮ
Декан ФВТ, профессор
____________ Б.Д. Шашков
“_____”____________2001 г.
Рабочая программа дисциплины
АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ И ПРОГРАММИРОВАНИЕ
по подготовке дипломированных специалистов
по направлению 654600 специальности 220100
2
Программу разработал
к.т.н., доцент
______________А.В. Никишин
Программа одобрена на заседании кафедры ВТ, протокол № ___ от “___”_____ 2001 г.
Зав. кафедрой ВТ
Согласовано
Председатель НМК ФВТ
д.т.н., профессор
_____________Н.П. Вашкевич
_____________П.П. Макарычев
Программа разработана в соответствии со следующими документами:
 Государственным образовательным стандартом Минобразования РФ по
направлению подготовки 654600 и специальности 220100;
 рабочим учебным планом Пенз.ГУ по специальности 220100;
 примерной программой дисциплины «Алгоритмические языки и
программирование».
3
1. Цель и задачи дисциплины
Целью изучения дисциплины является приобретение навыков программирования
на процедурно-ориентированном и машинно-ориентированном языках, освоение
принципов построения и обработки данных с различными способами организации.
2. Требования к уровню освоения содержания дисциплины
















В результате изучения дисциплины студенты должны:
Знать:
современные методы и средства разработки алгоритмов и программ на языке Си и
машинно-ориентированном языке Ассемблер;
синтаксис и семантику основных конструкций языка Си;
способы организации сложных структур данных (массивы, структуры, списки,
деревья), основные методы представления и алгоритмы обработки этих данных;
особенности работы с файлами в языке Си;
архитектуру на уровне основных программно-доступных регистров и способы
адресации процессора;
синтаксис основных операторов Ассемблера с использованием макросреств;
основные принципы организации ввода и вывода данных на уровне машинных
команд с использованием средств операционной системы;
принципы организации и особенности технологии разработки программ сложной
структуры на языках Си и Ассемблер;
принципы разработки гибридных Си-Ассемблер программ.
Уметь:
Использовать современные средства разработки и отладки алгоритмов и программ
на языках Си и Ассемблер при решении прикладных задач различных предметных
областей.
Иметь опыт:
составления, отладки, испытания и документирования программы сложной
структуры с использованием процедурно-ориентированного и машинноориентированного языка;
работы в интегрированных средах программирования и с использованием
библиотек.
Иметь представление:
о структуре программного обеспечения современных ЭВМ, о видах и областях
применения основных программных средств;
об общих принципах построения, описания и верификации алгоритмов;
об общей классификации современных языков программирования, их областях
применения и использования;
об использовании дополнительных пакетов и библиотек при программировании.
4
3. Объем дисциплины и виды учебной работы
Вид учебной работы
Общая трудоемкость дисциплины
Аудиторные занятия
Лекции
Лабораторные занятия
Самостоятельная работа,
в т.ч. курсовая работа
Вид итогового контроля (экзамен, зачет)
Всего часов
Семестр
2
119
85
51
34
272
170
102
68
1
119
85
51
34
3
34
-
102
34
34
34
Экз.
Экз.,зач
.
-
4. Содержание дисциплины
4.1 Разделы дисциплины и виды занятий
№
п/п
1
1
2
3
4
5
6
7
8
9
Раздел дисциплины
2
Введение. Общие сведения о программном
обеспечении ЭВМ
Назначение, классификация, структура,
характеристики ПО. Технология использования
ПО для решения прикладных задач
Алгоритмы
Общие понятия об алгоритмизации
Технология разработки программ
Процесс создания програмы
Обзор языков программирования
Назначение и характеристика современных
языков программирования
Общие сведения о языке Си
Особенности и характеристика языка Си
Представление данных в языке Си
Базовые и производные типы данных в языке Си
Ввод-вывод данных в языке Си
Организация ввода-вывода данных
Операции, выражения, операторы в языке Си
Система операций
Операторы
Количество часов
Лекции
Л/р
Сам/р
(час.)
(час.)
(час.)
3
4
5
6
4
2
2
3
4
2
6
3
*
4
4
*
4
4
2
4
*
*
5
1
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
Указатели в языке Си
Указатели
Массивы и указатели
Функции в языке Си
Функция как структурная единица программы
Структуры и объединения в языке Си
Структуры
Объединения
Файлы в языке Си
Принципы и средства работы с файлами
Классы памяти в языке Си
Выделение памяти для переменных
Свободная память
Директивы препроцессора
Использование директив препроцессора для
создания гибких и мобильных программ.
Разработка программы сложной структуры на
языке Си
Технология разработки многомодульных
программ
Общие сведения о языке Ассемблер
Принципы программирования на языке
Ассемблер
Определение данных в Ассемблере
Базовая архитектура процессора ПЭВМ
Организация памяти ПЭВМ
Логическая структура центрального процессора
Адресация данных и команд
Структура программы на Ассемблере
Сегментация программы
Команды Ассемблера
Система команд Ассемблера
Процедуры в Ассемблере
Принципы организации процедур в Ассемблере
Макросы в Ассемблере
Макросы как средство эффективного
программирования
Организация ввода-вывода в Ассемблере
Программно-управляемый ввод-вывод
3
4
5
3
3
2
5
*
*
4
4
*
2
1
3
*
*
3
3
*
4
*
*
2
3
3
*
3
2
2
2
*
2
*
2
2
2
*
*
*
2
4
*
6
6
*
4
4
*
2
2
*
2
6
1
30
31
32
2
Ввод-вывод по прерываниям
Организация программы сложной структуры
на Ассемблере
Многомодульные программы на Ассемблере
Гибридное программирование Си-Ассемблер
Всего часов
3
4
2
4
102
4
8
4
68
5
*
*
*
* - самостоятельная работа в объеме 68 часов отводится на подготовку к
лабораторным работам и оформление отчетов и 34 часа – на выполнение курсовой
работы.
4.2. Содержание разделов дисциплины
Введение. Общие сведения о программном обеспечении ЭВМ
Цели и задачи дисциплины, ее место среди других дисциплин учебного планаю
Структура и содержание дисциплины, методика преподавания.
1. Назначение, классификация, структура, характеристики ПО. Технология
использования ПО для решения прикладных задач.
Понятие программного обеспечения. Системное и прикладное ПО. Этапы
решения задачи с помощью ЭВМ. Критерии качества ПО. Интерфейс программы.
Документация на ПО.
Алгоритмы
2. Общие понятия об алгоритмизации.
Понятие и свойства алгоритмов. Способы описания алгоритмов. Правила
начертания схем алгоритмов. Виды алгоритмических процессов.
Технология разработки программ
3. Процесс создания программы.
Этапы создания программы. Методы разработки программ. Системы
программирования. Технология разработки и отладки программы с применением
средств системы программирования.
Обзор языков программирования
4. Назначение и характеристика современных языков программирования.
Машинные и машинно-ориентированные языки. Процедурно-ориентированные
языки. Языки высокого и сверхвысокого уровня. Прикладные языки. Языки класса
“Visual”. Языки логического программирования.
Общие сведения о языке Си
5. Особенности и характеристика языка Си.
История создания и общая характеристика языка. Структура программы на языке
Си. Основные объекты языка Си. Алфавит. Лексемы. Идентификаторы. Видимость
идентификаторов. Декларации и определения.
Представление данных в языке Си
6. Базовые и производные типы данных в языке Си
7
Базовые типы данных. Преобразование типов. Явное и неявное преобразование.
Обычные арифметические преобразования. Константы. Перечисления. Массивы.
Строки. Понятие производных типов данных.
Ввод-вывод данных в языке Си
7. Организация ввода-вывода данных.
Принципы ввода-вывода информации. Потоки ввода-вывода. Буферизация и
форматирование в процессе ввода-вывода. Стандартные функции и макросы вводавывода.
Операции, выражения, операторы в языке Си
8. Система операций.
Понятие операции, выражения, оператора. Выражения: первичные, общего вида,
l-выраженния. Система операций, приоритеты операций, единство операций.
9. Операторы.
Операторы общего вида. Основные операторы языка: условия, переключатель,
цикла, разрыва, продолжения, перехода, пустой.
Указатели в языке Си
10. Указатели.
Понятие указателя. Операции с указателями. Указатели на указатели.
11. Массивы и указатели.
Взаимосвязь массивов и указателей. Указатели на массивы. Массивы указателей.
Функции в языке Си
12. Функция как структурная единица программы.
Понятие функции. Декларация, определение и вызов функции. Передача
аргументов и возврат результатов при вызове функции. Указатель на функцию.
Аргументы командной строки.
Структуры и объединения в языке Си
13. Структуры.
Понятие структуры. Декларация и определение структуры. Указатель на
структуру.
14. Объединение.
Особенности работы с объединениями.
Файлы в языке Си
15. Принципы и средства работы с файлами.
Понятие файла. Режимы работы и операции с файлами. Функции для работы с
файлами.
Классы памяти в языке Си
16. Выделение памяти для переменных.
Понятие класса памяти. Типы памяти в языке Си. Автоматические, регистровые,
статические, внешние, внешние статические переменные. Специфика их определения и
использования
17. Свободная память.
8
Операции и функции выделения и освобождения памяти. Понятие и виды
динамических структур данных: списки, деревья. Организация списков и операции над
списками.
Директивы препроцессора
18. Использование директив препроцессора для создания гибких и мобильных
программ.
Директивы включения и определения. Простой макрос и макрос с аргументами.
Определение типа. Операторы условной компиляции.
Разработка программы сложной структуры на языке Си
19. Технология разработки многомодульных программ.
Понятие программных модулей. Организация многомодульных программ.
Организация проекта. Заголовочные файлы. Связь модулей через заголовочные файлы.
Общие сведения о языке Ассемблер
20. Принципы программирования на языке Ассемблер.
Особенности машинно-ориентированного языка программирования. Компоненты
ассемблерной программы. Технология разработки программы на Ассемблере.
Компиляция, компоновка, отладка программы.
21. Определение данных в Ассемблере.
Форматы данных. Директивы определения данных и резервирования памяти.
Базовая архитектура процессора ПЭВМ
22. Организация памяти ПЭВМ.
Сегментация памяти. Формирование физического адреса ячейки памяти.
Размещение данных в памяти ПЭВМ.
23. Логическая структура центрального процессора.
Основные блоки центрального процессора. Программно доступные регистры.
24. Адресация данных и команд.
Режимы адресации данных и команд. Организация стека. Форматы команд.
Структура программы на Ассемблере
25. Сегментация программы.
Понятие сегмента программы. Определение сегментов. Понятие группы
сегментов. Размещение сегментов в памяти ПЭВМ. Соглашения о сегментных
регистрах. Префикс замены сегмента.
Команды Ассемблера
26. Система команд Ассемблера.
Команды пересылки. Арифметические команды. Команды сдвигов. Логические
команды. Адресация переходов и команды переходов. Организация циклов. Команды
обработки цепочек. Команды управления процессором.
Процедуры в Ассемблере
27. Принципы организации процедур в Ассемблере.
Определение процедуры. Вызов процедуры. Возврат из процедуры. Передача
параметров и возврат результатов. Работа со стеком при вызове процедуры. Описание
параметров в процедуре. Использование локальных переменных в процедуре.
9
Макросы в Ассемблере
28. Макросы как средство эффективного программирования.
Понятие макроса. Макроопределение и макровызов. Макросы общего вида и
специальные макросы. Использование меток в макроопределениях. Библиотеки
макроопределений.
Организация ввода-вывода в Ассемблере
29. Программно-управляемый ввод-вывод.
Организация программно-управляемого ввода-вывода. Типичные процедуры
взаимодействия с периферийными устройствами. Устройства ввода-вывода и их порты.
Ассемблерные команды ввода-вывода.
30. Ввод-вывод по прерываниям.
Понятие прерывания. Команды прерывания и возврата из прерывания.
Использование системных ресурсов для ввода и вывода. Прерывания DOS и BIOS.
Функции работы с клавиатурой и дисплеем. Разработка процедур обслуживания
прерываний.
Организация программы сложной структуры на Ассемблере
31. Многомодульные программы на Ассемблере.
Межмодульный интерфейс. Сочетание сегментов модулей. Экспорт и импорт
внешних имен. Раздельная компиляция и объединение модулей. Библиотеки объектных
модулей.
32. Гибридное программирование Си-Ассемблер.
Ассемблерная вставка и непосредственный доступ к регистрам процессора в Сипрограмме. Многомодульная гибридная программа. Соответствие данных. Соглашения
о передаче параметров и возврате результата. Экспорт и импорт внешних имен. Модели
памяти. Упрощенные директивы в Ассемблере. Технология разработки
многомодульной гибридной программы.
5. Лабораторный практикум
№№
п/п
1
1
2
3
4
5
6
7
8
9
10
№ раздела
дисциплины
2
Наименование лабораторных работ
3
Общие принципы работы с ПЭВМ
Работа с файловой системой
Интегрированная система программирования
Типы данных и операции в языке Си (л/р 1)
Функции ввода-вывода в языке Си (л/р 2)
Операторы условия в языке Си (л/р 3)
Операторы цикла в языке Си (л/р 4)
Указатели и массивы в языке Си (л/р 5)
Функции в языке Си (л/р 6)
Строки в языке Си (л/р 7)
К-во
часов
4
2
2
4
3
4
2
2
4
4
3
10
1
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
Структуры в языке Си (л/р 8)
Файлы в языке Си (л/р 9)
Динамические структуры данных в языке Си (л/р 10)
Многомодульные программы на языке Си (л/р 11)
Технология разработки программы на Ассемблере
Линейная программа на Ассемблере (л/р 12)
Разветвляющаяся программа на Ассемблере (л/р 13)
Циклическая программа на Ассемблере (л/р 14)
Процедуры в Ассемблере (л/р 15)
Макросы в Ассемблере (л/р 16)
Преобразование представления данных (л/р 17)
Ввод-вывод в Ассемблере (л/р 18)
Гибридная программа Си-Ассемблер (л/р 19)
Всего часов
4
3
3
4
2
2
2
2
2
4
2
4
4
4
68
6. Курсовая работа
Целью выполнения курсовой работы является отработка практических навыков
самостоятельной разработки и отладки программы сложной структуры.
Тематика курсовой работы предполагает разработку многомодульных программ с
развитым пользовательским интерфейсом, реализованным в текстовом или
графическом режиме, работу с файлами на магнитных дисках, обработку числовых и
текстовых данных, в том числе и динамических структур данных. Курсовая работа
выполняется в рамках самостоятельной работы студентов.
7. Материально-техническое обеспечение дисциплины
Для обеспечения лабораторных занятий и курсового проектирования необходим
класс ПЭВМ и соответствующее программное обеспечение (Borland C++ v.3.1 и выше).
8. Рекомендуемая литература
1. Абель П. Язык Ассемблера для IBM PC и программирования. - М.: Высш. шк.,
1992.
2. Берри Р., Микинз Б. Язык Си: введение для программистов. - М.: Финансы и
статистика, 1988.
3. Бочков С.О. Субботин Д.М. Язык программирования Си для персонального
компьютера. - М.: Радио и связь, 1990.
4. Керниган Б., Ритчи Д. Язык программирования СИ. - М.: Финансы и
статистика, 1985.
5. Керниган Б., Ритчи Д., Фьюэр А. Язык программирования Си. Задачи по языку
Си. - М.: Финансы и статистика, 1985.
6. Страуструп Б. Язык программирования Си++. – М: Радио и связь, 1991.
11
7. Скэнлон Л. Персональные ЭВМ IBM PC и XT. Программирование на языке
ассемблера. - М.: Радио и связь, 1989.
8. Уэйт М., Прата С., Мартин Д. Язык Си. Руководство для начинающих. - М.:
Мир, 1988.
9. Флорес И. Структуры и управление данными. - М.: Финансы и статистика.
1982.
10. Хэнкон Л., Кригер М. Введение в программирование на языке Си. - М.: Сов.
радио, 1986.
11. Белецкий Я. Энциклопедия языка Си. – М.: Мир, 1992.
12. С++. Язык программирования. – М.: “И.В.К.-СОФТ”, 1991.
13. Березин В.Н., Березин И.В. Начальный курс Си и Си++. –
М.: Диалог-Мифи, 1996.
12
9. Переутверждение программы на очередной учебный год
Учебный
год
Учебные
группы
Решение
кафедры
№ протокола,
дата, подпись
зав. кафедрой
1
2
3
Решение
выпускающей
кафедры
№ протокола,
дата, подпись
зав. кафедрой
4
Лектор
разработчик
программы
№
изменения
5
6
Примечание. Тексты изменений прилагаются.
Разработчик программы:
к.т.н., доцент
А.В. Никишин
Download