Рабочая учебная программа по дисциплине «Системное программное обеспечение» Направление №230100 «Информатика и вычислительная техника»

Вид материалаРабочая учебная программа

Содержание


Рабочая учебная программа
Цель и задачи дисциплины, ее место в учебном процессе
Задачи изучения дисциплины
Перечень тем и разделов предшествующих дисциплин, освоение которых необходимо для изучения данной дисциплины
Содержание дисциплины
5 семестр (32 часа)
Самостоятельная работа
Учебно-методические материалы по дисциплине
Подобный материал:

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ


ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ


«МАТИ» - РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

имени К.Э. ЦИОЛКОВСКОГО




Кафедра «Проектирование вычислительных комплексов»





























РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА


по дисциплине «Системное программное обеспечение»


Направление № 230100 «Информатика и вычислительная техника»

Шифр учебного плана: 230100.03пвк

Факультет № 6

Выпускающая кафедра: Проектирование вычислительных комплексов

Форма обучения: очная

Количество часов по дисциплине: 144

Цикл дисциплин: С


Распределение времени студента по видам учебных занятий

(часы аудиторных занятий/самостоятельная работа)



Семестр

5




По учебному плану (АР/СР)

64/80




Лекции (АР/СР)

32/40




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

32/40




Практические занятия (АР/СР)

-




Курсовая работа (0/СР)

-




Форма контроля

экзамен






Москва 2006 г.


  1. ЦЕЛЬ И ЗАДАЧИ ДИСЦИПЛИНЫ, ЕЕ МЕСТО В УЧЕБНОМ ПРОЦЕССЕ




Цель преподавания дисциплины


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


    1. Задачи изучения дисциплины



Задачей изучения курса “Системное программное обеспечение” является получение знаний и выработка умений, необходимых при разработке и системных программ разных типов (в первую очередь ОС и компиляторов), а также при работе с указанными программными системами.


    1. Перечень тем и разделов предшествующих дисциплин, освоение которых необходимо для изучения данной дисциплины



Курс должен читаться после курса “Программирование на языках высокого уровня” и должен быть связан с курсом “Операционные системы”.


  1. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ



    1. Наименования разделов и тем, объем в часах лекционных занятий.


5 семестр (32 часа)




Тема и содержание

Кол-во

часов


Общие вопросы

Сферы применения языков программирования (научные исследования, коммерческие применения, искусственный интеллект, системное программирование и др.).

Разработка и реализация языков программирования. Краткий исторический очерк. Классификация языков программирования.

2


Общие вопросы

Характеристики (простота/ортогональность языка, управляющие структуры, типы и структуры данных, синтаксическая структура языка, поддержка абстракции, обработка исключительных ситуаций и др.) и критерии оценки языков программирования (читабельность, легкость создания, надежность программ).

2


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

Понятия синтаксиса и семантики. Задача описания синтаксиса языка программирования. Методы формального описания синтаксиса. Форма Бэкуса-Наура. Контекстно-свободные грамматики. Деревья синтаксического анализа. Приоритет операторов, ассоциативность операторов. Расширенные формы БНФ. Синтаксические графы. Статическая семантика. Виды динамической семантики (операционная, аксиоматическая, денотационная).

2


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

Приоритет операторов, ассоциативность операторов. Расширенные формы БНФ. Синтаксические графы. Статическая семантика. Виды динамической семантики (операционная, аксиоматическая, денотационная).

2


Основные понятия и конструкции языков программирования

Имена. Основные вопросы их реализации. Специальные слова, ключевые и зарезервированные слова. Переменные и их атрибуты: имя, адрес, значение, тип. Время жизни переменной.

2


Основные понятия и конструкции языков программирования

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

2


Основные понятия и конструкции языков программирования

Типы данных. Проверка типов, строгая типизация, совместимость типов. Простые типы данных (целые, вещественные, логические, литерные). Перечислимые и интервальные типы. Массивы и строки. Записи, объединения, множества. Ссылочный тип.

4


Основные понятия и конструкции языков программирования

Выражения. Арифметические выражения. Порядок выполнения операторов. Порядок вычисления операндов. Перегрузка операторов. Преобразования типов. Отношения и булевские выражения. Сокращенные вычисления.

2


Основные понятия и конструкции языков программирования

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

2


Основные понятия и конструкции языков программирования

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

2


Основные понятия и конструкции языков программирования

Циклы со счетчиком, логически управляемые циклы, циклы с механизмом управления, размещаемым пользователем. Эволюция операторов цикла и особенности реализации в разных языках программирования. Переходы и метки.

4


Основные понятия и конструкции языков программирования

Подпрограммы. Процедуры и функции. Параметры. Методы передачи параметров: по значению, по имени, по ссылке. Их использование в разных языках программирования. Побочные эффекты. Реализация подпрограмм.

2


Непроцедурные парадигмы программирования

Объектно-ориентированное программирование. Инкапсуляция, наследование, полиморфизм. История и проблемы разработки объектно-ориентированных языков. Краткий обзор языков C++ и Java. Функциональное программирование. Возникновение и применение. Языки Lisp и ПЛЭНЕР. Сравнение функциональных и императивных языков. Логическое программирование. Язык Prolog и его применение.

4



    1. Лабораторные занятия, их содержание и объем в часах



5 семестр (32 часа)







Тема и содержание

Кол-во

часов


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

8


Программная реализация алгоритма перевода арифметического выражения в бесскобочную форму записи.

8


Программная реализация алгоритма перевода арифметического выражения в триады на основе стеков с приоритетами.

8


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

8



  1. САМОСТОЯТЕЛЬНАЯ РАБОТА



5 семестр

    1. Проработка конспекта лекций и изучение дополнительной литературы по основным темам лекций (40 часов).
    2. Подготовка к лабораторным занятиям (40 часа)



  1. УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ ПО ДИСЦИПЛИНЕ




4.1. Основная литература.

1. Гордеев А.В., Молчанов А.Ю. Системное программное обеспечение  СПб., Питер, 2003.

2. Вирт Н. Алгоритмы и структуры данных М., Мир, 2000.


4.2. Дополнительная литература.

1. Грис. Д. Конструирование компиляторов для цифровых вычислительных машин. – М., Мир, 1975.

2. Ахо А., Сети Р., Ульман Дж. Компиляторы 

3. Пратт Т., Зелковиц М. Языки программирования: реализация и разработка. – СПб., Питер, 2001.

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

5. Андреева Е, Фалина И. Системы счисления и компьютерная арифметика – М., Лаборатория базовых знаний, 2003.


    1. Перечень технических средств обучения по данной дисциплине



  • ПК не менее Pentium 4-\2.4G\256Mb\40Gb;