Программа дисциплины опд. Ф. 05. Языки программирования и методы трансляции для студентов направления 010500"Прикладная математика и информатика" специальности

Вид материалаПрограмма дисциплины

Содержание


Программа дисциплины
010501 “Прикладная математика и информатика”
Цели и задачи дисциплины
2. Требования к уровню освоения содержания дисциплины.
3. Содержание дисциплины
Раздел 3. Типы данных, способы и механизмы управления данными.
Раздел 4 Модульное програмирование.
Раздел 5 Строки.
Раздел 6 Проектирование программ. Метод пошаговой детализации. Методы верификации программ.
Раздел 9. Ввод- вывод в С++. Потоки ввода-вывода как первое знакомство с объектами
Раздел 10 Динамические структуры данных.
Раздел 11. Методы и основные этапы трансляции
3.2 Семинарские занятия.
3.3 Лабораторный практикум.
3.6. Самостоятельная работа
4.1. Рекомендуемая литература
Подобный материал:
Министерство образования и науки Российской Федерации

Федеральное агентство по образованию



ОБНИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ АТОМНОЙ ЭНЕРГЕТИКИ (ИАТЭ)






УТВЕРЖДАЮ




Проректор по учебной работе


С.Б. Бурухин





“______”____________ 2008 г.



ПРОГРАММА ДИСЦИПЛИНЫ


ОПД.Ф.05. Языки программирования и методы трансляции.


для студентов направления 010500“Прикладная математика и информатика”


специальности 010501 “Прикладная математика и информатика”


cпециализации "Математическое моделирование"


Форма обучения: очная


Объем дисциплины и виды учебной работы по очной форме в соответствии с учебным планом


Вид учебной работы

Всего часов

Семестры

1 сем.

2 сем.

Общая трудоемкость дисциплины

153

76

77

Аудиторные занятия

102

51

51

Лекции

34

17

17

Практические занятия и семинары

68

34

34

Лабораторные работы

0

0

0

Cамостоятельная работа

51

25

26

Вид итогового контроля (зачет, экзамен)




зачет

экзамен



Обнинск 2008

Программа составлена в соответствии с Государственным образовательным стандартом высшего профессионального образования по направлению подготовки 010501

Программу составила:


__________________Е. А. Виноградова, доцент

Программа рассмотрена на заседании кафедры ИКД (протокол № 06/08 от 22.05.2008 г.)


Заведующий кафедрой

ИКД


___________________ проф. П. А. Андросенко


“____”_____________ 2008 г.


СОГЛАСОВАНО


Начальник Учебно – методического управления


___________________ Ю.Д. Соколова


Декан

факультета “К”


_______________________А.В.Антонов


“____”_____________ 2008 г.



  1. Цели и задачи дисциплины

Цель дисциплины – дать студентам систематические знания по теории и практике программирования на языке высокого уровня.

Задача дисциплины – ознакомить студентов с принципами построения современных алгоритмических языков, с приемами конструирования алгоритмов, с концепциями современного программирования; дать теоретические знания и практические навыки программирования на языках С и С++, ознакомить с процессом трасляции программ.

2. Требования к уровню освоения содержания дисциплины.

В результате изучения дисциплины студент должен

знать: инструментальные средства языка С и С++;

уметь: конструировать алгоритмы, оценивать эффективность, кодировать их на языках С и С++;

иметь навыки: отладки программ и протоколирования программ..

3. Содержание дисциплины

3.1 Лекции.

Раздел 1. Основные понятия языков программирования. Синтаксис, семантика. Формальные способы описания языков программирования Общая характеристика С С++. (1 час.)


Раздел 2. Принципы построения языков. Базовые структуры алгоритмов и их реализация в языках С и С++ (основные операторы языка).

Структура элементарной С++-программы.

Базовые структуры алгоритмов, их реализация в языке С и С++.

Простейшие типы данных. Операции.

Линейная структура. Простейший ввод, вывод в стиле С и в стиле С++.

Оператор присваивания, оператор-выражение.

Условная структура.Условный оператор.

Структура "Выбор".

Циклические структуры и их реализация в С.

Примеры использования операторов цикла. (3 час.)

Раздел 3. Типы данных, способы и механизмы управления данными.

Общая характеристика.

Тип int. Машинные форматы, операции, функции, выражения.

Вещественные типы. Машинные форматы, операции, функции, выражения.

Символьный тип. Машинный формат. Расширенный символьный тип.

Логический тип. Машинный формат.

Спецификаторы типа

Указатели, ссылки.

Совместимость и преобразование типов.

Область действия переменных, Локальные, глобальные переменные.

Видимость переменных.

Время жизни. Модификаторы переменных.

Регулярные структурированные типы.

Одномерные массивы.

Статическое и динамическое выделение памяти для хранения массивов.

Доступ к элементу массива с помощью индекса и с помощью указателя.

Примеры работы с одномерными массивами. Алгоритмы преобразования

массивов (исключение, вставка, сдвиги). Выделение серий в массиве.

Сортировка массивов. Поиск в упорядоченных и не упорядоченных массивах

Матрицы.

Статическое и динамическое выделение памяти для хранения матриц.

Доступ к элементу матрицы с помощью индексов и с помощью указателя.

Простейшие алгоритмы для работы с матрицами(вычисление нормы,

умножение, транспонирование матриц, симметрия в матрице,преобразование матриц,

решение систем линейных уравнений.) (6 час.)

Раздел 4 Модульное програмирование.

Функции, возвращающие значение.

Функции, не возвращающие значение.

Параметры функции. Передача параметров по ссылке и по значению.

Массивы в качестве параметров.

Передача имен функций в качестве параметров.

Рекурсивные функции.

Перегрузка функций (4 час.)

Раздел 5 Строки.

Работа со строками в стиле С. Функции для работы со строками и символами.

Примеры обработки строк. Использование указателей.

Простейшие сведения о работе со строками в стиле С++. Класс string. (3 час.)

Раздел 6 Проектирование программ. Метод пошаговой детализации. Методы верификации программ. (2 час.)

Раздел 7. Нерегулярный структурированный тип.

Структуры. (2 час.)


Раздел 8. Общие сведения об организации ввода -вывода в С.

Функции для работы с файлами.

Текстовые файлы.

Бинарные файлы. (2 час.)

Раздел 9. Ввод- вывод в С++. Потоки ввода-вывода как первое знакомство с объектами

и классами.

Введение в классы и объекты.

Стандартные потоки.

Форматирование данных. Флаги и форматирующие методы. Манипуляторы.

Методы обмена с потоками.

Файловые потоки. Текстовые и бинарные файлы. (3 час.)

Раздел 10 Динамические структуры данных.

Линейные односвязные списки. Стеки, очереди.

Линейные двусвязные списки. Деки.

Деревья. (3 час.)

Раздел 11. Методы и основные этапы трансляции.

Компилятор. Интерпретатор. Основные этапы компиляции. Лексический, семантический анализ выражения. Формальная грамматика. Компилятор формулы. Дерево синтаксического разбора (3 час.)

Раздел 12. Конструкции распределенного и параллельного программирования (2 час.)


3.2 Семинарские занятия.


Раздел

Тема семинарского занятия

Часы




1

Базовые структуры алгоритмов.

Конструирование алгоритмов

6

Кушниренко А. Г. Лебедев Г. В. Программирование для математиков.М. Наука. 1988 г. стр 34-45

2

Основные операторы языка С

6

Страуструп Б. Язык программирования С++. СПб, БИНОМ, 1999 г. Стр 27-56

3

Ряды.

4

Кушниренко А. Г. Лебедев Г. В. Программирование для математиков.М. Наука. 1988 г. Стр 52-76

4

Одномерные массивы

8

Страуструп Б. Язык программирования С++. СПб, БИНОМ, 1999 г. Стр 78-91

5

Матрицы

6

Страуструп Б. Язык программирования С++. СПб, БИНОМ, 1999 г. Стр 104-123


6

Строки

4

Страуструп Б. Язык программирования С++. СПб, БИНОМ, 1999 г. стр

211-245

7

Подпрограммы

8

Павловская Т. А. С и С++. СПб. 2002 г.

Стр 87-96

8

Метод пошаговой детализации

4

Кушниренко А. Г. Лебедев Г. В. Программирование для математиков.М. Наука. 1988 г. Стр167-182

9

Структуры

4

Страуструп Б. Язык программирования С++. СПб, БИНОМ, 1999 г.325-351

10

Файлы

8

Страуструп Б. Язык программирования С++. СПб, БИНОМ, 1999 г. Стр 465-481


11

Списки

6

Павловская Т. А. С и С++. СПб. 2002 г.

Стр 112-139

Вирт Н. Алгоритмы и структуры данных. М., Мир, 1989. стр


12

Деревья

4

Павловская Т. А. С и С++. СПб. 2002 г.

Стр 142-164

Вирт Н. Алгоритмы и структуры данных. М., Мир, 1989. стр



3.3 Лабораторный практикум.

Не предусмотрен.

3.4. Курсовые проекты (работы)

Не предусмотрены.

3.5. Формы текущего контроля



Разделы

Семинаров

Форма контроля

Неделя

3-4

Контр. работа.

6 Рейт.

5-6

Коллоквиум

10 Рейт.

7-8

Контр. работа.

14 Рейт.

9

Контр. работа.

5 Рейт.

10

Контр. работа.

11 Рейт.

11-12

Контр. работа.

15 Рейт.


3.6. Самостоятельная работа

1 семестр.

Тема: Оптимизация программ.

Литература: Мейерс С. Эффективное использ. С++. М. ДМК 2000 г. Стр. 126-197.

Форма контроля: письменный отчет.

2 семестр.

Тема: Средства редактирования файлов. 211-236.

Литература:

1. Страуструп Б. Язык программ. С++. СПб, БИНОМ, 1999 г. Стр 470-481

2. Павловская Т. А. С и С++. СПб. 2002 г. 265-284.

Форма контроля: письменный отчет.


4.1. Рекомендуемая литература


4.1.1. Основная литература

1. Страуструп Б. Язык программирования С++. СПб, БИНОМ, 1999 г. (библиотека – 2 экз.)

2.Подбельский В.В. Фомин С.С. Программирование на языке Си. М. Финансы и статистика. 2007 г. (библиотека – 5 экз.)

3. Павловская Т. А. С и С++. СПб. 2002 г. (библиотека – 50 экз.)

4. Павловская Т. А. Щупак Ю. А. С и С++.Практикум. СПб. 2003 г. (библиотека – 50 экз.)

5. Мейерс С. Эффективное использование С++. М. ДМК 2000 г. (библиотека – 1 экз.)

6 Вирт Н. Алгоритмы и структуры данных. М., Мир, 1989. (библиотека – 6 экз.)

7. Кушниренко А. Г. Лебедев Г. В. Программир. для математиков. М. Наука. 1988 г. (библиотека – 6 экз.)

4.1.2. Дополнительная литература

2. Уолтер Сэвитч. С++ в примерах и задачах.М. "ЭКОМ" 1997 г. (библиотека – 1 экз.)

3. Бабэ Б. Просто и ясно о С++. М. БИНОМ 1995 г. (библиотека – 1 экз.)

4. Дэвис С. С++ для чайников. К. Диалектика. 1995 г. (библиотека – 1 экз.)


4.2. Средства обеспечения освоения дисциплины

Не предусмотрены.

5. Материально-техническое обеспечение дисциплины

Дисплейный класс 2-614.