МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГЕОДЕЗИИ И КАРТОГРАФИИ (МИИГАИК) УТВЕРЖДАЮ Ректор МИИГАиК _________________ А.А. Майоров «____»__________2015 г. Номер внутривузовской регистрации __________________ Рабочая программа дисциплины Информатика (ГФ) Направление подготовки 230400 Геодезия и дистанционное зондирование Квалификация (степень) выпускника Специалитет Форма обучения очная Москва 2015 1. Цели освоения дисциплины Курс «Информатика» знакомит студентов с современными методами программирования на языках высокого уровня С и С++ для решения различных инженерно-геодезических и организационных задач. Дисциплина «Информатика» является одной из базовых дисциплин инженерного цикла, посвященных программированию на языках высокого уровня. Дипломированные специалисты, занятые в области геодезии и дистанционного зондирования, должны обладать знаниями и практическими навыками по программированию вычислительных средств. В курсе излагаются сведения о языках программирования С и С++. Целью изучения курса «Информатика» является: подготовка студентов к деятельности, связанной с использованием вычислительной техники; формирование профессиональных компетенций, определяющих способность студента к использованию теоретических знаний и практических навыков при разработке, анализе и применении существующих программных средств, а также разработке или модификации программ для решения своих профессиональных задач. В результате изучения курса «Информатика» студент должен демонстрировать следующие результаты обучения: иметь представление о синтаксисе и грамматике языков программирования С/С++, их особенностях, различиях между собой и отличии от других языков программирования высокого уровня, а также области наиболее предпочтительного их использования; о современных средствах разработки программ на языках высокого уровня; технологиях программирования и методах анализа эффективности алгоритмов решения прикладных задач; знать правила написания программ на языках С и С++, их редактирования, отладки и тестирования, а также знать современные технологии проектирования, разработки структуры программы и разработки программного модуля, их тестирования и отладки; уметь формализовать поставленную задачу; выбирать необходимые инструментальные средства для разработки программ, уметь строить алгоритмы решения инженерно-геодезических и научно-исследовательских задач; составлять, тестировать, отлаживать и оформлять программы на языках высокого уровня С и С++, включая объектно-ориентированные программы 2. Место дисциплины в структуре ООП специалитета Учебная дисциплина «Информатика» входит в раздел «Б.3. Базовая часть» ФГОС ВПО по направлению подготовки «Информационные системы и технологии». Содержание дисциплины «Информатика» является логическим продолжением дисциплин «Технология программирования», «Математика» и служит основой освоения дисциплин «Архитектура информационных систем», «Методы и средства проектирования информационных систем и технологий», «Инструментальные средства информационных систем». 3. Компетенции обучающегося, формируемые в результате освоения дисциплины «Информатика» В результате освоения дисциплины «Информатика» обучающиеся должны достигнуть следующих результатов образования: Знать: основы языка программирования С/С++; методы отладки и компиляции программ в современных средах разработки программного обеспечения; современные средства разработки и анализа программ на языках высокого уровня; методы программирования и методы разработки эффективных алгоритмов решения прикладных задач; Уметь: формализовать поставленную задачу; выбрать необходимые инструментальные средства для разработки программ; строить алгоритмы решения инженерно-геодезических и научно-исследовательских задач; составлять, тестировать, отлаживать и оформлять программы на языках высокого уровня С и С++, включая объектно-ориентированные программы составлять, тестировать, отлаживать на языках высокого уровня, включая объектно-ориентированные; Владеть: основными подходами к организации процесса разработки программ на языках программирования С/С++. Процесс освоения дисциплины «Информатика» направлен на формирование следующих профессиональных компетенций: Код компетенц ии ОК - 1 ПК - 1 ПК - 2 ПК - 3 ПК - 4 ПК - 6 ПК - 7 ПК - 12 ПК - 15 ПК - 20 ПК - 23 ПК - 27 ПК - 30 ПК - 31 Наименование компетенции Владение культурой мышления, способность к обобщению, анализу, восприятию информации, постановке цели и выбору путей ее достижения, умение логически верно, аргументированно и ясно строить устную и письменную речь Способность проводить предпроектное обследование объекта проектирования, системный анализ предметной области, их взаимосвязей Способность проводить техническое проектирование Способность проводить рабочее проектирование Способность проводить выбор исходных данных для проектирования Способность оценивать надежность и качество функционирования объекта проектирования Способность осуществлять сертификацию проекта по стандартам качества Способность разрабатывать средства реализации информационных технологий Готовность участвовать в работах по доводке и освоению информационных технологий в ходе внедрения и эксплуатации информационных систем Способность организации работы малых коллективов исполнителей Способность проводить сбор, анализ научно-технической информации по тематике исследования Способность оформлять полученные рабочие результаты в виде презентаций, научно-технических отчетов, статей и докладов на научнотехнических конференциях Готовность проводить сборку информационной системы из готовых компонентов Способность к осуществлению инсталляции, отладки программных и ПК – 32 ПК - 34 ПК - 35 4. настройки технических средств для ввода информационных систем в промышленную эксплуатацию Способность поддерживать работоспособность информационных систем и технологий в заданных функциональных характеристиках и соответствии критериям качества Готовность адаптировать приложения к изменяющимся условиям функционирования Способность составления инструкций по эксплуатации информационных систем Структура и содержание дисциплины Общая трудоемкость дисциплины составляет 4,25 зачетных единиц, 142 часа. При реализации программы дисциплины «Информатика» в часы, отведенные для аудиторных занятий, занятия проводятся: в виде лекций (36 ч) в больших потоковых аудиториях, с использованием меловой доски; в виде лабораторных работ (124 ч) в компьютерном классе с использованием электронной интерактивной доски Polyvision; в виде самостоятельной работы студентов под руководством преподавателя по выполнению индивидуальных расчетно-графических работ. Формы контроля Рубежный контроль В течение двух семестров студенты, руководствуясь учебно-тематическим планом, выполняют лабораторные работы. Выполнение всех работ является обязательным для обучающихся. Студенты, не выполнившие в полном объёме лабораторные работы, не допускаются кафедрой к сдаче экзамена. Итоговый контроль по курсу Для контроля усвоения данной дисциплины учебным планом предусмотрен – экзамен. Оценка за экзамен является итоговой по дисциплине и проставляется в Приложении к диплому. Учебно-тематический план курса Семестр 1 № п/ п 1 1 Раздел ДИСЦИПЛИНЫ 2 Введение в языки программирования ВИДЫ АУДИТОРНОЙ РАБОТЫ (ЗАНЯТИЙ) СРС (ЧАС) (ЧАС) ЛЕКЦ Семи ПРАК ЛАБО ИИ нары ТИРА- 3 2 4 ЧЕСК ИЕ ТОРН ЫЕ 5 6 2 7 2 3 4 5 6 7 8 9 С/С++. Среда программирования Borland C++ Builder 6 Простейшая программа Hello world! Имена переменных. Комментарии. Типы и размеры данных: char, int, float, double, void Объявления переменных. Арифметические операторы. Операторы отношения и логические операторы. Преобразования типов. Операторы инкремента и декремента. Общие сведения о приоритетах операторов. Управление. Условные конструкции: if, if-else, вложенные конструкции else-if. Переключатель switch. Циклы while, for, do-while. Множественная инициализация и приращение счетчиков цикла for. Инструкции break и continue. Побитовые операторы (побитовое И, ИЛИ, исключающее ИЛИ, НЕ, сдвиг влево, сдвиг вправо). Упрощенная форма оператора присваивания. Условное выражение: ( z = (a > b)? a :b). Функции и структура программ на С. Аргументы функции. Классы памяти: auto, static, register, extern. Блочная структура С программ. Си-препроцессор. Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. Формы записи элементов массива: имя массива с индексом a[ i ] и указатель со смещением *(a+i). Основные сведения о структурах. Структура point. Доступ к членам структуры. Вложенные структуры (struct rect). Операции над структурами. Аттестация (зачет) ИТОГО: 2 2 2 2 2 2 2 2 2 10 2 8 2 2 2 8 18 60 Семестр 2 № п/ п 1 1 2 3 4 5 6 7 8 9 Раздел ДИСЦИПЛИНЫ 2 Представление об объектах и объектноориентированном программировании. Понятие класса, определение методов класса внутри и вне класса. Управление доступом к элементам класса. Общие (public), частные (private) и статические (static) элементы. Конструктор и деструктор. Перегрузка операторов. Понятие о наследовании. Простое наследование и защищенные (protected) элементы. Множественное наследование. Иерархия классов. Понятие о друзьях (frend) класса. Определение количества друзей. Понятие о функциях – друзьях. Перегрузка функций. Использование ссылок в С++ Управление свободной памятью в С++: операторы new, delete. Файловые операции ввода-вывода в С++. Вывод в файловый поток. Чтение из выходного файлового потока. Открытие и закрытие файлов. Представление о шаблонах функции. Создание шаблона класса. Представление о полиморфизме. Виртуальные (virtual) функции. Использование исключительных ситуаций в С++ для обработки ошибок. Аттестация (зачет) ИТОГО: ВИДЫ АУДИТОРНОЙ РАБОТЫ (ЗАНЯТИЙ) СРС (ЧАС) (ЧАС) ЛЕКЦ Семи ПРАК ЛАБО ИИ нары ТИРА- 3 4 ЧЕСК ИЕ ТОРН ЫЕ 5 6 2 2 2 2 2 2 2 2 2 2 2 8 2 8 2 4 2 4 18 58 7 Планы практических (лабораторных) занятий 1. №№ НАИМЕНОВАНИЕ ЛАБОРАТОРНЫХ РАБОТ РАЗДЕЛА ДИСЦИП П ЛИНЫ / П 1. 1. ОЗНАКОМЛЕНИЕ СОСТАВЛЕНИЕ 2. 2. СОСТАВЛЕНИЕ 3. 3. СОСТАВЛЕНИЕ 4. 4. ЛИНЕЙНЫЕ 5. 5. ВЫДАЧА МАТЕРИАЛОВ ДОМАШНЕЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ №1 НА СОСТАВЛЕНИЕ И ОТЛАДКУ ПРОГРАММ ВЫЧИСЛЕНИЯ ВЫСОТЫ, С РАБОТОЙ IDE BORLAND C++ BUILDER. ПРОГРАММЫ HELLO, WORLD. ОСВОЕНИЕ ФУНКЦИЙ РЕДАКТИРОВАНИЯ, КОМПИЛИРОВАНИЯ, ЗАПУСКА И ОТЛАДКИ ИСПОЛНЯЕМОГО КОДА. ВИЗУАЛИЗАЦИЯ РЕЗУЛЬТАТА РАБОТЫ ПРОГРАММЫ. И ОТЛАДКА ПРОГРАММ НА ВЫЧИСЛЕНИЕ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ФУНКЦИЙ: POW(), SQRT(), LOG(), LOG10(), EXP(), SIN(), COS(), TAN(), ASIN(), ACOS(), ATAN() И ДРУГИХ ИЗ СТАНДАРТНОЙ МАТЕМАТИЧЕСКОЙ БИБЛИОТЕКИ С. И ОТЛАДКА ПРОГРАММ С ЛИНЕЙНЫМ АЛГОРИТМОМ НА ВЫЧИСЛЕНИЕ ДЛИН ДУГ МЕРИДИАНОВ. ЗАПУСК ПРОГРАММЫ ПЕРЕВОДА ГРАДУСОВ ФАРЕНГЕЙТА В ГРАДУСЫ ЦЕЛЬСИЯ. ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ КОДА И УДОБОЧИТАЕМОСТИ СОСТАВЛЕННОЙ ПРОГРАММЫ. АЛГОРИТМЫ. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА ПРЕОБРАЗОВАНИЕ УГЛОВ, ПРЕДСТАВЛЕННЫХ В ГРАДУСНОЙ МЕРЕ (ГРАДУСЫ, МИНУТЫ, СЕКУНДЫ) В ВЕЩЕСТВЕННОЕ ЧИСЛО РАДИАН И ОБРАТНОЕ ПРЕОБРАЗОВАНИЕ. БИССЕКТРИСЫ И МЕДИАНЫ ПРОИЗВОЛЬНОГО ТРЕУГОЛЬНИКА ИСПОЛЬЗОВАНИЕМ ТЕОРЕМ СИНУСОВ И КОСИНУСОВ. С 6. 6. ПОВТОРЯЮЩИЕСЯ ДЕЙСТВИЯ. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА РАЗЛИЧНЫЕ ТИПЫ ЦИКЛОВ, ВКЛЮЧАЯ ВЛОЖЕННЫЕ (WHILE, FOR, DO – WHILE) ДЛЯ НАХОЖДЕНИЯ РАЗЛИЧНЫХ СУММ И ПРОИЗВЕДЕНИЙ. 7. 7. ВЕТВЛЕНИЯ. СОСТАВЛЕНИЕ 8. 8. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА ПРОСТЕЙШИЕ ВИДЫ ПРЯМОЙ И ОБРАТНОЙ ГЕОДЕЗИЧЕСКОЙ ЗАДАЧИ. 9. 9. ПРИЕМКА И ОТЛАДКА ПРОГРАММ НА ОСНОВНЫЕ ТИПЫ УСЛОВНЫХ ИНСТРУКЦИЙ (IF, IF – ELSE, ВЛОЖЕННЫЕ КОНСТРУКЦИИ ELSE - IF. И ПЕРЕКЛЮЧАТЕЛЬ SWITCH). ДОМАШНЕЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ ТИПОВЫХ ОШИБОК, ДОПУЩЕННЫХ В ПРОГРАММАХ №1. АНАЛИЗ № № П/П РАЗДЕЛА ДИСЦИПЛИНЫ НАИМЕНОВАНИЕ ЛАБОРАТОРНЫХ РАБОТ СЕМЕСТР 2 10. 1. СОСТАВЛЕНИЕ 11. 2. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ СО СТРУКТУРАМИ: «MAIKPOINT», «ADDPOINT», «PRINRECT». 12. 3. РЕШЕНИЕ ПРЯМОЙ ГЕОДЕЗИЧЕСКОЙ ЗАДАЧИ, ИСПОЛЬЗУЯ СТРУКТУРУ ТОЧКА (STRUCT POINT) И ПЕРЕДАЧА СТРУКТУРЫ В ФУНКЦИЮ ДЛЯ ВЫЧИСЛЕНИЙ. 13. 4. 14. 5. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С КЛАССАМИ: EMPCLASS И CLASSFUN (ДОПОЛНЕНИЕ PEDIGREE). СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С ОБЩИМИ И ЧАСТНЫМИ ЭЛЕМЕНТАМИ: INFOHIDE. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С КОНСТРУКТОРОМ И ДЕСТРУКТОРОМ: CONSTRUС И DESTRUСT. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА ПЕРЕГРУЗКУ ОПЕРАТОРОВ: OPOVERLD И COMP_STR. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА НАСЛЕДОВАНИЯ: MGP_EMP (ИЛИ BOOKCARD). СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ: COMPUTER. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА ОПРЕДЕЛЕНИЕ ДРУЗЕЙ КЛАССА: VIEWBOOK (ИЛИ LIMITFRI). 15. 6. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА СОЗДАНИЕ ШАБЛОНОВ ФУНКЦИЙ: MAX_TEMP, SHOWTEMP. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА СОЗДАНИЕ ШАБЛОНОВ КЛАССОВ: I_ARRAY ( ИЛИ GENARRAY). 16. 7. СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ НА ИСПОЛЬЗОВАНИЕ УКАЗАТЕЛЕЙ ДЛЯ ВЫЧИСЛЕНИЯ ПЕРЕМЕННЫХ В ЗАДАЧАХ НАХОЖДЕНИЯ ДЛИН СТОРОН, ПЛОЩАДЕЙ, ПЕРИМЕТРОВ РАЗНЫХ ГЕОМЕТРИЧЕСКИХ ФИГУР, ДИАМЕТРА И РАДИУСА ОКРУЖНОСТИ. ПРОГРАММЫ С ИСПОЛЬЗОВАНИЕМ УКАЗАТЕЛЕЙ НА ПЕРЕМЕННЫЕ: GETINT С ФУНКЦИЯМИ GETCH И UNGETCH. И ОТЛАДКА ПРОГРАММ НА ИСПОЛЬЗОВАНИЕ ПОЛИМОРФИЗМА: PHONEONE, NEWPHONE (ИЛИ POLYMORP). СОСТАВЛЕНИЕ И ОТЛАДКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ ОПЕРАТОРОВ TRY, CATCH, THROW. 5. Программа дисциплины (содержание курса) Раздел 1. Введение в язык С/С++ Введение в языки программирования С/С++. Среда программирования Borland C++ Builder 6. Простейшая программа Hello world! Имена переменных. Комментарии. Типы и размеры данных: char, int, float, double, void. Объявления переменных. Арифметические операторы. Операторы отношения и логические операторы. Операторы инкремента и декремента. Общие сведения о приоритетах операторов. Раздел 2. Основные конструкции языка С Управление. Условные конструкции: if, if-else, вложенные конструкции else-if. Переключатель switch. Циклы while, for, do-while. Множественная инициализация и приращение счетчиков цикла for. Инструкции break и continue. Функции и структура программ на С. Аргументы функции. Блочная структура С программ. Си-препроцессор. Подключение заголовочных файлов директивой #include. Раздел 3. Более сложные конструкции языка С Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. Формы записи элементов массива: имя массива с индексом a[ i ] и указатель со смещением *(a+i). Основные сведения о структурах. Структура point. Доступ к членам структуры. Раздел 4. Основные конструкции языка С++ Представление об объектах и объектно-ориентированном программировании. Понятие класса, определение методов класса внутри и вне класса. Управление доступом к элементам класса. Общие (public), частные (private) и статические (static) элементы. Конструктор и деструктор. Перегрузка операторов. Понятие о наследовании. Простое наследование и защищенные (protected) элементы. Множественное наследование. Иерархия классов. Понятие о друзьях (frend) класса. Определение количества друзей. Понятие о функциях – друзьях. Перегрузка функций. Использование ссылок в С++. 6. Образовательные технологии и перечень ресурсов информационнотелекоммуникационной сети Интернет, необходимых для освоения дисциплины 1. http://www.intuit.ru/department/se/introprogteach/ - Введение в языки программирования С/С++. 2. http://www.intuit.ru/department/se/inprogeng/ - Введение в программную инженерию. 3. http://www.intuit.ru/department/se/testing/ Основы тестирования программного обеспечения 7. Критерии достижения результатов обучения по дисциплине. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы студентов. Порядок проведения промежуточной аттестации по дисциплине Общие критерии оценки ответов студентов Для отличной Для хорошей Для удовлетвори- Для неудовлетвориоценки оценки тельной оценки тельной оценки На «5» оценивается На «4» оценивается На «3» оценивается На «2» оценивается ответ, если студент ответ, в котором неполный ответ, в ответ, при котором имеет системные полные знания и умения по поставленному вопросу. Содержание вопроса излагает связно, в краткой форме, раскрывает последовательно суть изученного материала, демонстрируя прочность и прикладную направленность полученных знаний и умений, не допускает терминологических ошибок и фактических неточностей 8. отсутствуют незначительные элементы содержания или присутствуют все необходимые элементы содержания, но допущены некоторые ошибки, иногда нарушалась последовательность изложения. котором отсутствуют значительные элементы содержания или присутствуют все вышеизложенные знания, но допущены существенные ошибки, нелогично, пространно изложено основное содержание вопроса. студенты демонстрируют отрывочные, бессистемные знания, неумение выделить главное, существенное в ответе, допускают грубые ошибки Контрольные теоретические вопросы по курсу к экзамену 1. Разработка программ: написание кода, компилирование, редактирование и отладка в среде Borland Builder 6. Понятие о языках низкого и высокого уровня. Семейство языков высокого уровня С и С++. Особенности программирования консольных приложения и приложений под Windows. 2. Имена переменных. Комментарии. Типы и размеры данных. Типы констант: целая десятичная, восьмеричная, шестнадцатеричная, с плавающей точкой. 3. Объявления переменных. Арифметические операторы. Операторы отношения и логические операторы. Преобразования типов. Операторы инкремента и декремента. Общие сведения о приоритетах операторов. 4. Управление. Условные конструкции: if, if-else, вложенные конструкции else-if. Переключатель switch. 5. Циклы while, for, do-while. Множественная инициализация и приращение счетчиков цикла for. Инструкции break и continue. Инструкция goto и метки. 6. Функции и структура программ на С. Аргументы функции. Блочная структура С программ. Си-препроцессор. Подключение заголовочных файлов директивой #include. 7. Указатели на переменные, понятие адреса. Оператор взятия адреса (&) и раскрытия ссылки (*). Арифметические операции над указателями. Указатели и аргументы функций. Указатели на одномерные массивы. 8. Основные сведения о структурах. Структура point. Доступ к членам структуры. Вложенные структуры (struct rect). Операции над структурами. Передача структур в функции. Указатель на структуру. 9. Представление об объектах и объектно-ориентированном программировании. Понятие класса, определение методов класса внутри и вне класса. 10. Управление доступом к элементам класса. Общие (public), частные (private) и статические (static) элементы. Конструктор и деструктор. Перегрузка операторов. 11. Понятие о наследовании. Простое наследование и защищенные (protected) элементы. Множественное наследование. Иерархия классов 9. Список основной и дополнительной литературы а) основная литература: 1. Керниган Б., Ритчи Д. Язык программирования Си. Изд. «Финансы и статистика», М., 1992г. 2. Страуструп Б. Язык программирования С++. Изд. «Радио и связь», М., 1991г. 3. Березин Б.И., Березин С.Б. Начальный курс С и С++. Изд. «ДИАЛОГ-МИФИ», М., 2000г б) дополнительная литература: 1. Бобровский С. Самоучитель программирования на языке С++ в системе Borland C++ Builder 5.0. Изд. «ДЕСС КОМ». М., 2001г. 2. Джамса К. Учимся программировать на языке С++. Изд. «Мир», М., 1999г. 10. Материально-техническое обеспечение дисциплины Учебные лаборатории кафедры вычислительной техники и автоматизированной обработки аэрокосмической информации, УВЦ факультета, доступ к сети Интернет, программное обеспечение, мультимедийные средства, презентации. Автор, доцент кафедры ВТиАОАИ Зав. Кафедрой ВТиАОАИ, профессор Заблоцкий В.Р. Журкин И.Г. Программа одобрена на заседании Методической комиссии факультета от ___________ года, протокол № ________.