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

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

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

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

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

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

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

УТВЕРЖДАЮ

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

____________________Якимов А.В.

«18» мая 2011 г.

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

Дисциплины Б3.Б5 «Языки программирования»

по направлению 010300 «Фундаментальная информатика и информационные технологии»

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

2011 г.

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

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

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

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

Знания, приобретённые в процессе изучения дисциплины «Языки программирования», используются как основа для преподавания и изучения дисциплин «Вычислительные методы», «Алгоритмы и анализ сложности», «Архитектура вычислительных систем», «Операционные системы», а также других дисциплин профессионального цикла с профессиональной ориентацией, в которых затрагиваются вопросы программной реализации алгоритмов решения задач.

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

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

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

способность работать с информацией в глобальных компьютерных сетях (ОК–13);

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

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

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

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

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

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

знать:

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

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

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

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

особенности управления заданиями в операционной системе 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. Рекомендуемая литература

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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