Учебная программа Дисциплины б8 «Языки программирования»



Скачать 128.88 Kb.
Дата11.11.2016
Размер128.88 Kb.


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

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

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

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

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

Центр «Безопасность информационных систем и средств коммуникаций»


УТВЕРЖДАЮ

Декан радиофизического факультета
____________________Якимов А.В.

«18» мая 2011 г.

Учебная программа
Дисциплины С2.Б8 «Языки программирования»
по специальности 090302 «Информационная безопасность телекоммуникационных систем»

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

2011 г.

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



Цель курса – познакомить студентов с основными концепциями современных языков программирования, программированием на языке C/C++, использованием командного интерпретатора и современными способами создания переносимых гипертекстовых документов с целью приобретения обучаемыми необходимого объема знаний и практических навыков по разработке прикладного и системного программного обеспечения для современных информационных систем; формирования у них целостного представления об общих свойствах языков программирования высокого уровня. Правила и приемы использования языков программирования, рассмотренные в лекционном курсе, используются в рамках лабораторных занятий для привития навыков программирования и использования особенностей языков на примерах простейших программ.
2. Место дисциплины в структуре программы специалиста

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


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

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



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

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

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

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

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

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

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

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

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

знать:

  • общие принципы построения и использования современных языков программирования высокого уровня;

  • особенности различных парадигм программирования;

  • принципы трансляции и верификации программ;

  • базовые средства и принципы модульного программирования языка С/С++;

  • особенности управления заданиями в операционной системе UNIX посредством командного интерпретатора SHELL;

  • базовые принципы описания гипертекстовых документов на языке HTML.

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

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


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

Всего часов

Семестры

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

108

3

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

68

68

Лекции

34

34

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





Семинары (С)





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

34

34

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





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

40

40

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





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





Реферат





Домашняя работа

40

40

Вид итогового контроля

зачет

зачет

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

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


№ п/п

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

Лекции

ПЗ (или С)

ЛР

1.

Введение

4





2.

Модели трансляции языков программирования

4





3.

Низкоуровневый язык ассемблера

2





4.

Язык программирования C

10



17

5.

Обзор языка программирования C++

8



17

6.

Командный интерпретатор SHELL

4





7.

Язык разметки гипертекстовых документов HTML

2




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


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

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


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

Роль трансляции в процессе программирования. Сравнение процессов компиляции и интерпретации. Фазы трансляции: лексический анализ, синтаксический разбор, генерация кода, оптимизация. Понятие виртуальной машины, промежуточные языки, безопасность выполнения программного кода на виртуальной машине.


Раздел 3. Низкоуровневый язык ассемблера

Особенности разработки программ на языке ассемблера. Способы адресации, псевдооператоры. Аппаратный стек. Машинно-независимый ассемблер RTL.


Раздел 4. Язык программирования C

Обзор языка C. Переменные и арифметические выражения. Имена переменных. Типы и размеры данных. Константы. Декларации. Внешние переменные. Операции. Приоритет и порядок вычислений. Инструкции и блоки. Операторы ветвления, передачи управления и циклов. Функции и структура программы. Правила областей действия. Заголовочные файлы. Макропроцессор. Указатели и массивы. Указатели и адреса. Адресная арифметика. Указатели на функции. Структуры. Объединения. Доступ к файлам. Библиотечные функции. Функции ввода-вывода, динамического распределения памяти, математические и строковые функции. Интерфейс с системой UNIX.


Раздел 5. Обзор языка программирования C++

Краткие исторические сведения о развитии языка C++. Основные свойства языка C++ как объектно-ориентированный язык программирования: абстрагирование, инкапсуляция, наследование, полиморфизм. Объявление и реализация классов в языке С++. Конструкторы и деструкторы классов. Вложенные классы. Создание объекта как экземпляра класса, объектные типы. Дружественные члены класса и дружественные классы. Абстрактные классы и виртуальные методы. Способы передачи аргументов функциям в языке C++. Работа с памятью в языке C++. Перегрузка операций и методов. Шаблоны функций и классов.


Раздел 6. Командный интерпретатор SHELL

Структура командной строки. Метасимволы. Создание новых команд. Аргументы и параметры команд. Результат выполнения программы в качестве аргумента. Переменные SHELL. Присвоение значения переменной в различных диалектах SHELL. Операторы ветвления. Циклы. Условные и безусловные переходы. Переключатель. Операции ввода-вывода.


Раздел 7. Язык разметки гипертекстовых документов HTML

История развития языков разметки гипертекста. Стандарты HTML. Понятие меток, базовые метки. Управление отображением. Управление шрифтами. Списки. Управление отображением графической информации. Поддерживаемые графические форматы. Таблицы. Особенности форматирования таблиц. Понятие якоря. Создание гипертекстовых ссылок. Расширения языка HTML: фреймы, Java Script, нестандартные расширения.


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


№ п/п

№ раздела дисциплины

Наименование лабораторной работы

1.

4, 5

Работа с данными входного и выходного потоков программы

2.

4, 5

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

3.

4, 5

Использование библиотеки математических функций

4.

4, 5

Использование битовых операций

5.

4, 5

Использование средств динамического распределения памяти

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

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

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



  1. Кауфман В.Ш. Языки программирования. Концепции и принципы. – М.: Радио и связь, 1993.

  2. Калинин А.Г., Мацкевич И.В. Универсальные языки программирования. Семантический подход. – М.: Радио и связь, 1991.

  3. Мартыненко Б.К. Языки и трансляции. – СПб.: Изд-во СПбГУ, 2002.

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

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

  6. Павловская Т.А. С/С++. Программирование на языке высокого уровня. Учебник. – СПб.: Питер, 2009. 461 с.

  7. Подбельский В.В. Стандартный Си++. Учебное пособие. – М.: Финансы и статистика, 2008. 688 с.

  8. Керниган Б., Пайк Р. UNIX – универсальная среда программирования. – М.: Финансы и статистика, 1992. 302 с.

  9. Матросов А., Сергеев А.,Чаунин М. HTML 4.0. – СПб.: БХВ-Петербург, 2008. 672 с.

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



  1. Бежанова М.М., Поттосин И.В. Современные понятия и методы программирования. – М.: Научный мир, 2000.

  2. Себеста Р. Основные концепции языков программирования: Пер. с англ. –М.: Вильямс, 2001.

  3. Хопгуд Ф Методы компиляции. – М.: Мир, 1982.

  4. Филд А., Харрисон П. Функциональное программирование. – М.: Мир, 1993.

  5. Парамзин А.В. Введение в программирование на языке ассемблера. – Новосибирск: НГУ, 1992.

  6. Смит Б., Джонсон М. Архитектура и программирование микропроцессора INTEL 80386. – М.: Конкорд, 1992.

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

  8. Вирт Н. Алгоритмы + структура данных = программы. – М.: Мир, 1985.

  9. Трой Д. Программирование на языке Си для персонального компьютера IBM PC. – М.: Радио и связь, 1991. 432 с.

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

  11. Хенкок Л., Кригер М. Введение в программирование на языке Си: Пер. с англ. – М.: Радио и связь, 1986. 191 с.

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

  13. Шилдт Г. С++: базовый курс. – М.: Вильямс, 2008. 624 с.

  14. Пауэл Т.А., Уитворт Д. HTML. Справочник программиста. – М.: АСТ, Харвест, 2002. 384 с.

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



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

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

  3. Виды трансляторов. Фазы трансляции: лексический анализ, синтаксический разбор, генерация кода, оптимизация.

  4. Промежуточные языки программирования. Безопасное выполнение программного кода на виртуальной машине.

  5. Особенности низкоуровневого языка ассемблера: аппаратный стек, способы адресации, псевдооператоры.

  6. Область видимости и время жизни переменных в языке C. Локальные и глобальные переменные. Статические переменные.

  7. Массивы в языке C. Объявление и использование массивов. Массив как указатель в языке C. Многомерные массивы.

  8. Указатели в языке C. Операции с указателями. Адресная арифметика.

  9. Структурные типы данных в языке C. Объявление и особенности использования структур и объединений.

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

  11. Операторы ветвления в языке C. Безусловный и условный переход. Реализация множественного ветвления.

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

  13. Функции в языке C. Декларирование (прототипы функций), описание и вызов. Особенности передачи параметров функций.

  14. Библиотечные функции в языке C. Функции ввода-вывода, динамического распределения памяти, математические и строковые функции.

  15. Объявление и реализация классов в языке С++. Конструкторы и деструкторы классов. Дружественные члены класса и дружественные классы.

  16. Абстрактные классы и виртуальные методы в языке C++. Перегрузка операций и методов. Шаблоны функций и классов.

  17. Использование переменных в командном интерпретаторе SHELL. Метасимволы. Аргументы и параметры команд.

  18. Операторы ветвления командного интерпретатора SHELL (условные и безусловные переходы, переключатели). Циклы. Операции ввода-вывода.

  19. Метки и гипертекстовые ссылки в языке разметки HTML. Управление шрифтами и отображением графической информации.

  20. Списки и таблицы в языке разметки HTML. Особенности форматирования таблиц. Понятие якоря.

9. Критерии оценок




Зачтено

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

Не зачтено

В противном случае

10. Примерная тематика курсовых работ и критерии их оценки

Курсовые работы не предусмотрены.

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

Автор программы ___________ Горбунов А.А.

Программа рассмотрена на заседании Центра БИСК 25 марта 2011 г. протокол № 6–2010/2011

Руководитель ЦеБИСК ___________________________ Ротков Л.Ю.

Программа одобрена методической комиссией факультета 11 апреля 2011 года

протокол № 05/10

Председатель методической комиссии_________________ Мануилов В.Н.






База данных защищена авторским правом ©bezogr.ru 2016
обратиться к администрации

    Главная страница