Программа курса «компьютерные науки» Специальность нм, 1 курс, 1 и 2 семестры (2008-2009 уч год)

Вид материалаПрограмма курса

Содержание


Операции и выражения
Простой ввод-вывод.
Управляющие операторы и конструкции
Файлы Фортрана.
Символьный тип данных
Производные типы данных.
Программные компоненты.
Форматный ввод-вывод.
Вычислительные методы на Фортране.
Программа курса
Подобный материал:
ПРОГРАММА КУРСА

«КОМПЬЮТЕРНЫЕ НАУКИ»

Специальность НМ, 1 курс, 1 и 2 семестры (2008-2009 уч.год)


Основные принципы и обзор языков программирования.

Этапы решения задачи на ЭВМ. Алгоритм. Свойства алгоритма. Способы описания алгоритмов. Основные алгоритмические конструкции.


Элементы языка Фортран.

Символы, простейшие конструкторы и операторы языка Фортран. Формат записи текста программы. Структура головной программы. Оператор присваивания.


Объекты данных.

Виды объектов данных. Имена. Типы данных: целый, вещественный, комплексный, символьный, логический, производный. Буквальные и именованные константы.


Операции и выражения.

Арифметические операции. Арифметические выражения. Целочисленное деление. Ранг и типы арифметических операндов. Ошибки округления. Операция отношения. Логические операции. Приоритет выполнения операций.


Простой ввод-вывод.

Операторы ввода-вывода. Некоторые правила ввода. Ввод из текстового файла. Вывод на принтер.


Элементы программирования.

Алгоритмы и программа. Базовые структуры алгоритмов. Программирование «сверху вниз»: использование функций, подпрограмм, модулей. Виды процедур: рекурсивные формальные. Этапы проектирования программ. Правила записи исходного кода.


Управляющие операторы и конструкции.

Оператор GOTO безусловного перехода. Оператор и конструкции IF: условный логический оператор IF, конструкции IF THEN ENDIF, IF THEN ELSE ENDIF, IF THEN ELSE IF. Конструкция SELECT CASE. DO-циклы. Операторы EXIT и CYCLE. Возможные замены циклов. Оператор STOP.


Файлы Фортрана.

Виды файлов. Файловый указатель. Номер устройства. Внутренние файлы. Внешние файлы: двоичные, неформатные и текстовые файлы последовательного доступа. Файлы прямого доступа. Удаление записей из файла прямого доступа. Выбор типа файла. Операции над внешними файлами: операторы управления файлами, операторы BACKSPACE, REWIND, ENDFILE, OPEN, CLOSE, READ, WRITE, PRINT, INQIRE, EOF.


Массивы.

Понятие массива. Размещаемые массивы. Ввод и вывод одномерного массива. Многомерные массивы. Характеристики массивов. Способы объявления массивов. Размещение элементов массива в памяти ЭВМ. Одновременное объявление объектов разной формы. Массивы нулевой длины. Конструктор массива. Инициализация массива. Сечение массива. Выборочное присваивание массива. Массивы-ссылки. Автоматические массивы. Статус динамических массивов модулей. Массивы – формальные параметры процедур. Массив как результат функции. Встроенные функции для работы с массивами


Символьный тип данных.

Символьные буквальные константы. Объявление символьных данных. Инициализация символьных переменных. Автоматические строки. Выделение подстроки. Символьные выражения. Операция конкатенации. Присваивание символьных данных. Символьные переменные как внутренние файлы. Встроенные функции обработки символьных данных. Выделение слов из строки текста.


Производные типы данных.

Объявление данных производного типа. Инициализация и присвоение записей. Ввод-вывод записей. Применение структур при работе с набором данных. Структуры со ссылками на себя. Выражения производного типа. Задаваемые присваивания записей. Запись как параметр процедуры. Запись как результат функции.


Программные компоненты.

Внешние процедуры. Внутренние процедуры. Операторы заголовка процедур. Параметры процедур. Модули. Перегрузка и родовые интерфейсы. Ассоциирование имен. Область видимости именованного объекта. Область видимости меток. Атрибут AUTOMATIC. Атрибут SAVE.


Форматный ввод-вывод.

Преобразование данных. Оператор FORMAT. Программирование спецификации формата. Выражения в дескрипторе преобразований. Задание формата в операторах ввода-вывода. Списки ввода-вывода. Согласование списка ввода-вывода и спецификации формата. Коэффициент повторения. Реверсия формата. Дескрипторы данных. Дескрипторы управления. Управляемый списком ввод-вывод.


Вычислительные методы на Фортране.

Поиск корня функции y=f(x). Поиск локального экстремума функции нескольких переменных. Вычисление площади фигуры. Численное интегрирование с заданной точностью. Сортировка и поиск данных. Реккурентные вычисления.


Научная графика.


Профессиональные математические библиотеки.


Встроенные и дополнительные процедуры.


ПРОГРАММА КУРСА

«КОМПЬЮТЕРНЫЕ НАУКИ»

Специальность НМ, 2 курс, 1 и 2 семестры (2007-2008 уч.год)


«Системное программирование в UNIX средствами Free Pascal»


Со времени своего появления в Bell Laboratories в 1969 г. операционная система UNIX становилась все более популярной, вначале получив признание в академическом мире, а затем уже в качестве стандартной операционной системы для нового поколения многопользовательских микро- и миникомпьютеров в 80-х годах. Операционная система UNIX оправдала возлагавшиеся на нее надежды и теперь является ключевой деталью технологического пейзажа на рубеже XXI века. Не говоря уже о том, что UNIX всегда занимала сильные позиции в научном и техническом сообществах, в настоящее время существует множество крупномасштабных систем управления данными и обработки транзакций на платформе UNIX. Основное внимание курса уделяется программному интерфейсу между ядром UNIX (частью UNIX, которая делает ее операционной системой) и прикладным программным обеспечением, которое выполняется в среде UNIX.


1. Основные понятия и терминология

1.1. Файл

1.1.1. Каталоги и пути

1.1.2. Владелец файла и права доступа

1.1.3. Обобщение концепции файла

1.2. Процесс

1.2.1. Межпроцессное взаимодействие

1.3. Системные вызовы и библиотечные подпрограммы


2. Файл

2.1. Примитивы доступа к файлам в системе UNIX

2.1.1. Введение

2.1.2. Системный вызов fdopen

2.1.3. Создание файла при помощи вызова fdopen

2.1.4. Системный вызов fdcreat

2.1.5. Системный вызов fdclose

2.1.6. Системный вызов fdread

2.1.7. Системный вызов fdwrite

2.1.8. Пример copyfile

2.1.9. Эффективность вызовов fdread и fdwrite

2.1.10. Вызов fdseek и произвольный доступ

2.1.11. Пример: гостиница

2.1.12. Дописывание данных в конец файла

2.1.13. Удаление файла

2.1.14. Системный вызов fcntl

2.2. Стандартный ввод, стандартный вывод и стандартный вывод диагностики

2.2.1. Основные понятия

2.2.2. Программа io

2.2.3. Использование стандартного вывода диагностики

2.3. Стандартная библиотека ввода/вывода: взгляд в будущее

2.4. Системные вызовы и переменная linuxerror

2.4.7. Подпрограмма perror


3. Работа с файлами

3.1. Файлы в многопользовательской среде

3.1.1. Пользователи и права доступа

3.1.2. Права доступа и режимы файлов

3.1.3. Дополнительные права доступа для исполняемых файлов

3.1.4. Маска создания файла и системный вызов umask

3.1.5. Вызов fdopen и права доступа к файлу

3.1.6. Определение доступности файла при помощи вызова access

3.1.7. Изменение прав доступа при помощи вызова chmod

3.1.8. Изменение владельца при помощи вызова chown

3.2. Файлы с несколькими именами

3.2.1. Системный вызов link

3.2.2. Системный вызов unlink

3.2.3. Системный вызов frename

3.2.4. Символьные ссылки

3.2.5. Еще об именах файлов

3.3. Получение информации о файле: вызов fstat

3.3.1. Подробнее о вызове chmod


4. Каталоги, файловые системы и специальные файлы

4.1. Введение

4.2. Каталоги с точки зрения пользователя

4.3. Реализация каталогов

4.3.1. Снова о системных вызовах link и unlink

4.3.2. Точка и двойная точка

4.3.3. Права доступа к каталогам

4.4. Использование каталогов при программировании

4.4.1. Создание и удаление каталогов

4.4.2. Открытие и закрытие каталогов

4.4.3. Чтение каталогов: вызовы readdir и rewinddir

4.4.4. Текущий рабочий каталог

4.4.5. Смена рабочего каталога при помощи вызова chdir

4.4.6. Определение имени текущего рабочего каталога

4.4.7. Обход дерева каталогов

4.5. Файловые системы UNIX

4.5.1. Кэширование: вызовы sync и fsync

4.6. Имена устройств UNIX

4.6.1. Файлы блочных и символьных устройств

4.6.2. Структура tstat

4.6.3. Информация о файловой системе

4.6.4. Ограничения файловой системы: процедуры pathconf и fpathconf


5. Процесс

5.1. Понятие процесса

5.2. Создание процессов

5.2.1. Системный вызов fork

5.3. Запуск новых программ при помощи вызова ехес

5.3.1. Семейство вызовов ехес

5.3.2. Доступ к аргументам, передаваемым при вызове exec

5.4. Совместное использование вызовов ехес и fork

5.5. Наследование данных и дескрипторы файлов

5.5.1. Вызов fork, файлы и данные

5.5.2. Вызов ехес и открытые файлы

5.6. Завершение процессов при помощи системного вызова halt

5.7. Синхронизация процессов

5.7.1. Системный вызов wait

5.7.2. Ожидание завершения определенного потомка: вызов waitpid

5.8. Зомби-процессы и преждевременное завершение программы

5.9. Командный интерпретатор smallsh

5.10. Атрибуты процесса

5.10.1. Идентификатор процесса

5.10.2. Группы процессов и идентификаторы группы процессов

5.10.3. Изменение группы процесса

5.10.4. Сеансы и идентификатор сеанса

5.10.5. Переменные программного окружения

5.10.6. Текущий рабочий каталог

5.10.7. Текущий корневой каталог

5.10.8. Идентификаторы пользователя и группы

5.10.9. Ограничения на размер файла: вызов ulimit

5.10.10. Приоритеты процессов


6. Сигналы и их обработка

6.1. Введение

6.1.1. Имена сигналов

6.1.2. Нормальное и аварийное завершение

6.2. Обработка сигналов

6.2.1. Наборы сигналов

6.2.2. Задание обработчика сигналов: вызов sigaction

6.2.3. Сигналы и системные вызовы

6.2.4. Процедуры sigsetjmp и siglongjmp

6.3. Блокирование сигналов

6.4. Посылка сигналов

6.4.1. Посылка сигналов другим процессам: вызов kill

6.4.2. Посылка сигналов самому процессу: вызовы sigraise и alarm

6.4.3. Системный вызов pause

6.4.4. Системные вызовы sigpending и sigsuspend


7. Межпроцессное взаимодействие при помощи программных каналов

7.1. Каналы

7.1.1. Каналы на уровне команд

7.1.2. Использование каналов в программе

7.1.3. Размер канала

7.1.4. Закрытие каналов

7.1.5. Запись и чтение без блокирования

7.1.6. Использование системного вызова select для работы с несколькими каналами

7.1.7. Каналы и системный вызов ехес

7.2. Именованные каналы, или FIFO

7.2.1. Программирование при помощи каналов FIFO


8. Дополнительные методы межпроцессного взаимодействия

8.1. Введение

8.2. Блокировка записей

8.2.1. Мотивация

8.2.2. Блокировка записей при помощи вызова fcntl

8.3. Дополнительные средства межпроцессного взаимодействия

8.3.1. Введение и основные понятия

8.3.2. Очереди сообщений

8.3.3. Семафоры

8.3.4. Разделяемая память

8.3.5. Команды ipcs и ipcrm


9. Терминал

9.1. Введение

9.2. Терминал UNIX

9.2.1. Управляющий терминал

9.2.2. Передача данных

9.2.3. Эхо-отображение вводимых символов и опережающий ввод с клавиатуры

9.2.4. Канонический режим, редактирование строки и специальные символы

9.3. Взгляд с точки зрения программы

9.3.1. Системный вызов fdopen

9.3.2. Системный вызов fdread

9.3.3. Системный вызов fdwrite

9.3.4. Функции ttyname и isatty

9.3.5. Изменение свойств терминала: структура termios

9.3.6. Параметры MIN и TIME

9.3.7. Другие системные вызовы для работы с терминалом

9.3.8. Сигнал разрыва соединения

9.4. Псевдотерминалы

9.5. Пример управления терминалом: программа tscript


10.Сокеты

10.1. Введение

10.2. Типы соединения

10.3. Адресация

10.3.1. Адресация Internet

10.3.2. Порты

10.4. Интерфейс сокетов

10.4.1. Создание сокета

10.5. Программирование в режиме TCP-соединения

10.5.1. Связывание

10.5.2. Включение приема TCP-соединений

10.5.3. Прием запроса на установку TCP-соединения

10.5.4. Подключение клиента

10.5.5. Пересылка данных

10.5.6. Закрытие TCP-соединения

10.6. Программирование в режиме пересылок UDP-дейтаграмм

10.6.1. Прием и передача UDP-сообщений

10.7. Различия между двумя моделями


11. Стандартная библиотека ввода/вывода

11.1. Введение

11.2. Структура TFILE

11.3. Открытие и закрытие потоков: процедуры fopen и fclose Error: Reference source not found

11.4. Посимвольный ввод/вывод: процедуры getc и putc

11.5. Возврат символов в поток: процедура ungetc

11.6. Стандартный ввод, стандартный вывод и стандартный вывод диагностики

11.7. Стандартные процедуры опроса состояния

11.8. Построчный ввод и вывод

11.9. Ввод и вывод бинарных данных: процедуры fread и fwrite

11.10. Произвольный доступ к файлу: процедуры fseek, rewind и ftell

11.11. Форматированный вывод: семейство процедур printf

11.12. Форматированный ввод: семейство процедур scanf

11.13. Запуск программ при помощи библиотек стандартного ввода/вывода

11.14. Вспомогательные процедуры

11.14.1. Процедуры freopen и fdopen

11.14.2. Управление буфером: процедуры setbuf и setvbuf


12. Разные дополнительные системные вызовы и библиотечные процедуры

12.1. Введение

12.2. Управление динамическим распределением памяти

12.3. Ввод/вывод с отображением в память и работа с памятью

12.4. Время

12.5. Работа со строками и символами

12.5.1. Семейство процедур strings

12.5.2. Преобразование строк в числовые значения

12.5.3. Проверка и преобразование символов

12.6. Дополнительные средства

12.6.1. Дополнение о сокетах

12.6.2. Потоки управления

12.6.3. Расширения режима реального времени

12.6.4. Получение параметров локальной системы

12.6.5. Интернационализация

12.6.6. Математические функции

12.6.7. Работа с портами ввода вывода