Основы программирования (С) (РП, ПИН, 2015) v16_12_2015

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ЮГОРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
УТВЕРЖДАЮ
Директор Института (НОЦ)
систем управления и
информационных технологий
____________ Тей Д.О.
"_____"__________________20__ г.
Рабочая программа дисциплины (модуля)
Основы программирования (С)
Базовая часть Б1. Б.15
09.03.04 Программная инженерия
Форма обучения
Очная
Квалификация (степень) выпускника
бакалавр
Год набора 2015
Виды занятий
Лекции
Практические (семинарские) занятия
Лабораторные работы
Самостоятельная работа
Домашние задания
Промежуточный контроль
Курсовой (ая) проект/работа
Итого:
Итоговый контроль:
всего
20
40
120
Объём занятий, час
2
семестр семестр
семестр
20
Заочная
форма
обучения
40
120
экзамен
Документ:
Дата разработки:
Дата изменений:
Номер и дата регистрации в УУ:
№__________от_________________
№__________от_________________
№__________от_________________
Ханты-Мансийск
2015 год
Рабочая программа учебной дисциплины
Предисловие
1. Программа разработана в соответствии с требованиями Федерального закона от
27.12.2012г.
№
273-ФЗ
«Об
образовании
в
Российской
Федерации»,
Приказом Минобрнауки России от 19 декабря 2013 г. №1367 «Об утверждении порядка
организации осуществления образовательной деятельности по образовательным программам
высшего образования – программам бакалавриата, программам специалитета, программам
магистратуры»,
Федерального
государственного
образовательного
стандарта
высшего
образования
(ФГОС
ВО)
по
направлению
подготовки/ специальности09.03.04.62 «Программная инженерия», утвержденного 12.03.2015г
№ 229 и с учетом рекомендаций примерной основной образовательной программы ВО.
ОДОБРЕНА на заседании обеспечивающей кафедры Компьютерного моделирования и
информационных технологий протокол № _____ от ___________________.
(дата)
2. Разработчик (и)
к.ф.-м.н.,
__________________________
В.В. Бурлуцкий
(подпись)
3. Зав. обеспечивающей кафедрой
Доцент, к.ф.-м.н.,
__________________________
С.П. Семенов
4. Рабочая программа СОГЛАСОВАНА с выпускающей(-ими) кафедрой(-ами)
направлений подготовки/специальности; СООТВЕТСТВУЕТ ФГОС ВО по направлению
подготовки/специальности, действующему учебному плану.
Зав. выпускающей кафедрой направления подготовки/специальности09.03.04.62 «Программная
инженерия»
Доцент, к.ф.-м.н.,
__________________________
С.П. Семенов
5.
Рабочая программа СОГЛАСОВАНА, информационное обеспечение учебной
дисциплины соответствует Требованиям к условиям реализации основных образовательных
программ
Директор Научной библиотеки
_________________________ И.Е. Кузнецова
1. Цели освоения дисциплины
Целью данной дисциплины является введение в проблематику, связанную с изучением
языков программирования, методов разработки алгоритмов и программ и методов реализации
языков программирования.
2.
Место дисциплины в структуре ООП
Дисциплина «Основы программирования (С)» относится к базовой части блока Б1 учебного
плана.
Перечень предшествующих и последующих дисциплин, формирующих общекультурные
и профессиональные компетенции (перечень и виды компетенций определяются ФГОС ВО)
Таблица 1
Последующие дисциплины
(группы дисциплин)
№
Наименование
Предшествующие дисциплины
п/п
компетенции
Общекультурные компетенции
ОК- 5
Теория формальных языков,
Профессиональные компетенции
ПК-1, 21
Основы программирования
(Delphi),
Структуры и алгоритмы
обработки данных
Алгебра и геометрия
Базы данных,
Дискретная математика
ОПК-1,3,4
Основы программирования
(Delphi),
Основы программирования
(Web-программирование),
и другие компетенции предусмотренные ФГОС ВО
3. Компетенции обучающегося, формируемые в результате освоения дисциплины
(модуля).
Коды компетенций, формируемых у обучающегося в процессе изучения дисциплины:
ОК 5, ПК-1, ПК-21, ОПК-1,3,4
Таблица 2
Перечень планируемых результатов обучения по дисциплине
Планируемые результаты освоения
ООП (компетенции), достижение
которых обеспечивает дисциплина
Коды
Содержание
компетенции
компетенций
ОК-5
ОПК-1
ОПК-3
ОПК-4
ПК-1
ПК-21
способностью
к
коммуникации в устной
и письменной формах
на
русском
и
иностранном
языках
для решения задач
межличностного
и
межкультурного
взаимодействия;
владением основными
концепциями,
принципами, теориями
и фактами, связанными
с информатикой;
готовностью применять
основы информатики и
программирования
к
проектированию,
конструированию
и
тестированию
программных
продуктов;
способностью
осуществлять
поиск,
хранение, обработку и
анализ информации из
различных источников
и
баз
данных,
представлять
ее
в
требуемом формате с
использованием
информационных,
компьютерных
и
сетевых технологий .
готовностью применять
основные методы и
инструменты
разработки
программного
обеспечения;
владением навыками
чтения, понимания и
выделения
главной
идеи
прочитанного
исходного
кода,
документации;
Перечень планируемых результатов обучения по
дисциплине
знать: теорию межличностного и межкультурного
взаимодействия;
уметь: использовать методы коммуникации в устной и
письменной формах на русском и иностранном языках
для решения задач межличностного и межкультурного
взаимодействия;
владеть: приемами коммуникации в устной и
письменной формах на русском и иностранном языках
для решения задач межличностного и межкультурного
взаимодействия;
знать: основные концепции, принципы, теории и
факты, связанными с информатикой;
уметь: использовать основные концепции, принципы,
теории и факты, связанными с информатикой ;
владеть: приемами решения задач по основным
концепциям информатики;
знать: основы информатики и программирования к
проектированию, конструированию и тестированию
программных продуктов ;
уметь: использовать методы проектирования,
конструирования и тестирования программных
продуктов ;
владеть: приемами проектирования, конструирования
и тестирования программных продуктов;
знать: теорию поиска, хранения, обработки и анализа
информации из различных источников и баз данных;
уметь: использовать методы теории поиска, хранения,
обработки и анализа информации из различных
источников и баз данных ;
владеть: приемами поиска, хранения, обработки и
анализа информации из различных источников и баз
данных;
знать: теорию разработки программного обеспечения;
уметь: использовать методы и инструменты
разработки программного обеспечения;
владеть: приемами применять основные инструменты
разработки программного обеспечения;
знать: теорию стандартизации исходного кода,
документации;
уметь: использовать методы стандартизации
исходного кода, документации;
владеть: навыками чтения, понимания и выделения
главной идеи прочитанного исходного кода;
4.
Структура и содержание дисциплины (модуля).
4.1. Структура дисциплины
Общая трудоемкость дисциплины составляет 6 зачетных единиц 180 часа.
Таблица 3
Объём дисциплины по видам учебных занятий
Вид учебной работы
Лекции
Практические (ПЗ)
Лабораторные работы (ЛР)
Самостоятельная работа (всего)
В том числе:
Курсовой проект (работа)
Расчетно-графические работы
Реферат
Другие виды самостоятельной работы
Коллоквиум
Вид промежуточной аттестации (зачет,
экзамен (час.))
ИТОГО:
час.
Зач. Ед.
Всего часов
20
Контактная
работа
20
40
120
40
Семестр
2
20
40
120
экзамен
экзамен
2
1
180
6
180
6
180
6
4.2 Содержание теоретического раздела дисциплины (модуля)
Таблица 4
Лекции
№
п/п
1
2
3
Наименование и краткое содержание
Основные понятия программирования
История развития языка программирования С/C++. Парадигмы
языков программирования. С как язык программирования. Среда
разработки Visual Studio.
Лексические основы языка программирования C/C++.
Общие сведения о структуре языка программирования. Понятия
синтаксиса и семантики языка. Лексемы языка. Стандарт
оформления кода. Понятие типа данных. Понятие переменной.
Понятие программного объекта. Основные типы данных.
Операции. Выражения и операторы. Оператор присваивания.
Ввод-вывод данных.
Управляющие конструкции
Базовые управляющие конструкции: цепочки, ветвления, циклы.
Синтез алгоритмов на основе базовых конструкций.
Конструкции языка C/C++, реализующие базовые структуры:
Трудоемкость,
часов
2
2
2
составная конструкция (блок операторов), условная конструкция,
конструкция выбора (переключатель), конструкции цикла.
Структуры данных
4
Массивы. Строки. Основные алгоритмы обработки массивов и
строк. Структуры данных. Сруктуры. Перечисления. Основные
алгоритмы обработки.
2
Списки. Алгоритмы обработки списков.
Коллоквиум
2
Основы модульного программирования
5
Принцип модульности программы. Понятие подпрограммы.
Процедуры и функции в C. Область действия функции.
Возвращаемое значение. Параметры функций. Рекурсивные
функции. Прототипы функций.
2
Файлы
6
Файловый ввод-вывод в C/С++. Потоки и файлы. Основы
файловой системы. Указатель файла. Открытие файла. Закрытие
файла. Запись символа, чтение символа. Стирание файлов.
Дозапись в поток. Ввод-вывод при прямом доступе. Стандартные
потоки.
2
Основы объектно-ориентированного программирования.
7
Понятия инкапсуляции, наследования, полиморфизма. Классы и
объекты. Поля и методы класса. Конструкторы и деструкторы
классов. Возможности инициализации объектов. Копирующий
конструктор. Операции new и delete. Наследование, виды
наследования. Виртуальные методы. Абстрактные классы.
Множественное наследование. Шаблоны классов.
Коллоквиум
4
2
4.3 Содержание практического раздела дисциплины (модуля)
Таблица 5
Лабораторные работы
№
ЛР
№
раздела
1
1-3
Наименование и краткое содержание
лабораторных работ
Интегрированная среда
программирования VisualStudio.Основы
алгоритмизации и программирования на
языке C/C++(условные конструкции,
Трудоемкость,
часов
10
Формы
отчетности
Отчет по
лабораторной
работе
циклы)
Основы работы в интегрированной среде
программирования VisualStudio. Этапы
разработки Windows-приложений в среде
VisualStudio. Графический инструментарий.
Типы данных, операции, преобразование
типов. Ввод-вывод. Случайные числа.
Библиотечные функции. Условные
конструкции. Мультиветвление.
Операторы цикла.
2
1-4
Основы алгоритмизации и
программирования на языке C/C++
(массивы, строки)
Массивы. Одномерные и двумерные
массивы. Алгоритмы обработки массивов.
10
Отчет по
лабораторной
работе
10
Отчет по
лабораторной
работе
10
Отчет по
лабораторной
работе
Алгоритмы обработки строк.
Основы алгоритмизации и
программирования на языке C/C++
(подпрограммы, файлы, структуры)
3
4-6
Подпрограммы. Файлы. Работа с текстовой
информацией. Строки. Функции обработки
строк.
Работа с файлами. Структуры.
Основы алгоритмизации и
программирования на языке C/C++
(Списки.Рекурсия)
4
5-6
Динамические структуры данных. Списки.
Стек. Очередь. Дерево. Алгоритмы
обработки списков. Рекурсия.
Практические или семинарские занятия
Программой не предусмотрены
Таблица7
Организованная самостоятельная работа
№
раздела
Вопросы, выносимые на самостоятельное
изучение
Трудоемкость,
часов
1-3
Среда разработки Visual Studio
30
1-5
Основные компоненты Visual Studio
30
4
4
Диалоговые компоненты работы с файлами
Алгоритмы обработки динамических структур
данных
30
30
Формы
отчетности
Раздел в
отчете по
лабораторной
работе
Раздел в
отчете по
лабораторной
работе
Раздел в
отчете по
лабораторной
работе
Раздел в
отчете по
лабораторной
работе
5. Образовательные технологии, используемые при различных видах учебной
работы
При проведении курса используется модуль-рейтинговая система. Количество
начисляемых баллов за лабораторные работы, коллоквиум и контрольные работы
пропорциональны сумме часов, предусмотренных на изучение соответствуещей темы
или раздела.
Таблица 8
Интерактивные формы занятий
Вид занятия
Лабораторная
работа
Лабораторная
работа
Лабораторная
работа
Лабораторная
работа
Лекция
Лекция
Тема
1
2
3
4
1-4
5-7
Интерактивные формы проведения
Групповое обсуждение отчетов по
лабораторной работе
Групповое обсуждение отчетов по
лабораторной работе
Групповое обсуждение отчетов по
лабораторной работе
Групповое обсуждение отчетов по
лабораторной работе
Коллоквиум
Коллоквиум
Кол-во часов
2
2
2
2
2
2
6. Учебно-методическое обеспечение самостоятельной работы студентов.
Оценочные средства для текущего контроля успеваемости, промежуточной аттестации
по итогам освоения дисциплины.
6.1. Перечень оценочных средств для текущего контроля освоения дисциплины
Текущая аттестация студентов производится в дискретные временные интервалы
лектором и преподавателем (ями), ведущими лабораторные работы по дисциплине в
следующих формах:
•
выполнение лабораторных работ;
•
защита отчетов по лабораторным работам;
•
коллоквиум.
6.2. Состав фонда оценочных средств для проведения промежуточной аттестации
обучающихся по дисциплине
Промежуточная аттестация по результатам семестров по дисциплине проходит в форме
устного экзамена. Включает в себя ответ на теоретические вопросы и решения задачи.
Вопросы к экзамену
1. Язык С++. История развития. Стандарты языка.
2. Сравнительный анализ языков С++ и Паскаль.
3. Работа компилятора языка С++. Препроцессор. Директивы препроцессора.
4. Синтаксис языка С++. Алфавит. Лексемы. Ключевые слова.
5. Структура программы на языке С++.
6. Базовые типы данных. Явное и неявное приведение типов.
7. Работа с памятью. Классы памяти и область видимости. Пространство имен.
8. Исполняемые и неисполняемые операторы. Операторы описания идентификаторов.
9. Операции языка С++.
10. Пример программы вычисления площади треугольника по его сторонам (три целых числа из
файла)
11. Вывод данных в языке С++. Строка форматирования.
12. Ввод данных в языке С++.
13. Условные конструкции в языке С++.
14. Пример программы решения квадратного уравнения. Коэффициенты уравнения – заданные
в файле целые числа.
15. Циклы в языке С++.
16. Пример программы вычисления среднего арифметического для 10 заданных в файле целых
чисел.
17. Одномерный массив. Инициализация.
18. Пример программы сортировки числового массива «пузырьком».
19. Многомерный массив. Безразмерные массивы. Инициализация.
20. Пример программы сложения двух матриц размерности 4х4. Значения матриц
вещественные и инициализируются в теле программы. Результат выводится на экран в виде в
отформатированном виде.
21. Строки. Операции обработки строк. Пример программы подсчета количества слов в строке.
22. Функции в языке С++. Определение и основные характеристики.
23. Функции в языке С++. Формальные параметры. Типы формальных параметров.
24. Пример функции, вычисляющей расстояние между двумя заданными точками. Точки
заданы целыми координатами.
25. Рекурсивные функции в языке С++.
26. Работа с файлами в языке С++.
27. Потоковый ввод-вывод в языке С++.
28. Указатели. Понятие. Виды. Инициализация.
29. Операции с указателями.
30. Переименование типов. Перечисления.
31. Структуры.
32. Объединения.
Вопросы к коллоквиуму
1. Стандарты языка Си.
2. Особенности языка Си.
3. Алфавит Си.
4. Лексемы Си.
5. Препроцессор Си.
6. Ключевые слова Си.
7. Константы Си.
8. Базовые типы С89.
9. Модификаторы типов данных.
10. Неявное приведение типов.
11. Явное приведение типов.
12. Классы памяти.
13. Область видимости.
14. Пространство имен.
15. Оператор. Простой и составной оператор.
16. БНФ описания переменной.
17. Приоритеты операций.
18. Побитовые операции.
19. Операции инкремента и декремента.
20. Функции ввода данных.
21. Функции вывода данных.
22. Строка форматирования.
23. Спецификаторы формата функций ввода и вывода.
24. Виды циклов в Си.
25. БНФ оператора FOR.
26. БНФ оператора WHILE.
27. БНФ оператора DO WHILE.
28. Ветвления в Си.
29. БНФ оператора DO WHILE.
30. Понятие массива в Си. Массивы в оперативной памяти.
31. БНФ описания массива.
32. Инициализация массива.
33. Инициализация безразмерных массивов.
34. Строки в Си.
7.
Учебно-методическое и информационное обеспечение дисциплины (модуля)
7.1. Перечень основной и дополнительной учебной литературы
Таблица 9
Обеспечение дисциплины основной и дополнительной литературой по дисциплине
N
п/п
Автор
Название
Место издания
Наименование
Год
издательства издания
Базовый учебник
1
1
Орлов, Сергей
Теория и практика языков Санкт-Петербург Питер
Александрович. программирования [Текст] :
учебник по направлению
"Информатика
и
вычислительная техника" /
С. А. Орлов. - СанктПетербург [и др.] : Питер,
2014. Основная литература
Павловская,
C/C++. Программирование Санкт-Петербург Питер
Татьяна
на языке высокого уровня
Александровна. [Текст] : учеб. для
магистров, бакалавров и
студентов вузов,
обучающихся по
направлению подготовки
дипломированных
специалистов
"Информатика и
вычислительная техника" /
Т. А. Павловская. - СанктПетербург [и др.] : Питер,
2013. - 460 с. : табл., ил. (Учебник для вузов.
Стандарт третьего
поколения).
2014
2013
2
3
4
5
Головин, Игорь Языки и методы
Москва
Геннадьевич.
программирования [Текст] :
учебник для студентов
высший учебных
заведений, обучающихся по
направлениям 010400
"Прикладная математика и
информатика" и 010300
"Фундаментальная
информатика и
информационные
технологии" / И. Г.
Головин, И. А. Волкова. Москва : Академия, 2012
Иванова,
Технология
Москва
Галина
программирования [Текст] :
Сергеевна.
учебник для студентов
вузов, обучающихся по
направлению
"Информатика и
вычислительная техника" /
Г. С. Иванова. - 3-е изд.,
стер. - Москва : Кнорус,
2013.
Терехов,
Москва
Технология
Андрей
программирования [Текст] :
Николаевич
учеб.
пособие
по
специальностям
"Математическое
обеспечение
и
администрирование
информационных систем" 010503 / А. Н. Терехов. - 2-е
изд. - Москва : ИНТУИТ,
2011.
Академия
2012
Кнорус
2013
ИНТУИТ
2011
Н. И.
Парфилова [и
др.] ; под ред.
Б. Г. Трусова.
Академия
2012
Информатика и
Москва
программирование. Основы
информатики [Текст] :
учебник для студентов
высших учебных
заведений, обучающихся по
направлению подготовки
"Программная инженерия" /
Н. И. Парфилова [и др.] ;
под ред. Б. Г. Трусова. Москва : Академия, 2012. 247,
Дополнительная литература
Баженова, Ирина Юрьевна. Москва
Языки программирования
[Текст] : учеб.для студентов
учреждений высш. проф.
образования, обучающихся
по направлениям
"Фундаментальная
информатика и
информационные
технологии" и
"Информационная
безопасность" / И. Ю.
Баженова ; под ред. В. А.
Сухомлина. - Москва :
Академия, 2012. – 357
2
Баженова,
Ирина
Юрьевна.
Академия
2012
3
Головин, Игорь Головин, Игорь
Москва
Геннадьевич
Геннадьевич. Языки и
методы программирования
[Текст] : учебник для
студентов высший учебных
заведений, обучающихся по
направлениям 010400
"Прикладная математика и
информатика" и 010300
"Фундаментальная
информатика и
информационные
технологии" / И. Г.
Головин, И. А. Волкова. Москва : Академия, 2012. –
303
Академия
2012
4
Павловская,
Павловская, Татьяна
Санкт-Петербург Питер
Татьяна
Александровна. C/С++.
Александровна. Процедурное и объективноориентированное
программирование [Текст] :
учебник для студентов
высших учебных
заведений, обучающихся по
направлению подготовки
дипломированных
специалистов
"Информатика и
вычислительная техника" /
Т. А. Павловская. - СанктПетербург [и др.] : Питер,
2015. - 495
2015
5
Васильев,
Алексей
Николаевич.
6
Анашкина,
Наталия
Викторовна.
7
Баженова,
Ирина
Юрьевна.
Java. ОбъектноСанкт-Петербург Питер
ориентированное
программирование для
магистров и бакалавров
[Текст] : учебное пособие
для изучающих объектноориентированное
программирование в вузе /
А. Н. Васильев. - СанктПетербург [и др.] : Питер,
2013. - 395, [1] с. : рис. :
табл. - (Учебное пособие.
Стандарт третьего
поколения).
Технологии и методы
Москва
Академия
программирования [Текст] :
учеб. пособие для
студентов вузов,
обучающихся по
направлению подготовки
090900 "Информационная
безопасность" (уровеньбакалавр) и специальностям
090301 "Компьютерная
безопасность", 090303
"Информационная
безопасность
автоматизированных
систем" / Н. В. Анашкина,
Н. Н. Петухова, В. Ю.
Смольянинов. - Москва :
Академия, 2012. - 377, [1]
Языки программирования Москва
Академия
[Текст] : учеб. для
студентов учреждений
высш. проф. образования,
обучающихся по
направлениям
"Фундаментальная
информатика и
информационные
технологии" и
"Информационная
безопасность" / И. Ю.
Баженова ; под ред. В. А.
Сухомлина. - Москва :
Академия, 2012
2013
2012
2012
8
Лафоре,
Роберт.
9
Лафоре,
Роберт.
1.
2.
3.
4.
5.
Структуры данных и
Санкт-Петербург Питер
алгоритмы Java [Текст] :
[12+] / Р. Лафоре ; [пер. с
англ. Е. Матвеева]. - 2-е
изд. - Санкт-Петербург [и
др.] : Питер, 2014.
ОбъектноСанкт-Петербург Питер
ориентированное
программирование в С++
[Текст] / Р. Лафоре ; [пер. с
англ. А. Кузнецова, М.
Назарова, В. Шрага] =
Object-oriented programming
in C++ / R. Lafore : [12+]. 4-е изд. - Санкт-Петербург
[и др.] : Питер, 2014. - 923
с.
2014
2014
7.2. Перечень ресурсов информационно-телекоммуникационной сети «Интернет»
ЭБС «ZNANIUM.COM» URL: http://znanium.com (дата обращения: 31.08.2015).
Электронная библиотека издательства «Лань» URL:
http://e.lanbook.com
(дата
обращения: 31.08.2015).
Научная электронная библиотека elibrary.ru URL: http://elibrary.ru – (дата обращения:
31.08.2015).
Эдуард Александров, Виктор Афонин. Программирование на языке C в
MicrosoftVisualStudio 2010// «ИНТУИТ»: Национальный Открытый Университет 2014.
URL: http://www.intuit.ru/studies/courses/627/483/info (дата обращения: 31.08.2015).
Татьяна Павловская. Программирование на языке С++// «ИНТУИТ»: Национальный
Открытый Университет 2010. URL: http://www.intuit.ru/studies/courses/626/482/info (дата
обращения: 31.08.2015).
8.
Материально-техническое обеспечение дисциплины (модуля).
Таблица 10
Название
Лекции
Лабораторные
занятия
Мультимедийный проектор
1-7
1-4
Компьютер
1-7
1-4
оборудования
Самостоятельная работа
1-4
9.
Лист дополнений и изменений, внесенных в рабочую программу
Дополнения изменения в рабочей программе на 20__/20__ уч.г.
В рабочую программу вносятся следующие изменения:
1)_________________________________________________;
2)_________________________________________________;
3)_________________________________________________.
Изменения, внесенные в рабочую программу, ОДОБРЕНЫ на заседании обеспечивающей
кафедры «_________________» протокол № _____ от _________
(наименование кафедры)
(дата)
Разработчик(и)
_________________
(ученое звание, ученая степень)
_________________
(подпись)
_________________
(И. О. Фамилия)
_________________
(подпись)
_________________
(И. О. Фамилия)
Зав. обеспечивающей кафедрой
_________________
(ученое звание, ученая степень)
Зав. выпускающей кафедрой направления /специальности ___________________________
(код и наименование направления/специальности)
_________________
(ученое звание, ученая степень)
_________________
(подпись)
_________________
(И. О. Фамилия)
Рабочая программа СОГЛАСОВАНА, информационное обеспечение учебной дисциплины
соответствует Требованиям к условиям реализации основных образовательных программ
Директор Научной библиотеки
_________________
(подпись)
_________________
(И. О. Фамилия)
Download