Рабочая программа по дисциплине Программирование на языке высокого уровня для специальности 220400 Программное обеспечение вычислительной техники и автоматизированных систем
Вид материала | Рабочая программа |
- Рабочая программа по дисциплине "Программирование на языке высокого уровня" для специальности, 137.39kb.
- Рабочая программа для специальности: 220400 Программное обеспечение вычислительной, 133.96kb.
- Рабочая программа по дисциплине Архитектура вычислительных систем Для специальности, 122.63kb.
- Рабочая программа по дисциплине «Информатика» для специальности 230105(220400) «Программное, 259.13kb.
- Рабочая программа по дисциплине: «Программное обеспечение сетей эвм» Для специальности, 72.13kb.
- «Программное обеспечение вычислительной техники и автоматизированных систем», 1790.14kb.
- Рабочая программа по дисциплине "Вычислительная математика" для специальности 230105, 201.66kb.
- Рабочая программа по дисциплине: «Сети ЭВМ и телекоммуникации» Для специальности, 95.71kb.
- Рабочая программа По дисциплине "Теория оптимального управления" Для специальностей, 109.97kb.
- Логическое программирование, 180.64kb.
Саратовский Государственный технический университет
Кафедра «Техническая физика и информационные технологии»
РАБОЧАЯ ПРОГРАММА
по дисциплине
Программирование на языке высокого уровня
для специальности 220400 Программное обеспечение вычислительной техники и автоматизированных систем
Курс 1
Семестр 1
Часов в неделю: лекции 2, лабораторные занятия 2, практические занятия 1.
Семестр 2
Часов в неделю: лекции 2, лабораторные занятия 2.
Курсовая работа –
Курсовой проект –
Расчетно-графическая работа –
Контрольная работа –
Экзамен 2 семестр
Зачет 1
Рабочая программа обсуждена на заседании кафедры
“____”___________200__ г, протокол №_____
Зав. кафедрой проф.__________________Кац А.М.
Рабочая программа утверждена на заседании УМКС
“____”___________200__ г, протокол №_____
Председатель УМКС проф._____________Кац А.М.
Энгельс, 200__.
^
1. Цели и задачи дисциплины, ее место в учебном процессе
1.1. Цель преподавания дисциплины
Целью преподавания дисциплины «Программирование на языке высокого уровня» для студентов специальности ПВС является изучение теоретических основ и приобретение практических навыков в технологиях подготовки задач для их решения на ЭВМ.
^
1.2. Задачи изучения дисциплины
Задачи преподавания дисциплины состоят в обеспечении овладения студентами основами знаний о разработке алгоритмов решения поставленных задач.
^
1.3. Перечень дисциплин, усвоение которых студентами, необходимо для изучения данной дисциплины
Для изучения дисциплины необходимо знание курса «Информатика».
^
2. Требования к знаниям и умениям студентов по дисциплине
Студент должен знать:
- основные принципы структурного написания программ;
- конструкции языка высокого уровня и технологию создания программ;
- базовые средства языка и средства стандартных библиотек.
Студент должен уметь:
- определять требования к создаваемой программе;
- выбрать среду программирования;
- выбрать или разработать алгоритм решения задачи;
- реализовать программный код, выполнить отладку и провести тестирование программы.
^
3. Распределение трудоемкости дисциплины
по темам и видам занятий
№ модуля | № недели | № темы | Наименование темы | Часы | ||||
всего | лекции | пр. зан | лаб. зан | срс | ||||
I | 1-2 | 1 | Введение | 15 | 4 | 1 | 3 | 5 |
| 3-13 | 2 | Базовые средства языка С++ | 85 | 22 | 12 | 29 | 18 |
II | 14-20 | 3 | Модульное программирование | 63 | 14 | 4 | 18 | 32 |
III | 21-24 | 4 | Динамические структуры данных | 33 | 8 | - | 7 | 15 |
| 25-27 | 5 | Стандартная библиотека | 35 | 6 | - | 11 | 22 |
IV | 28-34 | 6 | Классы | 29 | 14 | - | - | 15 |
Итого | 260 | 68 | 17 | 68 | 107 |
^
4. Содержание лекционного курса
№ темы | Всего часов | № лекции | Тема лекции |
1 | 2 | 1 | Введение. Основные этапы решения задач на ЭВМ. Постановка задач. |
1 | 2 | 2 | Общие принципы написания структурных программ. Понятие алгоритма. |
2 | 2 | 3 | 1. Базовые средства языка С++. 1.1. Состав языка: алфавит языка; идентификаторы; ключевые слова; знаки операций; константы; комментарии. |
2 | 2 | 4 | 1.2. Типы данных С++: концепция типа данных; основные типы данных; структура программы. |
2 | 2 | 5 | 1.3. Переменные и выражения: переменные; операции; выражения. |
2 | 2 | 6 | 1.4. Базовые конструкции структурного программирования. 1.4.1. Оператор «выражение». 1.4.2. Операторы передачи управления: goto; break; continue; return. |
2 | 2 | 7 | 1.4.3. Операторы ветвления: условный оператор if; переключатель switch. |
2 | 2 | 8 | 1.4.4. Операторы цикла: цикл с предусловием while; цикл с постусловием do while; цикл с параметром for. |
2 | 2 | 9 | 1.5. Указатели и массивы: 1.5.1. Указатели; инициализация указателей. |
2 | 2 | 10 | 1.5.2. Операции с указателями. Ссылки. |
2 | 2 | 11 | 1.5.3. Массивы, динамические массивы, многомерные массивы. |
2 | 2 | 12 | 1.5.4. Строки. |
2 | 2 | 13 | 1.6. Типы данных, определяемы пользователем: typedef; enum; struct; union. |
3 | 2 | 14 | ^ 2. Модульное программирование. Основные принципы модульного программирования. |
3 | 2 | 15 | 2.1. Функции: объявление и определение функций. |
3 | 2 | 16 | 2.2. Параметры функции. Глобальные и локальные переменные. |
3 | 2 | 17 | Параметры функции (продолжение). |
3 | 2 | 18 | 2.3. Рекурсивные функции. Программирование рекурсивных алгоритмов. |
3 | 2 | 19 | 2.4. Перегрузка функций. |
3 | 2 | 20 | 2.5. Перегрузка функций. |
4 | 2 | 21 | ^ 3. Динамические структуры данных. 3.1. Линейные списки. |
4 | 2 | 22 | 3.2. Стек и очередь – частный случай линейного списка. |
4 | 2 | 23 | 3.3. Бинарные деревья. |
4 | 2 | 24 | 3.4. Представление графов в ЭВМ. Алгоритмы на графах. |
5 | 2 | 25 | ^ 4. Стандартная библиотека. 4.1. Потоки: стандартные потоки; форматирование данных; ошибки потоков; строковые потоки. |
5 | 2 | 26 | 4.2. Файловые потоки. |
5 | 2 | 27 | 4.3. Строки. |
6 | 2 | 28 | 5. Классы. 5.1. Описание класса. |
6 | 2 | 29 | 5.2. Конструкторы и деструкторы. |
6 | 2 | 30 | 5.3. Перегрузка операций. |
6 | 2 | 31 | 5.4. Наследование. Виртуальные методы. |
6 | 2 | 32 | Наследование (продолжение) |
6 | 2 | 33 | 5.5. Шаблоны классов. |
6 | 2 | 34 | 5.6. Преобразования типов. |
5. Перечень тем практических занятий
№ темы | Всего часов | № занятия | Тема практического занятия |
1 | 1 | 1 | Алгоритмизация. Ввод-вывод. Присваивание. Выражения. |
2 | 2 | 2 | Простейшая программа на С++. Разветвляющиеся алгоритмы. |
2 | 2 | 3 | Цикл с предусловием. Цикл с постусловием. |
2 | 2 | 4 | Цикл с параметром. Указатели. |
2 | 2 | 5 | Одномерные массивы. |
2 | 2 | 6 | Многомерные массивы. Динамические массивы. |
2 | 2 | 7 | Структуры. Массивы структур. |
3 | 2 | 8 | Функции. Передача параметров. Передача массивов в качестве параметров. |
3 | 2 | 9 | Шаблоны функций. |
^
6. Перечень лабораторных работ
№ темы | Всего часов | № работы | Наименование лабораторной работы |
1 | 2 | 1 | Знакомство со средой программирования C++Builder. |
2 | 2 | 2 | Использование переменных. Операция присваивания. |
2 | 2 | 3 | Ввод и вывод данных. Типы данных. |
2 | 2 | 4 | Приоритет операций. Операция sizeof. |
2 | 2 | 5 | Условный оператор if – else. |
2 | 2 | 6 | Вложенные условные операторы if – else. |
2 | 2 | 7 | Логические операции в операторе if – else. |
2 | 2 | 8 | Переключатель switch. |
2 | 2 | 9 | Циклы с предусловием и постусловием. Ввод/вывод в стиле Си (printf, scanf). |
2 | 2 | 10 | Приближенное вычисление бесконечной суммы. |
2 | 2 | 11 | Цикл с параметром. Ввод/вывод в стиле Си (printf, scanf). |
2 | 2 | 12 | Цикл с параметром в сочетании с ветвлением. |
2 | 2 | 13 | Одномерные массивы. |
2 | 2 | 14 | Двумерные массивы (матрицы). |
2 | 2 | 15 | Работа со строками и символами. |
3 | 2 | 16 | Использование функций. |
1-2 | 2 | 17 | Промежуточный контроль. |
3 | 4 | 18 | Использование динамических массивов. |
3 | 4 | 19 | Использование функций. Передача массивов в качестве параметров. |
3 | 4 | 20 | Определение и использование структур. Методы сортировки |
5 | 4 | 21 | Работа с файлами и строками. |
4 | 6 | 22 | Динамические структуры данных. |
5 | 6 | 23 | Многофайловые проекты. |
3 | 4 | 24 | Шаблоны функций. |
3-5 | 2 | 25 | Итоговый контроль. |
7. Задания для самостоятельной работы студентов
№ темы | Всего часов | Вопросы для самостоятельного изучения | Литература |
1 | 2 | Тестирование: систематическое тестирование, автоматизация тестирования, стрессовое тестирование. | 5 (с. 203) |
1 | 3 | Отладка: средства отладки, трудные ошибки, невоспроизводимые ошибки, чужие ошибки. Отладчики. | 5 (с. 175) |
2 | 9 | Интерфейс среды программирования C++ Builder. | 8 (с. 12) |
2 | 9 | Документирование программы. | 1 (с. 102) |
3 | 9 | Директивы препроцессора. | 2 (с. 263), 9 (с.65) |
3 | 8 | Поименованные области. | 1 (с. 99) |
3 | 15 | Функции стандартной библиотеки. | 1 (с. 88) |
4 | 7 | Реализация динамических структур с помощью массивов. | 5 (с. 71) |
4 | 8 | Обход графа. | 15 (с. 197) |
5 | 22 | Контейнерные классы. | 1 (с. 295) 16 (с. 404) |
6 | 15 | Обработка исключений | 10 (с. 79) |
^
8. Курсовой проект
отсутствует
9. Курсовая работа
отсутствует
10. Расчетно-графическая работа
отсутствует
11. Контрольная работа
отсутствует
12. Экзаменационные вопросы
- Структурный подход к программированию. Этапы создания программ.
- Структура программы на языке С++. Этапы создания исполняемой программы на С++.
- Типы данных С++. Стандартные типы данных. Константы.
- Переменные. Область действия, область видимости, время жизни.
- Класс памяти. Выражения.
- Преобразование типов.
- Базовые конструкции структурного программирования.
- Операции присваивания. Операторы передачи управления.
- Операторы ветвления: условный оператор if, переключатель switch.
- Операторы цикла: цикл с предусловием, цикл с постусловием, цикл с параметром.
- Указатели, их инициализация. Ссылки.
- Операции с указателями.
- Массивы. Использование указателей.
- Динамические массивы. Особенности задания многомерных массивов.
- Понятие строки как массива символов. Операции работы со строками.
- Структуры. Массивы структур. Указатели на структуры.
- Принципы модульного программирования. Объявление и определение функций.
- Глобальные и локальные переменные. Параметры функции.
- Передача массивов в качестве параметров.
- Передача имен функций в качестве параметров.
- Функции с переменным числом параметров. inline-функции.
- Параметры со значениями по умолчанию.
- Перегрузка функций.
- Шаблоны функций.
- Пространства имен, области действия, внешние объявления.
- Алгоритм сортировки простым включением (вставками) и его модификации.
- Алгоритм сортировки простым выбором и его модификации.
- Алгоритм сортировки простым обменом и его модификации.
- Алгоритмы поиска в отсортированной последовательности.
- Линейные списки. Операции над двунаправленными линейными списками.
- Моделирование стеков и очередей динамическими структурами данных.
- Бинарные деревья. Операции над бинарными деревьями.
- Организация работы с файлами. Файловые потоки.
- Способы машинного представления графов. Алгоритмы обхода графа.
- Алгоритм Дейкстры определения кратчайшего пути.
- Построение транзитивного замыкания графа.
- Рекурсивные функции. Построение рекурсивных алгоритмов.
- Основные принципы объектно-ориентированного программирования.
- Классы.
- Конструкторы и деструкторы.
- Дружественные и виртуальные функции.
- Перегрузка операций.
- Наследование.
- Множественное наследование.
- Абстрактные классы.
- Шаблоны классов.
13. Список основной и дополнительной литературы по дисциплине
Основная:
- Павловская Т.А. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2001. – 464с.
- Подбельский В.В. Язык Си++: Учебное пособие. – М.:Финансы и статистика, 1996. – 560с.
- Керниган Б., Ритчи Д. Язык программирования Си. – М.:Финансы и статистика, 1992. – 445с.
- Страуструп Б. Язык программирования С++. – СПб: БИНОМ, 1999. – 991с.
- Керниган Б., Пайк Р. Практика программирования. – СПб.:Невский Диалект, 2001. – 381с.
- Вирт Н. Алгоритмы + структуры данных = программы. – М.:Мир, 1985. – 406с.
- Павловская Т.А. Щупак Ю.А. С/С++. Структурное программирование. Практикум. – СПб.: Питер, 2002. – 240с.
- Архангельский А.Я. Программирование в С++Builder5, 2002.
- Подбельский В.В. Практикум по программированию на языке Си: Учебное пособие – М.:Финансы и статистика, 2004. – 576с.
Дополнительная:
- Элджер Дж. С++: библиотека программиста. – СПб.: Питер, 1999. 320с.
- Крячков А.В., Сухинина И.В. Томшин В.К. Программирование на С и С++. Практикум: Учебное пособие для вузов. – М.:Горячая линия – Телеком, 2000. – 344с.
- Кнут Д. Искусство программирования для ЭВМ: в 3 томах, - М.Мир, 1978.
- Страуструп Б. Дизайн и эволюция языка С++. – СПб: BHV, 2000. – 448с.
- Шилдт Г. Теория и практика С++. – СПб: BHV, 1996. – 416с.
- Новиков Ф.А. Дискретная математика для программистов, 2000.
- Романов Е.Л. . Практикум по программированию на С++: Учебное пособие. СПб: БХВ-Петербург; Новосибирск: Изд-во НГТУ, 2004. – 412 с.
14. Использование наглядных пособий, ТСО, вычислительной техники
Вычислительная техника непосредственно используется в курсе «Программирование на языке высокого уровня» на лабораторных занятиях.
Рабочую программу составила ____________ доц. Шатурная О.С.