Рабочая программа по дисциплине Программирование на языке высокого уровня для специальности 220400 Программное обеспечение вычислительной техники и автоматизированных систем

Вид материалаРабочая программа

Содержание


1. Цели и задачи дисциплины, ее место в учебном процессе 1.1. Цель преподавания дисциплины
1.2. Задачи изучения дисциплины
1.3. Перечень дисциплин, усвоение которых студентами, необходимо для изучения данной дисциплины
2. Требования к знаниям и умениям студентов по дисциплине
3. Распределение трудоемкости дисциплины по темам и видам занятий
4. Содержание лекционного курса
2. Модульное программирование.
3. Динамические структуры данных.
4. Стандартная библиотека.
5. Перечень тем практических занятий
6. Перечень лабораторных работ
7. Задания для самостоятельной работы студентов
8. Курсовой проект отсутствует 9. Курсовая работа отсутствует 10. Расчетно-графическая работа отсутствует
13. Список основной и дополнительной литературы по дисциплине Основная
Подобный материал:
Саратовский Государственный технический университет

Кафедра «Техническая физика и информационные технологии»


РАБОЧАЯ ПРОГРАММА


по дисциплине

Программирование на языке высокого уровня

для специальности 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. Экзаменационные вопросы

  1. Структурный подход к программированию. Этапы создания программ.
  2. Структура программы на языке С++. Этапы создания исполняемой программы на С++.
  3. Типы данных С++. Стандартные типы данных. Константы.
  4. Переменные. Область действия, область видимости, время жизни.
  5. Класс памяти. Выражения.
  6. Преобразование типов.
  7. Базовые конструкции структурного программирования.
  8. Операции присваивания. Операторы передачи управления.
  9. Операторы ветвления: условный оператор if, переключатель switch.
  10. Операторы цикла: цикл с предусловием, цикл с постусловием, цикл с параметром.
  11. Указатели, их инициализация. Ссылки.
  12. Операции с указателями.
  13. Массивы. Использование указателей.
  14. Динамические массивы. Особенности задания многомерных массивов.
  15. Понятие строки как массива символов. Операции работы со строками.
  16. Структуры. Массивы структур. Указатели на структуры.
  17. Принципы модульного программирования. Объявление и определение функций.
  18. Глобальные и локальные переменные. Параметры функции.
  19. Передача массивов в качестве параметров.
  20. Передача имен функций в качестве параметров.
  21. Функции с переменным числом параметров. inline-функции.
  22. Параметры со значениями по умолчанию.
  23. Перегрузка функций.
  24. Шаблоны функций.
  25. Пространства имен, области действия, внешние объявления.
  26. Алгоритм сортировки простым включением (вставками) и его модификации.
  27. Алгоритм сортировки простым выбором и его модификации.
  28. Алгоритм сортировки простым обменом и его модификации.
  29. Алгоритмы поиска в отсортированной последовательности.
  30. Линейные списки. Операции над двунаправленными линейными списками.
  31. Моделирование стеков и очередей динамическими структурами данных.
  32. Бинарные деревья. Операции над бинарными деревьями.
  33. Организация работы с файлами. Файловые потоки.
  34. Способы машинного представления графов. Алгоритмы обхода графа.
  35. Алгоритм Дейкстры определения кратчайшего пути.
  36. Построение транзитивного замыкания графа.
  37. Рекурсивные функции. Построение рекурсивных алгоритмов.
  38. Основные принципы объектно-ориентированного программирования.
  39. Классы.
  40. Конструкторы и деструкторы.
  41. Дружественные и виртуальные функции.
  42. Перегрузка операций.
  43. Наследование.
  44. Множественное наследование.
  45. Абстрактные классы.
  46. Шаблоны классов.
^


13. Список основной и дополнительной литературы по дисциплине

Основная:

  1. Павловская Т.А. С/С++. Программирование на языке высокого уровня. ­­– СПб.: Питер, 2001. – 464с.
  2. Подбельский В.В. Язык Си++: Учебное пособие. – М.:Финансы и статистика, 1996. – 560с.
  3. Керниган Б., Ритчи Д. Язык программирования Си. – М.:Финансы и статистика, 1992. – 445с.
  4. Страуструп Б. Язык программирования С++. – СПб: БИНОМ, 1999. – 991с.
  5. Керниган Б., Пайк Р. Практика программирования. – СПб.:Невский Диалект, 2001. – 381с.
  6. Вирт Н. Алгоритмы + структуры данных = программы. – М.:Мир, 1985. – 406с.
  7. Павловская Т.А. Щупак Ю.А. С/С++. Структурное программирование. Практикум. – СПб.: Питер, 2002. – 240с.
  8. Архангельский А.Я. Программирование в С++Builder5, 2002.
  9. Подбельский В.В. Практикум по программированию на языке Си: Учебное пособие – М.:Финансы и статистика, 2004. – 576с.



Дополнительная:

  1. Элджер Дж. С++: библиотека программиста. ­­– СПб.: Питер, 1999. 320с.
  2. Крячков А.В., Сухинина И.В. Томшин В.К. Программирование на С и С++. Практикум: Учебное пособие для вузов. – М.:Горячая линия – Телеком, 2000. – 344с.
  3. Кнут Д. Искусство программирования для ЭВМ: в 3 томах, - М.Мир, 1978.
  4. Страуструп Б. Дизайн и эволюция языка С++. – СПб: BHV, 2000. – 448с.
  5. Шилдт Г. Теория и практика С++. – СПб: BHV, 1996. – 416с.
  6. Новиков Ф.А. Дискретная математика для программистов, 2000.
  7. Романов Е.Л. . Практикум по программированию на С++: Учебное пособие. СПб: БХВ-Петербург; Новосибирск: Изд-во НГТУ, 2004. – 412 с.



14. Использование наглядных пособий, ТСО, вычислительной техники


Вычислительная техника непосредственно используется в курсе «Программирование на языке высокого уровня» на лабораторных занятиях.


Рабочую программу составила ____________ доц. Шатурная О.С.