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

Факультет Автоматики и Вычислительной Техники

Кафедра Автоматики

"УТВЕРЖДАЮ"

Декан АВТФ

__________

"____" ____________2006 г.

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

ООП [ОПД. Ф.07 Программирование, бакалавр техники и технологий]
по направлению 220200 «Автоматизация и управление»

Факультет АВТ

Курс 3, 4

Семестр 5(зачёт)¸ 6(экз.), 7(КР)

Лекции 2 (в 6-ом семестре)

Семинарских занятий 24 часа (12 часов в 5-м семестре, 12 часа в 6-ом семестре)

Самостоятельная работа 202 часов

Зачёт 5 семестр

Экзамен 6 семестр

Курсовой проект 7 семестр

Всего 228 часов

Новосибирск 2006

Рабочая программа составлена на основании Государственного образовательного стандарта (ГОС) высшего профессионального образования по специальности 220200 «Автоматизация и управление».

Регистрационный номер 24 тех/бак от 01.01.2001 г.

Шифр дисциплины в ГОС ОПД. Ф.07, дисциплина «Программирование» относится к циклу общепрофессиональным дисциплинам федерального компонента. [Шифр дисциплины по учебному плану: ОПД (федеральный компонент)].

Рабочая программа обсуждена на заседании кафедры «Автоматики»
протокол № 1 от 01.01.2001.

Программу разработали:

к. т.н., доцент

к. т.н., старший преподаватель

Заведующий кафедрой д. т.н. проф.

Ответственный за основную образовательную программу
д. т.н., профессор кафедры АВТ

1. ВНЕШНИЕ ТРЕБОВАНИЯ

Дисциплина «Программирование» в соответствии с требованиями ГОС включает в себя изучение следующих вопросов:

НЕ нашли? Не то? Что вы ищете?

Таблица 1

Шифр дисц.

Содержание учебной дисциплины

Часы

ОПД. Ф.07

Основные виды, этапы проектирования и жизненный цикл программных продуктов; синтаксис и семантика алгоритмического языка программирования; структурное и модульное программирование; типизация и структуризация программных данных; статические и динамические данные; сложные структуры данных (списки, деревья, сети); потоки ввода-вывода; файлы; проектирование программных алгоритмов (основные принципы и подходы); классы алгоритмов; методы частных целей, подъемы ветвей и границ, эвристика; рекурсия и итерация; сортировка и поиск; методы и средства объектно-ориентированного программирования; стандарты на разработку прикладных программных средств; Документирование, сопровождение и эксплуатация программных средств.

228

2. ОСОБЕННОСТИ ПОСТРОЕНИЯ ДИСЦИПЛИНЫ

Таблица 2

Особенность

Содержание

Основание для введения дисциплины в учебный план специальности

Дисциплина относится к циклу дисциплин федерального компонента, включенных в учебный план подготовки бакалавров по направлению 220200 «Автоматизация и управление». Основанием для введения в учебный план являются требования ГОС.

Адресат курса

Дисциплина преподается на кафедре автоматики и предназначена для студентов, обучающихся по направлению 220200 «Автоматизация и управление»

Компетенции, которые может повысить обучающийся

Основная задача преподавания дисциплины "Программирование" в третьем семестре - Получение базового уровня по программированию на языке "Ассемблер". Приобретение навыков использования базового набора фрагментов алгоритмов в процессе разработки программ, навыков анализа и "чтения" программ. Изучение основ технологии программирования и методов решения вычислительных задач и задач обработки символьных данных.

В четвертом семестре - основная задача преподавания дисциплины "Программирование" - освоение принципиально новой технологии объектно-ориентированного программирования (ООП) на основе знаний, полученных в результате изучения курса "Программирование" в третьем семестре.

Ядро дисциплины

Ядром дисциплины «Программирование» является проектирование и жизненный цикл программных продуктов, структурное и модульное программирование, типизация и структуризация программных данных, проектирование программных алгоритмов (основные принципы и подходы), методы и средства объектно-ориентированного программирования

Связь с другими учебными дисциплинами ООП

Дисциплина «Программирование» связана с математикой через теорию математического моделирования, дискретную математику, математическую логику и теорию алгоритмов. С ней связано прогрессивное увеличение возможностей компьютерной техники, развитие информационных сетей, создание новых информационных технологий, которые приводят к значительным изменениям во всех сферах общества: производстве, науке, образовании и т. д.

Требования к первоначальному уровню подготовки

Студент должен знать основы высшей математики, физики, информатики.

Особенности организации учебного процесса

Изучаемая дисциплина является основой для изучения дисциплин: «Вычислительные машины, системы и сети», «Моделирование систем», «Программно-аппаратные средства защиты информации». А также для курсового и дипломного проектирования.

3. ЦЕЛИ УЧЕБНОЙ ДИСЦИПЛИНЫ

После изучения дисциплины студент

Таблица 3

Будет иметь представление:

1

Об общих принципах архитектуры микропроцессора 8086

2

Об особенностях технологии программирования на языке Ассемблер

3

Об общих принципах взаимоотношений алгоритма и данных в традиционной и объектно-ориентированной технологиях

4

Язык и среда программирования С и С++

5

Технологии программирования применительно к типам данных, структурам данных и организации программы

Знать:

6

Программно-доступные элементы микропроцессора 8086

7

Основные директивы языка Ассемблер

8

Основной набор команд Ассемблера

9

Методы адресации

10

Особенности обработки аппаратных и программных прерываний

11

Концептуальные основы структурного программирования

12

Значение и применение функций время жизни и область видимости

13

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

14

Использование адресной арифметики

15

Концептуальные основы объектно-ориентированного программирования, понятия класса, объекта, метода, закрытости, доступа, конструирования объектов

16

Синтаксис определения классов, методов и объектов, особенности работы с объектами, содержащими динамические данные и связанные ресурсы, основные виды конвейерной обработки объектов в операциях - по значению, по ссылке, по указателю

17

Принципы переопределения операций, особенности переопределения отдельных операций

18

Понятия наследования и полиморфизма, сущность "развития" класса от базового к производному, принципы проектирования программы "от класса к классу", основные варианты использования виртуальной функции; принципы организации объектно-ориентированной библиотеки и работы с ней

19

Способы организации объектов в программе, принцип событийного программирования с использованием объектов

Уметь:

20

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

21

Правильно применять различные методы адресации

22

Использовать при программировании функции BIOS и DOS

23

Разрабатывать программы различной сложности с использованием простых и агрегатированных данных

24

Разрабатывать отдельные классы для внедрения в "C++" собственных типов данных

25

Разрабатывать программы в виде системы классов и взаимодействующих объектов

26

Разрабатывать классы структур данных и шаблонов структур данных, а также использования аналогичных стандартных средств

Иметь опыт:

27

Использования отладочных средств, предоставляемых средой программирования

28

Разработки подпрограмм для вызова из программ на языке высокого уровня

29

Использования стандартных объектно-ориентированных библиотек для разработки собственных приложений

4. СОДЕРЖАНИЕ УЧЕБНОЙ ДИСЦИПЛИНЫ

Учебным планом по дисциплине «Программирование» предусматривается проведение лекционных занятий в объеме 2 часа (у. л. в 6 семестре), самостоятельное изучение разделов (табл.4) и проведение семинарских занятий в объеме 24 часа (12 часов 5 семестр, 12 часа 6 семестр).

Таблица 4

Блок, модуль, раздел, тема лекционных занятий

Часы

Ссылка на цели

5 семестр

Общие сведения об архитектуре микропроцессора 8080. Шинная архитектура. Программно-доступные элементы. Распределение памяти, особенности адресации.

4

Синтаксис языка. Директивы, мнемоники, операции. Директивы задания данных. Директивы описания сегментов

2

Регистровый, непосредственный, прямой методы адресации. Косвенные методы адресации (косвенно-регистровая, по базе, с индексированием). Особенности использования сегментных регистров. Префикс замены сегмента

6

Команды пересылок. Арифметические команды. Команды сдвига и битовой логики

4

Команды безусловной и безусловной передачи управления. Регистр состояния процессора. Команды установки/очистки флагов. Организация циклов.

2

Правила оформления ассемблерной подпрограммы. Соглашения по связи Си и Ассемблера. Методы передачи параметров в ассемблерную подпрограмму

6

Директивы условной трансляции и их использование. Макросы. Подстановка параметров. Область применения.

2

Классификация прерываний. Таблица прерываний. Особенности обработки аппаратных прерываний. Структура подпрограммы обработки прерывания.

2

Общие правила обращения к подпрограммам BIOS и DOS. Основные функции и их использование.

2

Структура, особенности и использование TSR-программ

2

6 семестр

Парадигма программирования. Нисходящее программирование. Структурное и модульное программирование. Проектирование программных алгоритмов (основные принципы и подходы); классы алгоритмов; методы частных целей, подъемы ветвей и границ, эвристика; рекурсия и итерация; сортировка и поиск. Абстракция данных. Сложные структуры данных (списки, деревья, сети). Понятия объекта, класса объектов.

2

Расширение языка С. Синтаксис и семантика алгоритмического языка программирования. Прототипы функций. Перегрузка функций. Значения формальных параметров по умолчанию. Ссылки и параметры-ссылки. Объявления переменных. Встраиваемые функции. Операции new и delete.

3

Методы и средства объектно-ориентированного программирования. Основные понятия объектно-ориентированного программирования: инкапсуляция, наследование и полиморфизм. Функции-члены и данные-члены. Интерфейсы и реализация. Конструкторы и деструкторы. Инициализация и очистка. Конструктор без параметров (по умолчанию). Конструктор копирования. Указатель this. Статические и динамические данные. Статические члены: функции и данные. Указатели на члены. Структуры и объединения. Константные члены-функции и константные объекты.

3

Функции-друзья. Перегрузка бинарных и унарных операций. Перегруженные операции индексирования, вызова функций, инкремента и декремента префиксных и постфиксных, разадресации. Перегрузка new, delete. Преобразование типов, определяемых пользователем с помощью конструкторов и операций преобразования. Неявное преобразование типов. Друзья-функции и друзья-классы.

5

Наследование классов и производные классы. Конструкторы, деструкторы и наследование. Иерархия классов. Виртуальные функции. Полиморфизм. Абстрактные классы и чистые виртуальные функции. Множественное наследование. Виртуальные базовые классы. Контроль доступа.

3

Заголовочные файлы. Потоки ввода-вывода; файлы. Операции помещения и извлечения. Форматирование. Флаги форматирования. Манипуляторы. Ошибки потоков. Файловый ввод-вывод с применением потоков С++. Конструкторы файловых потоков. Открытие файлов в разных режимах. Ввод-вывод в файлы. Форматирование в памяти.

4

Типизация и структуризация программных данных. Шаблоны функций. Шаблоны классов. Параметры шаблонов. Наследование и шаблоны.

4

Обработка ошибок в стандартном С. Распознавание ситуаций. Использование assert, кодов возврата, сигналов, setjmp и longjmp. Использование set_new_handler(). Объектно-ориентированная обработка исключений. Применение try, catch, throw. Раскрутка стека. Стандартные исключения в С++. Работа с конструкторами и исключениями. Функции terminate(), unexpected().

2

Библиотека для организации ввода вывода в потоки (iostream, fstream). Библиотека контейнерных классов CLASSLIB в BORLAND C++. Библиотека шаблонов контейнеров в BORLAND C++. Стандарты на разработку прикладных программных средств.

6

Понятие программного обеспечения. Основные виды, этапы проектирования и жизненный цикл программных продуктов. Прикладное, системное, инструментальное программное обеспечение. Характеристики программ. Определение требований. Проблемы проектирования сложных программных средств. Слои конечного продукта. Параллельная разработка. Итерации при проектировании. Детализация требований. Уровни проектирования. Понятие технологии проектирования. Структурное проектирование программных средств. Верификация и тестирование. Документирование, сопровождение и эксплуатация программных средств. Руководство разработкой программных проектов. Время разработки программ. Разработка программных компонент. Взаимодействие модулей. Сложность и корректность программ. Программные ошибки. Комплексная отладка программ. Подготовка программы к эксплуатации. Усовершенствование программных продуктов. Эксплуатационная, операционная, торговая документация. Вопросы маркетинга программных средств.

4

ОПИСАНИЕ СЕМИНАРСКИХ ЗАНЯТИЙ

Таблица 5

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3