НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ МЕХАТРОН ИКИ И АВТОМАТИЗАЦИИ
КАФЕДРА ЭЛЕКТРОТЕХНИЧЕСКИХ КОМПЛЕКСОВ
УТВЕРЖДАЮ
Декан факультета
И.
“___ ”______________2011 г.
РАБОЧАЯ ПРОГРАММА учебной дисциплины
ПРОГРАММИРОВАНИЕ И ОСНОВЫ АЛГОРИТМИЗАЦИИ
ООП 220301 «Автоматизация технологических процессов и производств в нефтяной и газовой промышленности»
Факультет Мехатроники и автоматизации
Курс 2, семестр 3
Лекции 36 часа
Лабораторные работы 18 часа
Расчётно-графическое задание 3 семестр
Самостоятельная работа 66 часов
Экзамен в 3 семестре
Всего по учебному плану 120 часов
Новосибирск
2011
Рабочая программа составлена на основании Государственного образовательного стандарта высшего профессионального образования по направлению (специальности) 220301 Автоматизация технологических процессов и производств в нефтяной и газовой промышленности - инженерная подготовка.
Рег. № 000 – тех ДС, утв. 28.02.2001 г.
ОПД. Ф.08 – федеральный
Рабочая программа обсуждена на заседании кафедры электротехнических комплексов, протокол № от « » июля 2011г.
Программу разработал
профессор кафедры Электротеханических комплексов,
к. т.н., доцент М.
Заведующий кафедрой Электромеханических систем,
доктор техн. наук, профессор И.
Ответственный за основную
профессор кафедры Электромеханических систем,
к. т.н., доцент М.
1. Внешние требования
ОПД. Ф.08 | Программирование и основы алгоритмизации: ОПД. Ф.08 основные виды, этапы проектирования и жизненный цикл программных продуктов; синтаксис и семантика алгоритмического языка программирования; структурное и модульное программирование; типизация и структуризация программных данных; статические и динамические данные; сложные структуры данных (списки, деревья, сети); потоки ввода-вывода; файлы; проектирование программных алгоритмов (основные принципы и подходы); классы алгоритмов; методы частных целей, подъемы ветвей и границ, эвристика; рекурсия и итерация; сортировка и поиск; методы и средства объектно-ориентированного программирования; стандарты на разработку прикладных программных средств; документирование, сопровождение и эксплуатация программных средств. | 120 |
2. Особенности (принципы) построения дисциплины
Программа курса соответствует требованиям ГОС по направлению 220301 «Автоматизация технологических процессов и производств в нефтяной и газовой промышленности».
Курс имеет прикладную направленность. Знания и умения студентами приобретаются при изучении курса и решении задач непосредственно связанных с технологией процессов и функционированием производств в нефтяной и газовой промышленности».
Предметом изучения дисциплины являются теоретические и практические основы современных технологий программирования на языке высокого уровня, методов построения алгоритмов и структур данных, используемых при решении прикладных задач в области автоматизации устройств и технологий
3. Цели учебной дисциплины
.Курс «Программирование и основы алгоритмизации» является базовой дисциплиной общей профессиональной подготовки бакалавров в университете для вышеуказанного направления обучения.
Предметом изучения дисциплины являются теоретические и практические основы современных технологий программирования на языке высокого уровня, методов построения алгоритмов и структур данных, используемых при решении прикладных задач в области автоматизации устройств и технологий нефте газовой промышленности..
Целью преподавания дисциплины является приобретение студентами знаний и навыков в области разработки прикладных программ, технических средств обработки информации, системного применения средств информационной технологии для решения прикладных инженерных задач.
Курс имеет прикладную направленность. Знания и умения студентами приобретаются при изучении курса и решении задач непосредственно связанных с технологией процессов и функционированием производств в нефтяной и газовой промышленности».
Цели изучения дисциплины. Студенты должны
знать:
¨ базовые понятия теории алгоритмов;
¨ технологию разработки профессиональных программ (алгоритмизацию);
¨ Один – два рабочих языка объектно-ориентированного программирования;
¨ основные виды программного обеспечения современных ЭВМ для объектно-ориентированного программирования;
¨ методику объектно-ориентированного анализа и проектирования.
уметь:
¨ пользоваться современными аппаратными средствами;
¨ согласованно решать задачи разработки эффективных моделей данных и алгоритмов их обработки при создании прикладного программного обеспечения, а также получать программные реализации на языках высокого уровня;
¨ Работать с инструментальной системой программирования Microsoft Visual ;
иметь опыт:
¨ разработки алгоритмов и программ решения прикладных задач на языке высокого уровня в среде объектно-ориентированного программирования.
иметь представление:
¨ о тенденциях и направлениях развития современных технологий программирования и обработки данных.
4. Содержание и структура учебной дисциплины
4.1. Виды учебной работы
Вид учебной работы | Объем работ студента (час.) | Семестры | |||
ГОС – 200 | I | II | III | IV | |
1 | 2 | 3 | |||
Общая трудоемкость дисциплины | 200 | 120 | |||
Аудиторные занятия | 68 | 68 | |||
Лекции | 34 | 346 | |||
Практические занятия (ПЗ) | – | – | |||
Семинары (С) | – | – | |||
Лабораторные работы (ЛР) | 34 | 18 | |||
Другие виды аудиторных занятий | – | – | |||
Самостоятельная работа: | 52 | 66 | |||
Курсовой проект (работа) | – | – | |||
Расчетно-графические работы | 1 | 1 | |||
Реферат | – | – | |||
Другие виды самостоятельной работы | – | – | |||
Вид итогового контроля: | |||||
Зачет | – | – | |||
Экзамен | 1 экзамен | экз |
4.2. Содержание модулей дисциплины и виды занятий
№ п/п | Названия модулей, темы | Предусматриваемые виды занятий | ||
Лекции | ЛР | С Р | ||
1 | 2 | 3 | 4 | 5 |
1 | 1. основные виды, этапы проектирования и жизненный цикл программных продуктов Порядок решения инженерной задачи с помощью ЭВМ. Математическая модель. Методы решения задач. Спецификация алгоритма. Жизненный цикл программных продуктов | 6 | 4 | 22 |
2 | программирования; структурное и модульное программирование Языки программирования, их свойства. синтаксис и семантика алгоритмического языка Алгоритм, алгоритмизация | 6 | 6 | 16 |
3 | типизация и структуризация программных данных, статические и динамические данные; сложные структуры данных (списки, деревья, сети);. статические и динамические данные; сложные структуры данных (списки, деревья, сети);. | 12 | 4 | 14 |
4 | потоки ввода-вывода; файлы; проектирование программных алгоритмов (основные принципы и подходы); классы алгоритмов; методы частных целей, подъемы ветвей и границ, эвристика; рекурсия и итерация; сортировка и поиск Способы описания алгоритмов. Алгоритмы численных методов. Алгоритмизация простейших задач классы алгоритмов; методы частных целей, подъемы ветвей и границ, эвристика;. | |||
5 | методы и средства объектно-ориентированного программирования; стандарты на разработку прикладных программных средств; документирование, сопровождение и эксплуатация программных средств. История и современные тенденции объектно-ориентированного подхода в программирования. Специфика проектирования прикладного программного обеспечения с использованием объектных модулей. Метод частных целей. Метод подъёма. Программирование с отходом назад. Алгоритмы ветвей и границ | 12 | 4 | 14 |
4.3. Лекции
№ п/п | Названия лекций и их краткое содержание | Количество часов |
1. | М1. Порядок решения технической задачи с помощью ЭВМ. Постановка задачи. Математическая формулировка задачи. Математическая модель. | 2 |
2. | М1. Методы решения задачи: графические, аналитические, численные. Оценка результатов постановки задачи, создания математической модели и выбор метода решения. Понятие погрешности, источники погрешности. Действия над приближенными числами. Погрешность вычислений. Способы уменьшения погрешностей. Вычислительные алгоритмы. | 4 |
3 | М2. Языки программирования, их свойства. синтаксис и семантика алгоритмического языка программирования; структурное и модульное программирование | 2 |
4 | М3. Статические и динамические данные; сложные структуры данных (списки, деревья, сети | 2 |
4. | М 3. Языки программирования: автокоды, ассемблеры, машинно-независимые языки (ЯВУ). Процедурно - и проблемно-ориентированные системы программирования. Общие свойства ЯВУ: алфавит, синтаксис, семантика. Операторы, идентификаторы, процедуры. Ввод-вывод. | 2 |
5 | М3. Типы данных. Константы и переменные. Область видимости и время жизни переменных. Арифметические и логические операции и выражения. Стандартные функции. Операторы языка: операторы присваивания, управления, ввода и вывода информации, процедуры. Условный оператор. | 2 |
6 | М3. Операторы для организации цикла. Оператор цикла с предусловием. Оператор цикла с постусловием. Оператор цикла с параметром. Вложенные циклы. Операторы завершения и продолжения цикла. Оператор безусловного перехода Массивы. Понятие массива. Описание массива. Многомерные массивы. Ввод и вывод одномерных и двумерных массивов. Примеры работы с массивами | 2 |
7 | М3. Стили программирования Логическое программирование, функциональное, объектно-ориентированные системы визуального программирования | 2 |
8 | М3.. Статические и динамические типы данных. Механизмы выделения, перераспределения и очистки динамической памяти. Функции, поддерживающие основные операции с динамической памятью. Динамические структуры данных. Линейные списки, стеки, очереди, бинарные деревья | 2 |
9 | М4. Основные концепции объектно-ориентированного программирования. История и современные тенденции объектно-ориентированного подхода в программирования. Специфика проектирования прикладного программного обеспечения с использованием объектных модулей. Метод частных целей. Метод подъёма. Программирование с отходом назад. Алгоритмы ветвей и границ | 2 |
10 | М4. Введение в С++, системные и технические требования. Идеология языка. Основы С++. Устойчивые конструкции и составные операторы. Процедуры (функции. Модули-объекты. Библиотеки функций и классов. Построение исполняемого файла | 2 |
11 | М4. Состав языка. Операторы и выражения. Операции. Указатели Функции. Передача параметров. Командная строка. Стандартный ввод/вывод.
| 2 |
12 | М5. Работа с файлами. Обзор библиотечных функций С для работы с файлами. Потоковые функции | 2 |
13 | М5. Структуры и динамическая память. Область видимости и время жизни объектов. Основные стандартные библиотеки С. Рекурсивные алгоритмы на С++. Рекурсивные структуры данных: Списки, деревья | 2 |
14 | М5. Основные понятия объектно-ориентированного подхода два аспекта: объектно-ориентированная разработка программного обеспечения; объектно-ориентированная реализация программного обеспечения | 2 |
15 | М5. Технология объектно-ориентированного проектирования программ Объекты и классы, Операции и методы. Структуры и динамическая память. Статическое и динамическое распределение памяти. Область видимости и время жизни объектов. | 4 |
16 | М5. Стандартные библиотеки | 2 |
17 | М5. Стандарты на разработку прикладных программных средств; документирование, сопровождение и эксплуатация программных средств. | 2 |
ИТОГО | 36 |
4.4. Лабораторный практикум
№ п/п | Названия модулей | Наименование лабораторных работ | Количество часов |
1 | М1. Основные виды, этапы проектирова - ния и жизненный цикл программных продуктов | Основы работы в интегрированной среде программирования. Выполнение этапов вычислительного эксперимента для готовой программы. Работа с отладчиком. Программирование простейших задач с использованием линейных структур | 2 |
2 | М2. Синтаксис и семантика алгорит - мического языка программирования; структурное и модульное программирование; | Программирование простейших задач с использованием структур ветвления. Оператор IF. | 2 |
3 | М3. Типизация и структуризация программных данных, статические и динамические данные; сложные структуры данных (списки, деревья, сети); | Программирование задач с использованием циклов ДО и ПОКА, связанных с обработкой одномерных массивов. Вложенные циклы. | 2 |
4 | М3. | Контрольная работа №1 | 2 |
5 | М3. Типизация и структуризация программных данных, статические и динамические данные; сложные структуры данных (списки, деревья, сети); | Программирование задач, связанных с использованием функций и процедур. Работа с внешними файлами. | 2 |
6 | М3. | Программирование задач, связанных с использованием двумерных массивов. Работа с внешними файлами. | 2 |
7 | М3 | Программирование задач с использованием нескольких программных модулей. Основные способы передачи данных между модулями Контрольная работа №2 | 2 |
8 | М4 оды и средс - тва объектно-ориентирован-ного програм- мирования; | Реализация алгоритмов линейных, разветвляющихся, циклических и итерационных структур на языке | 2 |
9 | М5. Методы и средства объектно-ориентиро - ванного программи - рования; стандарты на разработку прик - ладных рограммных средств; документи - рование, сопровож - дение и эксплуата - ция программных средств. | Строковые данные. Подпрограммы-функции на языке. Строковые массивы. Подпрограммы-процедуры на языке Ввод/вывод в файлы на языке | 2 |
Итоговое занятие. | |||
ИТОГО | 18 |
5. Учебная деятельность
Варианты заданий на РГР и образцы выполнения приведены в приложении к программе и в учебном пособии.
6. Правила аттестации студентов по учебной дисциплине
6.1. Общие требования по изучению дисциплины
В ходе изучения дисциплины студент должен вести:
- запись лекций и краткий конспект материалов из изученных литературных и Интернет - источников;
- рабочую тетрадь по лабораторным занятиям с записью задач, алгоритмов и методов их решений, других материалов, использованных при подготовке к занятиям;
- отчёты по лабораторным работам.
Формы отчётов по лабораторным работам должна соответствовать методическим указаниям.
Защита каждой лабораторной работы осуществляется перед выполнением последующей. При отсутствии защиты двух предыдущих работ студент к выполнению следующей не допускается. Пропущенные лабораторные работы отрабатываются в конце семестра в дополнительное время.
Расчётно-графическая работа оформляется в соответствии с методическими указаниями. Задание на РГР выдаётся не позднее 4-ой недели семестра, защита осуществляется на 15-17 неделе.
Указанная выше документация предоставляется по требованию преподавателя при рейтинговой оценке и зачёте. Текущая документация предъявляется студентом на итоговый экзамен.
6.2. Для аттестации студентов используется 100-бальная рейтинговая система, приведённая в таблице.
Третий семестр - экзамен
К-во баллов | Теоретический цикл (помодульно за контрольные работы)) | Лабораторные и контрольные работы по циклам | Курсовая работа | Экзамен | ||||||||
1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | |||
5-8 | 5-8 | 5-8 | 5-8 | 5-8 | 3-4 | 3-4 | 3-4 | 3-4 | 3-4 | 15-20 | 20 | |
Итого: 40+20 +20+ 20 = 100 |
Минимальный балл соответствует нижнему уровню оценок, максимальный - верхнему.
Минимальный балл для допуска к экзамену 25+15+15=55
Срок сдачи Курсовой работы 14 неделя, защита до 17 недели включительно. Экзамен по расписанию.
Выполненные в течение семестра лабораторные работы должны быть защищены до 17 учебной недели включительно. Студент, не защитивший Курсовую работу и лабораторные работы, а так же не получивший зачёты по модулям за теоретический цикл не допускается к сдаче зачёта в первом семестре и к экзамену во втором семестре.
. При защите РГР на 10…16 неделе максимальная оценка – 20 баллов, на 17- 18 баллов на 18 – 10 баллов, далее – 0 баллов.
Максимальная оценка лабораторной работы выставляется при условии защиты её в день выполнения. При защите в течение последующей недели максимальная оценка не более 3 баллов, в течение 2-ой – 2 балла, … на последней неделе семестра – 0 баллов. Аналогично снижается балл за лабораторные и контрольные работы в случае их пропуска по не уважительной причине и защите на 18 неделе - 1 балл. После 18 недели0 баллов.
Студент, набравший в течение семестра более 70 баллов, может (по его желанию) получить экзамен-автомат в соответствии градацией рейтинговой системы при условии выполнения всех лабораторных работ и Курсового задания и выполнении тестов FEPO на 16 неделе.
В целях повышения семестрового рейтинга студент может выполнить дополнительно индивидуальное задание на согласованную с преподавателем тему. Максимальная оценка РГР и индивидуального задания – 25 баллов.
6.3. Общие требования по изучению дисциплины
В ходе изучения дисциплины студент должен вести:
- запись лекций и краткий конспект материалов из изученных литературных и Интернет - источников;
- рабочую тетрадь по лабораторным занятиям с записью задач, алгоритмов и методов их решений, других материалов, использованных при подготовке к занятиям;
- отчёты по лабораторным работам.
Формы отчётов по лабораторным работам должна соответствовать методическим указаниям.
Защита каждой лабораторной работы осуществляется перед выполнением последующей. При отсутствии защиты двух предыдущих работ студент к выполнению следующей не допускается. Пропущенные лабораторные работы отрабатываются в конце семестра в дополнительное время.
Расчётно-графическая работа оформляется в соответствии с методическими указаниями. Задание на РГР выдаётся не позднее 4-ой недели семестра, защита осуществляется на 15-17 неделе.
Указанная выше документация предоставляется по требованию преподавателя при рейтинговой оценке и зачёте. Текущая документация предъявляется студентом на итоговый экзамен.
7. Список литературы
7.1. основная литература:
1.Информатика. Базовый курс: учебное пособие для втузов / под ред. С. В. Симоновича. СПб. [и др.] : Питер, 2007.639 с
2. Хабибуллин, Программирование на языке высокого уровня C/C++ : учебное пособие для вузов по направлению 654600 "Информатика и вычислительная техника" / И. Ш. Хабибуллин. СПб : БХВ-Петербург, 2006
7.2. дополнительная литература:
3. М. Программирование и основы информатики : учебное пособие для 1-4 курсов ФАЭМС дневной и заочной форм обучения / С. М. Кузнецов ; Новосиб. гос. техн. ун-т, Новосибирск : Изд-во НГТУ, 1994.
4. М. Программирование и основы алгоритмизации : учебное пособие для специальностей 220301, 140609, 140606 и 657900 дневной и заочной форм обучения / С. М. Кузнецов, Б. В. Малоземов ; Новосиб. гос. техн. ун-т.Новосибирск : Изд-во НГТУ, 2006.199 с.
5. Романов, Е. Л. Практикум по программированию на С++ : [учебное пособие] / Е. Л. Романов ; Новосиб. гос. техн. ун-т.СПб. : БХВ-Петербург ; Новосибирск : Изд-во НГТУ, 2004. 426с.
8. Вопросы итогового контроля
1. Стандартное (ГОСТ 19.781-74) определение понятия алгоритма. Свойства алгоритма. Что понимается под алгоритмизацией?
2. Изобразительные средства описания алгоритмов и их характеристики.
3. Правила создания блок-схем алгоритмов.
4. Описание основных управляющих конструкций (структур).
5. В чем основное отличие операционной системы Windows от большинства ранее существовавших?
6. Опишите историю возникновения и развития языка Basic.
7. Назовите область применения языка Visual Basic.
8. В каких версиях существует Visual Basic 6.0 и каковы их особенности?
9. Опишите системные и технические требования, которые необходимо соблюсти для правильной работы системы Visual Basic и Visual Basic-приложений
10. Что в операционной системе Windows понимается под окном, событием?
11. Какую основную цель преследовали разработчики Visual Basic?
12. Назовите наиболее перспективные языки программирования; приведите статистические данные, подтверждающие их популярность.
13. Средства языка VB, используемые для реализации структур выбора (ветвления).
14. Средства языка VB, используемые для реализации циклических структур.
15. Вложенные циклы и средства досрочного выхода из цикла.
16. Алгоритмизация вычисления сумм с известным числом слагаемых
17. Алгоритм вычисления асимптотического значения сходящегося ряда чисел.
18. Алгоритм вычисления суммы членов бесконечного ряда.
19. Алгоритмы сортировки.
23. Дайте сравнение процедурного и событийного программирования.
24. Опишите понятие "интерактивная разработка"? Опишите ее проявления в среде программирования Visual Basic? В чем ее преимущества?
25. Что понимается под компиляцией, трансляцией, тестированием?
26. Что понимается под интегрированной средой обработки?
27. Как в VB начать создание нового проекта? Опишите порядок сохранения файла.
Элементы IDE.
1. Что такое контекстное меню? Как оно получается? В чем его преимущество?
2. Для чего предназначено основное меню? В чем его преимущества и недостатки?
3. Что такое панели инструментов? Их назначение, преимущества и недостатки. Подключение, отключение, перемещение панелей инструментов.
4. Панель элементов управления: назначение, способы изменения содержимого.
5. Окно проекта: состав, что такое проект?
6. Окно свойств: Назначение, состав.
7. Окно обзора объектов: порядок вызова, назначение, использование.
8. Дизайнер формы: внешний вид, назначение.
9. Редактор кода: назначение, связь с формами.
10. Окно компоновки формы: местоположение, назначение.
11. Перечислите основные шаги, выполняемые программистом при создании приложения на VB.
12. Опишите порядок помещения элемента управления на форму. Опишите способы изменения его размеров, перемещения закрепления и удаления.
13. Опишите содержимое окна Properties, а также порядок изменения свойств формы и элементов управления.
14. Опишите порядок ввода кодов процедур обработки событий (команды описывать не надо). Как заставить VB высвечивать коды всех процедур и код только одной нужной процедуры? Где можно увидеть список имеющихся в приложении процедур?
15. Опишите способы запуска приложения.
16. Опишите порядок добавления нужных элементов управления в панель элементов управления.
8. Пример заданий на РГР
В соответствии с учебным планом по данной дисциплине каждый студент
должен выполнить в третьем семестре одну расчётно-графическую работу. РГЗ состоит из пяти задач, которые выбираются из приведенного перечня
по табл. у препод. Номера задач указаны в таблице по значению последней цифры
шифра студента.
Задачи РГР (пример)
1. Составить блок - схему алгоритма и программу вычисления длины
окружности и площади круга.
2. Составить блок - схему алгоритма и программу вычисления функции
Y = EXP(-2X) при X > 0 и Y = EXP(2X) при X < 0.
3. Составить блок - схему алгоритма и программу вычисления вещественных
корней квадратного уравнения AX*X + BX + C = 0.
4. Составить блок - схему алгоритма и программу вычисления функции
Y = SQRT(X*X + 3) + LOG10( ABS(X - 2.3)) при X>= 3 и Y = ((X*X + 3)^2 +
LOG10( ABS(X - 2.3)) при X < 3.
5. Составить блок - схему алгоритма и программу вычисления функции Y =
X^2/(A + B) при изменении X от 1 до 10 с шагом 2 .
Основные порталы (построено редакторами)
