1. Введение
Понятия алгоритма, ЭВМ, операционной системы, машинного представления программ и данных, языков программирования высокого уровня, транслятора и основных этапов решения задач на ЭВМ.
2. Способы описания языков программирования
Синтаксис и семантика языка программирования. Лексемы и понятия, синтаксические диаграммы и металингвистические формулы. Методы описания семантики: операционная, денотационная и аксиоматическая семантики.
3. Языковый уровень представления данных
Понятие типа и системы типов. Стандартные типы данных и их представление на современных ЭВМ. Арифметические типы данных: целые, вещественные, представление их значений, операции. Конструируемые типы данных, отрезки типов, типы, заданные перечислением значений, записи, массивы, множества, файлы.
4. Языковый уровень представления алгоритмов
Переменные и константы, операции и стандартные функции. Выражения, порядок их вычисления и побочные эффекты. Понятие оператора, простые и составные операторы. Процедуры и функции как абстракции операторов и выражений. Блоки и правила локализации имен.
5. Рекурсивные алгоритмы и структуры данных
Рекурсия. Достоинства и недостатки рекурсивного представления алгоритмов. Сравнение итеративных и рекурсивных алгоритмов. Рекурсивные процедуры и функции, поколения переменных. Указатели и динамические структуры данных. Списки, стеки и деревья, способы их реализации на языковом уровне. Понятие абстрактного типа данных и его представления.
6. Методы разработки программ
Базовые алгоритмы обработки информации. Пошаговая разработка программ: нисходящий и восходящий подходы. Структурное программирование. Модули и модульное проектирование программ.
7. Верификация, отладка и тестирование программ
Правильность программ. Методы промежуточных утверждений и структурной индукции. Отладка программ. Тестирование и система тестов. Средства отладки и тестирования программ.
1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль.- М.: Наука, 1988.
2. Бауэр Ф., Гооз Г. Информатика.- М.:Мир,1990, Ч.1,2.
3. Вирт Н. Алгоритмы + структуры данных = программы. - М.:Мир,1985.
4. Грис Д. Наука программирования. - М.:Мир,1984.
5. Зуев Е.А. Программирование на языке Turbo-Pascal 6.0 - 7.0.- М.:Веста, Радио и связь, 1993.
6. Иордан Э. Структурное проектирование и конструирование программ. - М.: Мир, 1979.
7. Касьянов В.Н. Основы программирования на языке Паскаль. - Новосибирск: НГУ, 1987.
8. Климов Ю.С., Касаткин А.И., Мороз С.М. Программирование в среде TURBO PASCAL 6.0. - Минск: Высшэйшая школа, 1992.
9. Мейер Б., Бодуэн К. Методы программирования.- М.:Мир,1982, т.1,2.
1. Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию. - М.:Наука,1988.
2. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по программированию. - Новосибирск:НГУ,1986.
3. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ.- М.:Наука,1986.
4. Агафонов В.Н., Поттосин И.В., Бежанова М.М., Сабельфельд В.К. Сборник упражнений по программированию на языке Паскаль. - Новосибирск: НГУ,1985.
Программу составили:
профессор И.В. Поттосин
профессор В.Н. Касьянов
профессор М.М. Бежанова