Учебная программа Дисциплины б7 «Информатика» по специальности 0

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Нижегородский государственный университет им. Н.И. Лобачевского»

Радиофизический факультет

Кафедра математики

УТВЕРЖДАЮ

Декан радиофизического факультета

____________________Якимов А.В.

«18» мая 2011 г.

Учебная программа

Дисциплины С2.Б7 «Информатика»

по специальности 090302 «Информационная безопасность телекоммуникационных систем»

Нижний Новгород

2011 г.

1. Цели и задачи дисциплины

Целью преподавания дисциплины «Информатика» является ознакомление студентов с основными понятиями и методами программирования, простейшими алгоритмами, дающими представление о предмете в целом. Основной упор при этом делается на изучение методики постановки и решения вычислительных задач на современных ЭВМ, на формирование у студентов логически обоснованного подхода к выбору средств достижения результата и проведение анализа этого результата.

2. Место дисциплины в структуре программы специалиста

Дисциплина «Информатика» относится к дисциплинам базовой части математического и естественнонаучного цикла основной образовательной программы по специальности 090302 «Информационная безопасность телекоммуникационных систем», преподается в 1,2 семестре. Дисциплина опирается на материалы курсов аналитической геометрии и высшей алгебры, а также курса введение в информационные системы.

3. Требования к уровню освоения содержания дисциплины

Изучение дисциплины «Информатика» обеспечивает овладение следующими общекультурными компетенциями:

способностью к логически правильному мышлению, обобщению, анализу, критическому осмыслению информации, систематизации, прогнозированию, постановке исследовательских задач и выбору путей их решения на основании принципов научного познания (ОК-9);

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

Изучение дисциплины «Информатика» обеспечивает овладение следующими профессиональными компетенциями:

способностью применять математический аппарат, в том числе с использованием вычислительной техники, для решения профессиональных задач (ПК-2);

способностью понимать сущность и значение информации в развитии современного общества, применять достижения современных информационных технологий для поиска и обработки больших объемов информации по профилю деятельности в глобальных компьютерных системах, сетях, в библиотечных фондах и в иных источниках информации (ПК-3);

способностью использовать языки, системы и инструментальные средства программирования в профессиональной деятельности (ПК-4);

способностью применять методологию научных исследований в профессиональной деятельности, в том числе в работе над междисциплинарными и инновационными проектами (ПК-5);

способностью к эксплуатации современного телекоммуникационного оборудования и приборов (ПК-9);

способностью применять основные методы, способы и средства получения, хранения, переработки и передачи информации (ПК-10).

В результате изучения дисциплины студенты должны

знать:

основы алгоритмизации и принципы использования алгоритмических языков программирования для постановки и решения прикладных задач на ЭВМ;

основные элементы, синтаксис и семантику языка высокого уровня;

уметь:

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

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

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

4. Объём дисциплины и виды учебной работы

Общая трудоемкость дисциплины составляет 6 зачетных единиц, 216 часов.

Виды учебной работы

Всего часов

Семестры

Общая трудоемкость дисциплины

216

1

2

Аудиторные занятия

102

51

51

Лекции

68

34

34

Практические занятия (ПЗ)

34

17

17

Семинары (С)

Лабораторные работы (ЛР)

Другие виды аудиторных занятий

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

78

49

49

Курсовой проект (работа)

Расчетно-графическая работа

Реферат

Другие виды самостоятельной работы

Вид итогового контроля (зачет, экзамен)

экзамен (36)

зачет

экзамен (36)

5. Содержание дисциплины

5.1. Разделы дисциплины и виды занятий

№ п/п

Раздел дисциплины

Лекции

ПЗ (или С)

ЛР

1

Введение

4

2

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

16

8

3

Объектно-ориентированное программирование

14

8

4

Основные структуры данных

18

10

5

Основы алгоритмизации

16

8

5.2. Содержание разделов дисциплины

Раздел 1. Введение.

Этапы развития современных ЭВМ и языков программирования.

Инструментальные средства системного программного обеспечения. Назначение и основные команды MS WINDOWS, OS UNIX.

Работа с текстовыми редакторами. Редактирование, компиляция, компоновка и выполнение простейших программ в средах MS WINDOWS и OS UNIX.

Раздел 2. Структурное и модульное программирование на языках высокого уровня.

Операторы. Метки. Комментарии. Формат.

Базисные элементы языка. Типы данных. Константы. Переменные. Указатели. Идентификаторы. Принцип умолчания. Описание типов данных. Индексированные переменные и массивы данных. Описание. Размещение и инициализация в памяти ЭВМ. Присваивание значения.

Типы выражений. Арифметические выражения. Выражения отношений. Логические выражения.

Операции. Приоритет операций, ранги операндов.

Структура программного модуля.

Алгоритмы линейной структуры, разветвляющейся структуры. Безусловные и условные переходы. Алгоритмы циклической структуры. Правила явной организации циклов. Цикл общего вида. Цикл с предусловием и постусловием. Итерационный цикл. Счетный цикл. Функции и подпрограммы. Формальные и фактические параметры. Способы передачи данных. Принцип модульного программирования.

Ввод-вывод информации. Управление вводом-выводом. Хранение данных.

Раздел 3. Объектно-ориентированное программирование.

Объектно-ориентированная разработка; инкапсуляция и информационное упрятывание; отделение описания поведения от реализации; классы, подклассы и наследование; полиморфизм; иерархия классов; собрания классов и протоколы взаимодействия; программирование на основе шаблонов.

Раздел 4. Основные структуры данных.

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

Раздел 5. Основы алгоритмизации.

Понятие алгоритма. Блок-схема алгоритма.

Понятие рекурсии; математические рекурсивные функции; примеры рекурсивных процедур; рекурсия и метод «разделяй и властвуй»; реализация бэктрекинга (backtracking) посредством рекурсии; реализация рекурсии с помощью стека.

Различные алгоритмы сортировки массивов: плюсы, минусы, скорость работы, устойчивость, примеры реализации на языке высокого уровня.

5.3. План практических занятий

Работа в командной строке. Основные операторы ОС Windows и Linux

Создание программ на языке С. Компилляторы. Принципы компилляции.

Применение оператора ветвления.

Работа с массивами. Операторы цикла.

Ввод-вывод. Работа с файлами.

Применение структур и объединений.

Создание пользовательских функций.

Отчет по задачам.

Принципы построения программ на языке С++

Создание класса. Поля и методы.

Использование механизма скрытия данных.

Создание класса «Трехмерный вектор».

Создание класса «Трехмерный вектор».

Принцип наследования.

Создание класса «N-мерный вектор».

Создание класса «N-мерный вектор».

Отчет по задачам.

6. Лабораторный практикум

Не предусмотрен.

7. Учебно-методическое обеспечение дисциплины

7.1. Рекомендуемая литература.

а) основная литература:

Болски М.И. Справочник. Язык программирования Си. М.: Радио и связь, 1986 – 96с.

Дейтел П. Дж., Дейтел Х.М. Как программировать на С++. Введение в объектно-ориентированное проектирование с использованием UML. М.: БИНОМ, 2002 – 1152с.

Джехани Н. Программирование на языке Си. М.: Радио и связь, 1988 – 270с.

Керниган Б., Ритчи Д. Язык программирования Си. 3-е изд., СПб.: Невский диалект, 2001 – 352с.

Кнут Д. — Искусство программирования для ЭВМ. Т. 3. — М.: Мир, 1978 – 844с.

Кормен, Томас — Алгоритмы: построение анализ. — М.: МЦНМО, 1999 – 960с.

Савин В.А. Представление данных цифровых ЭВМ / Методическая разработка для студентов радиофизического факультета ННГУ. – Н.Новгород: ННГУ, 2001 – 58с.

Страуструп Б. Язык программирования С++. М.:БИНОМ, СПб.: Невский диалект, 2001 – 1099с.

Шилдт Г. Самоучитель С++. СПб.: БХВ-Петербург, 1997 – 512с.

Шилдт Г. Справочник программиста по С/С++. М.: изд. дом Вильямс, 2001 – 448с.

б) дополнительная литература:

Липпман С.Б. С++ для начинающих. М.: Унитех, Рязань: Гэлион, 1993. т.1 – 304с, т.2 – 345с.

Липпман С.Б., Лажойе Ж. Язык программирование С++. Вводный курс, 3-е изд. СПб: Невский проспект, М.: ДМК Пресс, 2001 – 1104с.

Липпман С.Б. Основы программирования на С++. Серия C++ InDepth, М.: Вильямс, 2002 – 256с.

Страуструп Б. Язык программирования С++. М.: Радио и связь, 1991 – 352с.

Страуструп Б. Язык программирования С++. Второе издание. Киев: ДиаСофт, 1993. ч.1 – 264с, ч.2 – 296с.

Шилдт Г. Теория и практика С++. СПб.: БХВ-Петербург, 2000 – 416с.

Элджер Дж. С++ : библиотека программиста. СПб.: Питер, 1999 – 320с.

Эллис М., Строуструп Б. Справочное руководство по языку программирования С++ с комментариями. Проект стандарта ANSI. М.: Мир, 1992 – 445с.

8. Вопросы для контроля

Общая характеристика языка С.

Структура программы на языке С. Подключение библиотек. Организация ввода-вывода с помощью библиотеки stdio.

Модуль в языке С. Организация многофайловой программы, заголовочные файлы, директива #include, прототипы функций.

Оператор присваивания и оператор ветвления. Особенности оператора присваивания и вычисления условий в языке С. Примеры операторов присваивания и ветвления.

Организация циклов. Циклы с предусловием и постусловием. Цикл for и его связь с циклом while. Примеры.

Оператор переключатель (switch). Инструкция break. Примеры применения оператора переключателя.

Обзор операций языка С. Приоритеты операций. Правила вычисления выражений. Примеры операций.

Понятие идентификатора и переменной. Объявления и инициализация переменных и массивов в С.

Числовые типы данных языка С. Целочисленные (десятичные, восьми и шестнадцатеричные) и действительные константы. Именованные константы и способы их задания в языке С.

Массивы с языке С. Объявление и использование массивов.

Структуры в языке С. Объявление типа и переменных. Использование элементов структур.

Символьный тип в языке С. Символьные константы. Представление строк в С.

Указатели и ссылки в языке С/C++. Константные указатели и ссылки. Операции с указателями и ссылками.

Массив как указатель в языке С. Особенности индексации массива при записи кода. Массив как параметр функции. Многомерные массивы.

Динамическое выделение памяти. Операторы new и delete.

Функции в языке С. Объявление, описание и вызов. Особенности передачи параметров (по значению, по ссылке [C++], указателем, по константной ссылке [C++]).

Время жизни и область видимости объектов. Локальные и глобальные объекты.

Форматный вывод и ввод. Функции printf и scanf библиотеки stdio.

Работа с текстовыми файлами. Функции fopen, fclose, fprintf, fscanf библиотеки stdio.

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

Объектный подход. Парадигмы ООП. Достоинства и недостатки ООП.

Понятие класса. Инкапсуляция. Объявление класса. Поля и методы. Секции public и private. Скрытие данных.

Объявление класса. Поля и методы. Секции public и private. Скрытие данных. Пример разработки класса “Комплексное число”. Реализация методов класса.

Способы создания объектов. Доступ к данным и методам объекта. Указатель this. Статическое и динамическое создание объектов внутри методов. Ссылки в заголовках методов. Примеры.

Создание объектов. Конструкторы. Виды конструкторов. Конструктор копирования. Пример разработки конструктора копирования.

Уничтожение объектов. Деструкторы.

Перегрузка операций. Правила перегрузки операторов. Перегрузка унарных операторов. Перегрузка операции []. Перегрузка бинарных операторов. Перегрузка операции присваивания. Операция присваивания и конструктор копирования.

Виды иерархий. Наследование и агрегация. Реализация агрегации в C++.

Наследование в C++. Public, private и protected-наследование. Перекрытие методов. Некоторые правила наследования.



Страницы: 1 | 2 | Весь текст