П Р О Г Р А М М А «Институт управления»

advertisement
Негосударственное образовательное учреждение
высшего профессионального образования
«Институт управления»
(г. Архангельск)
ПРОГРАММА
ГОСУДАРСТВЕННОЙ ИТОГОВОЙ
АТТЕСТАЦИИ
ПО НАПРАВЛЕНИЮ
2 3 0 7 0 0 « П РИ К Л А ДН А Я
И Н ФО Р М АТ И К А »
МОСКВА – АРХАНГЕЛЬСК
2014
Программа составлена профессором Ю.В. Горяшиным, к.ф.-м.н.,
профессором А.В. Юфряковым в соответствии с требованиями федерального государственного образовательного стандарта высшего
профессионального образования по направлению 230700 «Прикладная информатика», утвержденного 22 декабря 2009 г.
ПРОГРАММА…
Одобрена на заседании кафедры
информационных технологий и
прикладной математики.
Протокол № 5 от 27 января 2014 г.
Зав. кафедрой профессор Ю.В. Горяшин
Согласована с кафедрой
гуманитарных и естественно-научных дисциплин
Северодвинского филиала ИУ
Протокол № от
2013 г.
Зав. кафедрой профессор, к.п.н. Е.В. Семухина
Рекомендована к изданию научно-методическим советом ИУ.
Протокол № от
201 г.
Председатель научно-методического совета проф. А.Н. Ежов
СОДЕР ЖАНИЕ
1. Пояснительная записка……………………… ..…….4
2. Выписка из федерального государственного
образовательного стандарта ……………….……….6
3. Дидактическ ие единицы ………………………..….10
3.1. Теоретические основы информатики…… .10
3.2. Теоретические основы
Алгоритмизац ии...…………………………13
3.3. Основы программирования на языке
С++………………………………………….. .15
3.4. Объектно -ориентированное
программирование……………….. ……….21
3.5. Структуры данных и алгоритмы………… .25
3.6. Основы проектирования трансляторов… .29
3.7. Вычислительные системы, сети и
телекоммуникации…………………………32
3.8. Операционные системы……………………. 34
3.9. Базы данных……………………………….. ..38
3.10. Программная инженерия…………………. .42
4. Критерии оценки знаний …………………….…….44
5. Библиографический список ………………… …….48
1. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
Освоение основной образовательной программы высшего
профессионального образования завершается итоговой аттестацией выпускников. Государственная итоговая аттестация студентов проводится на основании и в соответствии с Законами РФ
«Об образовании», «О высшем и послевузовском профессиональном образовании», Положением «Об итоговой государственной аттестации выпускников высших учебных заведений Российской Федерации», Федеральным Государственным образовательным стандартом высшего профессионального образования по
направлению подготовки 230700 «Прикладная информатика».
Целью государственной итоговой аттестации является установление уровня и качества подготовки выпускника к решению профессиональных задач и соответствия этой подготовки требованиям Федерального Государственного образовательного стандарта в
части государственных требований к результатам освоения основной профессиональной образовательной программы.
Государственный экзамен входит в состав государственной
итоговой аттестации. Его предназначение – выявить степень теоретической и практической подготовленности выпускника к самостоятельному решению профессиональных задач, установленных образовательным стандартом, и продолжению образования в
магистратуре, а также меру усвоенности им программного материала и сформированности выработанных за время обучения необходимых умений и навыков для осуществления профессиональной деятельности. Государственный экзамен по направлению
230700 «Прикладная информатика» является квалификационным
и преследует цель произвести комплексную оценку полученных
за период обучения знаний, умений и навыков в области профессионально-ориентированных информационных систем и технологий, особенностей их разработки и эксплуатации, с учетом специфики учебного процесса и региональных особенностей вуза.
К государственной итоговой аттестации по направлению подготовки 230700 «Прикладная информатика» допускаются студенты, завершившие полный курс обучения по основной профессиональной образовательной программе и успешно прошедшие все
предшествующие аттестационные испытания, предусмотренные
учебным планом специальности, разработанным в соответствии с
требованиями Федерального Государственного образовательного
стандарта. Условием допуска к государственной итоговой аттестации является представление документов, подтверждающих
освоение обучающимся компетенций при изучении теоретического материала и прохождении практики по каждому из основных видов профессиональной деятельности. Оценку знаний выпускника осуществляет Государственная аттестационная комиссия, организуемая в соответствии с Положением об итоговой государственной аттестации выпускников высших учебных заведений в Российской Федерации.
Экзаменационный билет включает вопросы по основным
циклам дисциплин подготовки и предполагает:
 письменный ответ экзаменуемого по теоретическим вопросам;
 практическое выполнение задания в рамках конкретной
профессионально-ориентированной информационной системы.
Программа государственного экзамена носит обобщающий
характер и ориентирует выпускников на закрепление в их профессиональном сознании комплексной и целостной системы общекультурных, общепрофессиональных и специальных научных
знаний в предметной области. Это позволяет использовать при
подготовке к экзамену те литературные источники, которые уже
изучены студентами и на которые они опирались при подготовке
к сдаче зачетов и экзаменов в процессе обучения.
Проведению экзамена предшествует цикл консультаций по
дисциплинам, входящим в его программу. Тип и характер комплексных заданий доводятся до сведения студентов заранее, не
позднее, чем за шесть месяцев до проведения государственного
экзамена. Во время проведения экзамена выпускникам разрешается пользоваться справочной, методической литературой, техническими и аудиовизуальными средствами, необходимыми для
качественного выполнения заданий.
2. ВЫПИСКА ИЗ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО СТАНДАРТА
Основная образовательная программа по направлению подготовки 230700 «Прикладная информатика» предусматривает изучение циклов гуманитарных, социальных и экономических дисциплин; математических и естественнонаучных дисциплин; профессиональных дисциплин, включающих базовую и вариативную
части, а также дополняющие их дисциплины по выбору.
Результаты освоения основной образовательной программы
определяются приобретаемыми выпускником компетенциями,
т.е. его способностью применять знания, умения и личные качества в соответствии с задачами профессиональной деятельности.
В соответствии с Федеральным Государственным образовательным стандартом высшего профессионального образования по
направлению 230700 «Прикладная информатика» выпускник
должен обладать следующими общекультурными компетенциями (ОК):
- способен использовать, обобщать и анализировать информацию, ставить цели и находить пути их достижения в условиях
формирования и развития информационного общества (ОК-1);
- способен логически верно, аргументированно и ясно строить
устную и письменную речь, владеть навыками ведения дискуссии
и полемики (ОК-2);
- способен работать в коллективе, нести ответственность за
поддержание партнерских, доверительных отношений (ОК-3);
- способен находить организационно-управленческие решения и готов нести за них ответственность (ОК-4);
- способен самостоятельно приобретать и использовать в
практической деятельности новые знания и умения, стремится к
саморазвитию (ОК-5);
- способен осознавать социальную значимость своей будущей
профессии, обладать высокой мотивацией к выполнению профессиональной деятельности (ОК-6);
- способен понимать сущность и проблемы развития современного информационного общества (ОК-7);
- способен работать с информацией в глобальных компьютерных сетях (ОК-8);
- способен свободно пользоваться русским языком и одним из
иностранных языков на уровне, необходимом для выполнения
профессиональных задач (ОК-9);
- способен использовать методы и средства для укрепления
здоровья и обеспечения полноценной социальной и профессиональной деятельности (ОК-10);
- способен уважительно и бережно относиться к историческому наследию и культурным традициям, толерантно воспринимать социальные и культурные различия (ОК-11);
- способен использовать Гражданский кодекс Российской Федерации, правовые и моральные нормы в социальном взаимодействии и реализации гражданской ответственности (ОК-12);
- способен понимать сущность и значение информации в развитии современного информационного общества, сознавать
опасности и угрозы, возникающие в этом процессе, соблюдать
основные требования информационной безопасности, в том числе
защиты государственной тайны (ОК-13);
- способен применять основные методы защиты производственного персонала и населения от возможных последствий аварий, катастроф, стихийных бедствий, технику безопасности на
производстве (ОК-14).
Выпускник должен обладать следующими профессиональными компетенциями (ПК):
общепрофессиональными:
- способен использовать нормативные правовые документы в
профессиональной деятельности (ПК-1);
- способен при решении профессиональных задач анализировать социально-экономические проблемы и процессы с применением методов системного анализа и математического моделирования (ПК-2);
- способен использовать основные законы естественнонаучных дисциплин в профессиональной деятельности и эксплуатировать современное электронное оборудование и информационно-коммуникационные технологии в соответствии с целями образовательной программы бакалавра (ПК-3);
проектная деятельность:
- способен ставить и решать прикладные задачи с использованием современных информационно-коммуникационных технологий (ПК-4);
- способен осуществлять и обосновывать выбор проектных
решений по видам обеспечения информационных систем (ПК-5);
- способен документировать процессы создания информационных систем на всех стадиях жизненного цикла (ПК-6);
- способен использовать технологические и функциональные
стандарты, современные модели и методы оценки качества и
надежности при проектировании, конструировании и отладке
программных средств (ПК-7);
- способен проводить обследование организаций, выявлять
информационные потребности пользователей, формировать требования к информационной системе, участвовать в реинжиниринге прикладных и информационных процессов (ПК-8);
- способен моделировать и проектировать структуры данных
и знаний, прикладные и информационные процессы (ПК-9);
- способен применять к решению прикладных задач базовые
алгоритмы обработки информации, выполнять оценку сложности
алгоритмов, программировать и тестировать программы (ПК-10);
организационно-управленческая
и
производственнотехнологическая деятельность:
- способен принимать участие в создании и управлении ИС на
всех этапах жизненного цикла (ПК-11);
- способен эксплуатировать и сопровождать информационные
системы и сервисы (ПК-12);
- способен принимать участие во внедрении, адаптации и
настройке прикладных ИС (ПК-13);
- способен принимать участие в реализации профессиональных коммуникаций в рамках проектных групп, презентовать результаты проектов и обучать пользователей ИС (ПК-14);
аналитическая деятельность:
- способен проводить оценку экономических затрат на проекты по информатизации и автоматизации решения прикладных
задач (ПК-15);
- способен оценивать и выбирать современные операционные
среды и информационно-коммуникационные технологии для информатизации и автоматизации решения прикладных задач и создания ИС (ПК-16);
- способен применять методы анализа прикладной области на
концептуальном, логическом, математическом и алгоритмическом уровнях (ПК-17);
- способен анализировать и выбирать методы и средства
обеспечения информационной безопасности (ПК-18);
- способен анализировать рынок программно-технических
средств, информационных продуктов и услуг для решения прикладных задач и создания информационных систем (ПК-19);
- способен выбирать необходимые для организации информационные ресурсы и источники знаний в электронной среде (ПК20);
научно-исследовательская деятельность:
- способен применять системный подход и математические
методы в формализации решения прикладных задач (ПК-21);
- способен готовить обзоры научной литературы и электронных информационно-образовательных ресурсов для профессиональной деятельности (ПК-22).
3. ДИДАКТИЧЕСКИЕ ЕДИНИЦЫ
3.1. Теоретические основы информатики
Тема 1. Основные понятия информатики
Роль вычислительной техники в развитии современного общества. Понятие информации и информационного процесса.
Формы и способы передачи информации. Сообщения и сигналы.
Непрерывные и дискретные сообщения. Основные подходы к измерению количества информации. Понятие энтропии и ее свойства. Определение энтропии по формуле Шеннона. Мера Хартли.
Свойства энтропии дискретных и непрерывных сообщений. Единицы измерения количества информации.
Технические и программные средства реализации информационных процессов. Классификация ЭВМ и основные этапы их
развития. Структурная схема и основные компоненты персонального компьютера. Принципы фон Неймана. Основные классы архитектур ЭВМ: централизованная, иерархическая, магистральная.
Классы и архитектуры вычислительных систем: многомашинные
и многопроцессорные системы. Уровни и средства комплексирования ЭВМ. Классификация архитектур вычислительных систем
с параллельной обработкой данных (Флинн, Джонсон, Базу, Дункан, Кришнамарфи, Скилликорн, Хендлер, Хокни, Шор). Особенности различных архитектур вычислительных систем: симметричная мультипроцессорная обработка (SMP), асимметричная
мультипроцессорная обработка (ASMP), гибридная архитектура.
Кластерная архитектура. Типы кластеров. Связь процессоров в
кластерной системе.
Общее представление о структуре и архитектуре процессоров.
Классы процессоров: CISC, RISC, MISC,VLIW. Технологии повышения производительности процессоров: конвейерная обработка команд, векторная обработка. Перспективные типы процессоров: многоядерные, ассоциативные, клеточные, ДНК – процессоры, нейронные, процессоры с многозначной логикой
Тема 2. Арифметические основы ЭВМ
Понятие системы счисления. Позиционные и непозиционные
системы счисления. Базис и основание позиционной системы
счисления. Единственность представления числа в позиционной
системе счисления. Преобразование целых чисел из одной позиционной системы счисления в другую. Преобразование вещественных чисел из одной позиционной системы счисления в другую. Особенности троичной системы счисления. Двоичная, восьмеричная и шестнадцатеричная системы счисления. Использование промежуточных систем счисления для преобразования чисел
из одной позиционной системы счисления в другую. Выполнение
арифметических операций в различных позиционных системах
счисления.
Формы представления числовой информации в ЭВМ. Фиксированная и плавающая запятая. Нормализованная запись числа.
Понятие прямого, обратного и дополнительного кодов. Диапазоны представления целых и вещественных чисел. Выполнение
арифметических операций над числами, представленными в форме с фиксированной запятой. Признаки переполнения разрядной
сетки машины. Особенности выполнения операций над числами,
представленными в форме с плавающей запятой. Признаки
нарушения нормализации числа. Операции сдвига. Кодирование
символьной информации. ASCII-коды.
Использование нетрадиционных систем счисления. Понятие о
двоично-десятичных кодах. Особенности выполнения арифметических операций над двоично-десятичными кодами чисел. Двоичные коды с иррациональным основанием и особенности представления чисел в них. Арифметические операции в кодах с иррациональным основанием.
Тема 3. Оптимальное кодирование
Понятие оптимального кода. Средняя длина кодового слова.
Теорема о границе для средней длины кодовых слов. Неравенство
Крафта. Теорема Шеннона о кодировании для дискретных систем
без помех. Общая характеристика алгоритмов сжатия данных.
Алгоритм построения кода Шеннона-Фано. Код Хаффмана. Построение кодового дерева. Обратимое и необратимое сжатие.
Сжатие данных методом кодирования серий. Особенности арифметического кодирования. Адаптивный алгоритм Хаффмана.
Адаптивное арифметическое кодирование. Сжатие данных с использованием
алгоритма
Барроуза-Вилера.
Словарноориентированные алгоритмы сжатия информации. Методы Лемпеля-Зива. LZ - алгоритмы распаковки данных. Особенности построения программ – архиваторов. Алгоритмы сжатия информации с потерями.
Тема 4. Помехоустойчивое кодирование
Источники помех и ошибок в каналах связи. Модель двоичного симметричного канала. Классификация и характеристики
помехоустойчивых кодов. Основные принципы помехоустойчивого кодирования. Понятие кодового расстояния (расстояние
Хэмминга). Связь корректирующей способности кода с кодовым
расстоянием. Построение кодов с заданной корректирующей способностью. Показатели качества корректирующего кода. Простейшие коды с обнаружением ошибок. Код с проверкой на четность. Код с повторением элементов. Корреляционный код. Инверсный код.
Коды с обнаружением и исправлением ошибок. Необходимое и достаточное условие существования помехоустойчивого
кода с заданными характеристиками (нижняя граница Хэмминга
и верхняя граница Варшамова-Гильберта). Матричное представление систематических кодов. Нижняя граница Плоткина. Групповой код и наименьшее расстояние между его кодовыми словами. Совершенные и квазисовершенные коды. Коды Хэмминга.
Обнаружение и исправление однократных ошибок с помощью
кода Хэмминга. Геометрическая интерпретация корректирующих
кодов.
Тема 5. Полиномиальные коды
Представление двоичного кода в виде полинома. Основные
свойства и методы построения циклических кодов. Понятие неприводимого полинома. Матричное представление циклических
кодов. Порождающая и проверочная матрицы. Связь между степенью образующего полинома и корректирующей способностью
кода. Выбор образующего полинома. Алгоритм коррекции оши-
бок циклическими кодами. Определение количества вариантов
ошибок, не обнаруживаемых циклическими кодами. Особенности
построения кодов Боуза-Чоудхури-Хоквингема (БЧХ). Понятие
минимального полинома. Способы определения образующего
полинома для кодов БЧХ. Код Голея и его образующий полином.
Циклические избыточные коды (CRC). Пакеты ошибок. Особенности построения и использования кодов Файра. Коды СоломонаРида.
Основы теории защиты информации. Задачи криптографии и
простейшие схемы шифрования. Криптосистемы без передачи
ключей. Особенности криптосистем с открытым ключом. Понятие электронной подписи. Стандарты шифрования данных.
Тема 6. Логические основы ЭВМ
Предмет и метод алгебры высказываний. Понятие высказывания. Простые и составные высказывания. Операции над высказываниями: отрицание, конъюнкция, дизъюнкция, импликация, эквивалентность. Аксиомы алгебры высказываний. Определение
истинности логических выражений. Таблицы истинности.
Основные понятия булевой алгебры. Элементарные логические функции и их свойства. Основные законы булевой алгебры.
Тождественные преобразования булевых выражений. Нормальные формы булевых функций. Методы построения совершенных
дизъюнктивной и конъюнктивной нормальных форм.
Минимизация логических функций. Импликанта функции.
Алгоритм получения минимальной дизъюнктивной нормальной
формы. Теорема Квайна. Метод КвайнаМак-Класски. Метод
минимизирующих диаграмм Вейча. Минимизация не полностью
определенных логических функций. Техническая реализация логических функций. Логический базис. Синтез комбинационных
схем. Элементная база вычислительной техники.
3.2. Теоретические основы алгоритмизации
Тема 1. Неформальное понятие алгоритма
Понятие алгоритма и его основные свойства: массовость, дис-
кретность, детерминированность, результативность. Численные и
логические алгоритмы. Основные этапы разработки алгоритмов:
постановка задачи, построение математической модели, разработка алгоритма решения задачи, проверка правильности и оценка сложности алгоритма. Формы и способы представления алгоритмов. Правила построения алгоритмов из базовых алгоритмических конструкций. Типы алгоритмических процессов: линейные, ветвящиеся, циклические. Арифметические и итерационные
циклы. Вспомогательные алгоритмы.
Примеры алгоритмов из теории чисел. Использование алгоритма Евклида для нахождения наибольшего общего делителя.
Бинарный алгоритм Евклида. Определение общего и частного
решения диофантова уравнения. Метод последовательных приближений и его использование для нахождения частного двух
целых чисел. Алгоритм вычисления квадратного корня и его геометрический смысл. Обобщение метода последовательных приближений на случай решения нелинейных уравнений. Условия
сходимости и оценка абсолютной погрешности процесса последовательных приближений.
Понятие об алгоритмически неразрешимых проблемах. Примеры классических алгоритмически неразрешимых задач из различных разделов алгебры и геометрии (задачи о квадратуре круга, трисекции угла и удвоении куба; гипотеза Эйлера о представлении четного числа в виде суммы двух простых чисел; десятая
проблема Гильберта о разрешимости линейных диофантовых
уравнений в целых числах; теорема Ферма).
Тема 2. Элементы теории алгоритмов
Кризис математики в начале ХХ века и попытка его разрешения в теории множеств. Необходимость формализации понятия
алгоритма. Возникновение и развитие общей теории алгоритмов,
ее место в системе математического образования. Основные
направления исследований в теории алгоритмов.
Понятие конструктивного объекта и его взаимосвязь с понятием алгоритма. Примеры конструктивных объектов. Область
применимости алгоритма. Понятие абстрактного алфавита. Слово
в абстрактном алфавите как конструктивный объект. Алфавит-
ный оператор как обобщенная операция преобразования информации. Типы алфавитных операторов в абстрактных алфавитах.
Область определения алфавитного оператора. Понятие кодирующего отображения. Условия обратимости кодирования. Нормальное кодирование. Взаимосвязь между алфавитным оператором и
алгоритмом. Понятие эквивалентности алгоритмов.
Преобразование слов в абстрактном алфавите. Понятие ассоциативного исчисления и способы его задания. Ориентированные
и неориентированные подстановки. Смежные слова в ассоциативном исчислении. Проблема эквивалентности слов в ассоциативном исчислении и ее алгоритмическая неразрешимость.
Тема 3. Введение в алгоритмические системы
Понятие алгоритмической системы и ее основные компоненты. Типы алгоритмических систем: рекурсивные функции, нормальные алгоритмы Маркова, машины Поста и Тьюринга, абстрактные автоматы, формальные грамматики. Построение и запись алгоритмов в основных алгоритмических системах. Эквивалентность различных теорий алгоритмов. Теорема Черча.
Машина Тьюринга как математическая модель алгоритма.
Алфавит, состояния и элементарные операции в машине Тьюринга. Конфигурация машины Тьюринга и ее программа. Задание
программы машины Тьюринга функциональной схемой. Реализация численных алгоритмов в машине Тьюринга. Вычислимые по
Тьюрингу функции. Основная гипотеза теории алгоритмов. Особенности ЭВМ как алгоритмической системы.
3.3. Основы программирования на языке С++
Тема 1. Системы программирования
История развития и классификация языков программирования. Краткий обзор современных парадигм программирования:
процедурная, объектно-ориентированная, функциональная, сценарная. Сравнительная характеристика языков программирования
высокого уровня. Структура алгоритмического языка. Понятие
синтаксиса, семантики, прагматики и лексики. Формальное опре-
деление грамматики языка и ее элементы. Основные способы задания правил грамматики: нормальные формы Бэкуса-Наура,
синтаксические диаграммы, язык метасимволов. Использование
принципа рекурсии в правилах грамматики.
Понятие и структура системы программирования. Последовательность обработки программы от исходного текста на языке
высокого уровня до исполняемого кода. Назначение и функции
транслятора. Компиляторы и интерпретаторы. Основные этапы
трансляции программы: лексический, синтаксический и семантический анализ, генерация и оптимизация объектного кода. Особенности проектирования и функционирования компиляторов.
Многопроходные и однопроходные компиляторы. Особенности
построения интерпретаторов. Реализация компиляторов с языка
ассемблера. Назначение и функции компоновщика. Схема функционирования редактора связей. Структура объектного и загрузочного модуля. Назначение и функции загрузчика прикладных
программ. Методы трансляции адресов программы. Особенности
функционирования динамических загрузчиков. Библиотеки подпрограмм как составная часть системы программирования. Статические и динамически загружаемые библиотеки. Достоинства и
недостатки динамической загрузки. Понятие мобильности и
обеспечение переносимости программных продуктов. Мобильные системы программирования.
Тема 2. Лексические основы языка С++
Основные этапы решения задач на ЭВМ: постановка задачи и
ее формализация, выбор структур данных и разработка алгоритма, реализация структур данных и алгоритма на языке программирования, отладка, тестирование и документирование программы. Понятие технологии разработки программного продукта и
структура его жизненного цикла. История создания С++ как языка объектно-ориентированного программирования.
Понятие лексемы и основные лексические структуры языка.
Идентификаторы и служебные слова. Переменные и константы.
Целочисленные и вещественные константы. Правила записи числовых констант в различных системах счисления. Представление
вещественных констант в десятичной и экспоненциальной фор-
мах. Символьные константы и управляющие последовательности.
Особенности представления строковых констант. Структура и
компоненты консольного приложения. Основные этапы подготовки исполняемого файла. Особенности препроцессорного преобразования программы. Директивы препроцессора.
Тема 3. Фундаментальные типы данных
Теория структурной организации данных Хоара. Концепция
типа данных в языках программирования. Классификация типов
данных языка С++. Фундаментальные и производные типы.
Определение и инициализация переменных в языке С++.
Идентификаторы и модификаторы базовых типов. Арифметические типы данных и стандарты их внутреннего представления в
памяти ЭВМ. Предельные значения арифметических констант и
целочисленных переменных в прямом и дополнительном кодах.
Формы внутреннего представления данных с плавающей запятой.
Нормализация вещественного числа. Признаки нарушения нормализации. Представление логических данных. Определение и
инициализация символьных переменных. Кодовые таблицы. Тип
void. Понятие области видимости переменной. Локальные и глобальные переменные. Операция доступа к области видимости.
Способы объявления и инициализации именованных констант.
Правила определения типов констант и их явное объявление с
помощью суффиксов. Квалификатор доступа const.
Выражения и операции в языке программирования С++. Основные правила записи выражений. Классификация операций по
числу операндов и типу выполняемой операции. Арифметические
операции. Префиксная и постфиксная формы использования операций инкремента и декремента. Операции отношения и логические операции. Таблицы истинности логических операций. Особенности использования поразрядных логических операций.
Операции сдвига. Использование операций сдвига для умножения и целочисленного деления операндов. Организация ветвлений в программах при помощи условной операции. Особенности
использования простого и составного присваивания. Вычисление
размера переменных и типов данных. Приоритет и порядок выполнения операций. Правила преобразования типов данных в вы-
ражениях. Особенности выполнения операции явного приведения
типа между несовместимыми типами данных. Стандартные математические функции и правила их использования в выражениях. Функции преобразования данных.
Тема 4. Управление вычислительным процессом
Основные принципы структурного программирования. Теорема Бойма и Джакопини о структурировании программ. Базовые
управляющие структуры: следование, ветвление, цикл с предусловием. Общая характеристика и классификация операторов
языка. Простой и составной оператор. Отличие между составным
оператором и блоком программы. Синтаксис и семантика условного оператора и оператора множественного выбора. Особенности использования вложенных условных операторов в программах. Необходимость включения оператора break в оператор множественного выбора. Синтаксис и семантика операторов цикла.
Условные операторы цикла и взаимосвязь между ними. Особенности использования оператора цикла с параметром. Организация
вложенных циклов в программах. Операторы передачи управления break и continue, и их применение в операторах цикла. Оператор безусловного перехода и ограничения в его использовании.
Определение меток и пустой оператор.
Особенности организации операций ввода–вывода в языке
С++. Заголовочные файлы и их структура. Стандартная библиотека ввода–вывода. Препроцессорная директива #include. Функции форматного ввода–вывода scanf() и printf(). Структура форматной строки. Спецификации преобразования для различных
типов данных. Флаги и модификаторы типов. Точность представления числовых данных. Использование управляющих последовательностей в функциях форматного ввода–вывода. Задание
множества поиска в функции scanf(). Особенности ввода–вывода
символьных данных. Функции getch() и putch(). Особенности
ввода–вывода строк. Функции gets() и puts().
Тема 5. Производные типы данных
Общая характеристика типов данных, определяемых пользо-
вателем. Массивы и переменные с индексами. Основные свойства
массивов. Определение и инициализация элементов одномерного
массива. Многомерный массив. Размещение элементов многомерного массива в памяти и организация доступа к ним. Особенности инициализации элементов многомерного массива. Представление строки как одномерного массива символов. Особенности определения и инициализации строковых переменных. Основные функции для выполнения операций над строками.
Статические и динамические переменные. Преимущества использования динамических переменных в программах. Адреса и
указатели. Объявление и инициализация указателей. Определение адреса переменной в памяти. Получение значения переменной по указанному адресу. Понятие нулевого адреса. Особенности реализации арифметических операций над указателями. Родовой указатель и особенности его использования в выражениях.
Связь между указателями и массивами. Общность операций индексирования и адресной арифметики. Использование механизма
указателей для доступа к элементам одномерного массива. Особенности организации доступа к элементам многомерного массива через указатель. Определение массива указателей и инициализация его элементов. Особенности внутреннего представления
массива указателей в памяти ЭВМ. Представление многомерного
массива с помощью массива указателей. Использование указателей для организации косвенной адресации данных. Операции выделения и освобождения динамической памяти. Роль указателей в
обработке динамических массивов. Функции управления динамическим распределением памяти.
Понятие структурного типа данных и его отличие от массива.
Определение шаблона структуры. Объявление структурной переменной и инициализация ее полей. Доступ к элементам структуры. Особенности использования операции присваивания для
структурных переменных. Правила выравнивания структурных
переменных в памяти. Массивы и структуры в качестве элементов структур. Организация доступа к полям вложенной структуры. Понятие массива структур. Указатель на структурную переменную. Способы доступа к элементам структурной переменной
через указатель на нее. Указатели на структуры как компоненты
структур. Особенности использования битовых полей в структурах. Понятие объединения и его отличие от структуры. Особенности инициализации объединений. Перечислимый тип данных.
Определение и инициализация перечислений. Выделение памяти
под переменную перечислимого типа. Особенности использования переменных перечислимого типа в выражениях.
Тема 6. Элементы модульного программирования
Основные принципы модульного программирования. Общие
сведения о функциях в языке С++. Структура функции и область
ее видимости. Особенности определения и компиляции встроенных функций. Тип значения, возвращаемого функцией и оператор return. Понятие формального и фактического параметра.
Инициализация параметров функции значениями по умолчанию.
Прототипы функций и их описание в заголовочных файлах. Особенности передачи параметров функции по значению. Реализация
методов передачи параметров функции по адресу. Использование
стека для передачи аргументов в функцию.
Область действия и область видимости идентификаторов.
Классы памяти. Автоматические и регистровые переменные. Использование регистровой памяти для хранения данных. Локальные и глобальные статические переменные. Использование статических переменных в функциях. Понятие внешней переменной
и область ее действия. Особенности объявления и использования
внешних переменных. Понятие пространства имен и его объявление. Пространство имен стандартной библиотеки.
Массивы и структуры как формальные параметры функций.
Определение и инициализация указателя на функцию. Вызов
функции через указатель на нее. Использование указателя на
функцию в качестве формального параметра. Возврат указателя
функцией. Функции с переменным числом параметров. Организация доступа к списку параметров через указатель. Функция
main() и ее аргументы. Перегрузка функций. Особенности определения и компиляции перегруженных функций. Понятие шаблона функции и его использование при разработке программ.
3.4. Объектно-ориентированное
программирование на языке С++
Тема 1. Объектные модели систем
Перспективные направления в области создания технологий
программирования. Проблемы разработки программного обеспечения. Становление и развитие объектно-ориентированной технологии. Примеры и характеристики задач, решаемых с использованием объектно-ориентированного подхода. Причины сложности программного обеспечения. Общие признаки сложных систем. Понятие объектно-ориентированной и алгоритмической
декомпозиции. Основные принципы объектно-ориентированного
подхода к разработке программ: абстрагирование, инкапсуляция,
модульность. Методы иерархической организации абстракций.
Типизация, параллелизм и сохраняемость объектной модели.
Понятие объекта, его состояние и атрибуты. Статические и
динамические свойства. Поведение объектов и основные виды
операций, выполняемых над ними. Проблема идентификации
объектов и методы ее решения. Организация взаимодействия
объекта с окружающим миром. Понятие интерфейса, сообщения
и метода. Функционирование систем как процесс взаимодействия
объектов. Типы отношений между объектами: связи и агрегация.
Понятие класса и его общая характеристика. Основные виды
отношений между классами. Отношение наследования и его использование для построения многоуровневой иерархии классов.
Свойства простого и множественного наследования. Базовые,
производные, конкретные и абстрактные классы. Использование
принципа полиморфизма в объектной модели. Понятие ассоциации и ее мощности. Примеры ассоциаций с различными типами
мощностей. Особенность отношения агрегации между классами и
его отличие от множественного наследования. Отношения зависимости и конкретизации. Взаимосвязь классов и объектов.
Этапы объектно-ориентированного проектирования систем.
Язык визуального моделирования UML как средство построения
объектно-ориентированных моделей предметной области. Статические и динамические модели. Методология построения моде-
лей предметной области с помощью канонических диаграмм.
Тема 2. Класс как абстрактный тип данных
Понятие класса как абстрактного типа данных. Определение
класса и область видимости его элементов. Спецификаторы доступа к компонентам класса. Особенности объявления и инициализации полей класса. Понятие компонентной функции. Способы
создания объектов в программе, их время жизни и область видимости. Операция принадлежности метода классу. Константные
объекты и константные методы. Способы доступа к элементам
класса через имя объекта и указатель на него. Указатель this и
особенности его использования для доступа к полям и методам
объекта.
Инициализация объектов класса. Понятие конструктора и его
отличие от компонентной функции. Особенности объявления
конструкторов и синтаксические формы их вызова. Методы инициализации полей объекта при помощи конструкторов с параметрами. Конструкторы, создаваемые и используемые по умолчанию. Конструктор копирования и его аргументы. Понятие деструктора и особенности его использования для разрушения объектов.
Определение статических полей и методов класса. Особенности выделения памяти под статическое поле. Понятие дружественной функции. Особенности определения и вызова дружественных функций. Использование дружественных функций для
доступа к скрытым и защищенным компонентам класса. Определение дружественных классов. Понятие указателя на компоненты
класса и его отличие от указателя на объекты. Определение и
инициализация указателей на поля и методы класса. Организация
доступа к компонентам класса через указатель на объект. Особенности объявления и использования встроенных компонентных
функций.
Перегрузка операций и функций как один из способов реализации принципа полиморфизма. Определение функционального
класса и особенности перегрузки операции вызова функции. Перегрузка конструктора объекта и его вызов с использованием
указателя this. Понятие операторной функции и методы ее опре-
деления. Правила перегрузки операций. Особенности перегрузки
унарных и бинарных операций. Перегрузка операции ссылки на
компонент класса. Реализация перегрузки операций сравнения,
присваивания и операции приведения типов данных. Особенности перегрузки операций инкремента и декремента. Перегрузка
операций выделения и освобождения областей в динамической
памяти. Реализация перегрузки операции индексирования при
работе с массивами. Использование дружественных функций для
перегрузки операций.
Тема 3. Основы наследования классов
Общая характеристика механизма наследования классов и его
использование для создания многоуровневой иерархии объектов.
Базовые и производные классы. Объявление производного класса
и режимы доступа к его компонентам. Особенности использования конструкторов и деструкторов при простом наследовании.
Порядок вызова конструкторов и деструкторов базовых классов.
Использование ссылочных переменных для доступа к объектам
базового и производного классов. Организация доступа к защищенным компонентам класса. Наследование и статические методы класса.
Понятие виртуальной функции и полиморфного класса. Особенности объявления и использования виртуальных функций.
Вызов виртуальной функции через указатель на базовый класс.
Реализация механизмов статического и динамического связывания. Структура таблиц виртуальных функций и особенности их
создания компилятором. Определение чистой виртуальной функции в базовом классе. Понятие абстрактного класса и полиморфной функции. Особенности механизмов виртуального вызова в
конструкторах и деструкторах. Виртуальные деструкторы.
Множественное наследование классов. Организация доступа
к компонентам базовых классов при множественном наследовании. Виртуальные базовые классы. Особенности использования
конструкторов и деструкторов при множественном наследовании.
Тема 5. Потоковый ввод–вывод данных
Классификация способов организации ввода–вывода. Понятие
потока и его свойства. Текстовые и двоичные потоки. Иерархия
потоковых классов. Основные классы потоков и заголовочные
файлы, определяющие их. Стандартные потоки и предопределенные объекты. Использование операций извлечения и помещения
в поток для организации консольного ввода–вывода информации.
Форматирование данных при обмене с потоками. Флаги форматирования потока и манипуляторы. Простые и параметризованные манипуляторы. Методы анализа и управления состоянием
потока. Функции обмена данными с двоичными потоками. Организация консольного ввода–вывода данных пользовательских
типов. Особенности перегрузки операций ввода–вывода. Понятие
строкового потока и формы вызова его конструкторов. Использование строковых потоков для межмодульного обмена данными.
Общая характеристика стандартных классов файловых потоков. Особенности технологии работы с файлами. Методы открытия файлов и связывания их с потоком. Формы вызова конструкторов файловых потоков. Константы режимов работы с файлами.
Методы обмена данными между файлом и потоком. Организация
произвольного и последовательного доступа к файлу. Использование функций символьного и строкового файлового вводавывода.
Тема 6. Обработка исключительных ситуаций
Общие принципы обработки исключительных ситуаций.
Определение контролируемого блока в программе. Синтаксис
оператора генерации исключений и особенности использования
его сокращенной формы. Способы определения обработчиков
исключительных ситуаций. Реализация перехвата всех исключений. Стандартная функция обработки неизвестного исключения.
Определение списка исключительных ситуаций для функции.
Использование исключений в конструкторах и деструкторах.
Глобальные переменные и классы поддержки механизма исключений. Организация обработки ошибок при динамическом выделении памяти.
Характеристика методов явного преобразования типов дан-
ных. Преобразование указателей родственных классов в иерархии. Понятие понижающего, повышающего и перекрестного преобразования. Операции преобразования типов данных на этапе
компиляции. Назначение системы динамической идентификации
типов. Особенности реализации механизма динамической идентификации. Организация обработки исключительных ситуаций
во время динамического преобразования типов данных в программах.
Тема 7. Шаблоны и контейнерные классы
Понятие шаблона классов и правила его создания. Классы и
встроенные типы данных как аргументы шаблонов. Использование в шаблоне классов параметров по умолчанию. Особенности
объявления объектов шаблона классов. Базовые и производные
шаблоны. Способы переопределения методов шаблона классов.
Характеристика стандартной библиотеки шаблонов STL и ее
основных компонентов. Классы стандартной библиотеки шаблонов и заголовочные файлы, определяющие их. Понятие контейнерного класса. Последовательные и ассоциативные контейнеры.
Глобальные поля контейнерных классов и их назначение. Базовые операции над последовательными контейнерами. Основные
методы, используемые для работы с векторами, двусторонними
очередями и списками. Особенности реализации стека и очереди
на основе контейнерных классов. Типы ассоциативных контейнеров и особенности их построения. Базовые методы для работы со
словарями и множествами. Словари и множества с дубликатами.
Понятие итератора и его основные категории. Функциональные объекты и адаптеры функций. Классификация и общая характеристика алгоритмов стандартной библиотеки шаблонов.
3.5. Структуры данных и алгоритмы
Тема 1. Абстрактные структуры данных
Понятие абстрактного типа данных и его взаимосвязь с понятием структуры. Основные структуры хранения данных: вектор,
список, сеть и особенности их размещения в оперативной памяти.
Проблема отображения абстрактных структур данных на структуры хранения. Классификация абстрактных структур данных.
Линейные и нелинейные, статические и динамические структуры.
Структуры с прямым и последовательным доступом.
Основные линейные абстрактные структуры данных: список,
очередь, стек. Виды линейных списков: односвязный, двусвязный, кольцевой. Структура элементов односвязного и двусвязного списков. Реализация основных операций над линейными списками. Формирование и организация доступа к элементам линейного списка. Включение, удаление и просмотр элементов односвязного и двусвязного списков. Использование рекурсии при
работе с линейными динамическими списками. Особенности
формирования и обработки элементов кольцевого списка. Векторное представление очереди и стека. Представление очереди и
стека на основе линейного списка. Реализация основных операций с очередью и стеком. Алгоритм преобразования арифметического выражения в обратную польскую запись.
Нелинейные структуры данных. Общие сведения о деревьях.
Представление деревьев в оперативной памяти с помощью массивов и связанных списков. Понятие бинарного дерева. Формирование идеально сбалансированного бинарного дерева. Организация рекурсивного обхода вершин. Формирование бинарного
дерева поиска. Сбалансированные бинарные деревья поиска.
Оценка вычислительной сложности операций поиска в бинарных
деревьях. Понятие об оптимальных деревьях поиска. Реализация
основных операций над бинарными деревьями.
Тема 2. Алгоритмы поиска и сортировки
Общая характеристика алгоритмов сортировки данных и основные требования, предъявляемые к ним. Внутренняя и внешняя
сортировка. Сортировка элементов методом прямого включения.
Использование метода прямого выбора для упорядочивания элементов массива. Сортировка данных методом прямого обмена.
Шейкерная сортировка. Оценка числа сравнений и перестановок
в прямых методах сортировки. Улучшенные алгоритмы сортировки данных. Основная идея алгоритма сортировки с убываю-
щим шагом. Сортировка элементов массива с помощью пирамиды. Особенности реализации алгоритма быстрой сортировки
Хоара и оценка его временной сложности.
Общая характеристика алгоритмов сортировки последовательностей. Алгоритмы двухфазной и однофазной сортировки
данных прямым слиянием. Использование двухфазной сортировки естественным слиянием для упорядочивания элементов последовательности. Оценка числа операций чтения и записи в алгоритмах сортировки слиянием. Особенности реализации сбалансированного многопутевого слияния. Оценка общего числа пересылок данных при многопутевом слиянии. Многофазная сортировка.
Организация табличных структур данных. Общая характеристика алгоритмов поиска в таблицах. Линейный поиск в неупорядоченных таблицах. Особенности линейного поиска с заграждающим элементом. Бинарный поиск в упорядоченной таблице.
Оценка вычислительной сложности алгоритмов поиска. Понятие
о древовидных таблицах поиска и их структура. Основные операции над древовидными таблицами. Таблицы с вычисляемыми
входами. Выбор функции рандомизации. Алгоритмы вычисления
хеш-функций. Понятие коллизии и методы ее разрешения.
Тема 3. Алгоритмы на сетях и графах
Граф как абстрактная структура данных. Матричное представление ориентированных и неориентированных графов. Матрица смежности и матрица инцидентности. Представление графов в виде векторов и списков смежности. Понятие пути в графе.
Транзитивное замыкание матрицы смежности. Использование
алгоритма Уоршелла для нахождения транзитивного замыкания
произвольного графа. Минимальная путевая матрица.
Определение дерева и его свойства. Цикломатическое число
графа. Теорема Кирхгофа о числе остовных деревьев в связном
графе и ее следствия. Теорема Кэли о числе помеченных деревьев
в полном графе. Систематический обход вершин и ребер графа.
Алгоритмы поиска в ширину и поиска в глубину в ориентированном и неориентированном графах. Задача о кратчайшем остовном
дереве и ее практическое применение. Общая характеристика ал-
горитмов построения остовных деревьев минимальной стоимости. Обоснование алгоритмов Прима и Краскала и их использование для поиска оптимальных покрывающих деревьев. Понятие
ориентированного ациклического графа. Проверка ацикличности
ориентированного графа методом поиска в глубину. Топологическая сортировка вершин ациклического графа.
Поиск оптимальных путей между вершинами графа. Задача о
кратчайшем пути как задача линейного программирования.
Обоснование алгоритма Дейкстры и его использование для
нахождения кратчайшего пути между двумя вершинами графа.
Обобщение алгоритма Дейкстры на случай отрицательных весов
дуг. Особенности использования алгоритма Флойда для поиска
кратчайшего пути между произвольной парой вершин графа.
Оценка вычислительной сложности алгоритмов Дейкстры и
Флойда. Использование метода двойного поиска для нахождения
первых k кратчайших путей между двумя вершинами графа.
Оценка вычислительной сложности метода двойного поиска.
Понятие эйлерова цикла и эйлерова графа. Задача о кенигсбергских мостах. Необходимое и достаточное условие существования эйлерова цикла в неориентированном графе. Использование алгоритма Флери для нахождения эйлерова цикла. Задача
о кругосветном путешествии. Понятие гамильтонова цикла и гамильтонова графа. Проблема распознавания гамильтоновости
графа. Задача коммивояжера и примеры задач, сводящихся к ней.
Решение задачи коммивояжера как задачи целочисленного программирования. Приближенное нахождение гамильтонова цикла
с помощью алгоритмов Эйлера и Кристофидеса. Использование
метода ветвей и границ для нахождения гамильтонова цикла минимальной длины в полном неориентированном графе.
Потоки в транспортных сетях. Принцип сохранения потока.
Разрез сети и его пропускная способность. Теорема о максимальном потоке и минимальном разрезе. Задача о максимальном потоке как задача линейного программирования. Обоснование алгоритма Форда – Фалкерсона и его использование для нахождения максимального потока в сети. Поиск максимального потока в
сети при нескольких источниках и стоках.
3.6. Основы проектирования трансляторов
Тема 1. Формальные языки и грамматики
Понятие цепочки символов и ее длины. Операция конкатенации и ее свойства. Замена, обращение и итерация цепочки символов. Формальное определение языка и его алфавита. Способы
задания языков. Понятие синтаксиса, семантики и лексики языка.
Особенности языков программирования. Формальное определение грамматики языка и способы ее задания. Терминальные и нетерминальные символы. Правила грамматики. Форма Бэкуса –
Наура. Принцип рекурсии в правилах грамматики. Особенности
записи правил грамматик в графическом виде и с использованием
языка метасимволов. Понятие распознавателя и его основные
компоненты. Виды распознавателей: двусторонние и односторонние, детерминированные и недетерминированные, без внешней памяти, с ограниченной и неограниченной внешней памятью.
Классификация языков и грамматик. Типы грамматик по
Хомскому: грамматики с фразовой структурой, контекстнозависимые, контекстно-свободные и регулярные грамматики.
Классификация языков по типу грамматик и их примеры. Понятие цепочки вывода. Сентенциальная форма грамматики. Язык,
заданный грамматикой. Левосторонний и правосторонний выводы. Методы построения дерева вывода. Однозначные и неоднозначные грамматики. Проверка однозначности и эквивалентности
грамматик.
Тема 2. Основы построения трансляторов
Формальное определение транслятора. Понятие компилятора
и его отличие от понятия транслятора. Объектная программа. Отличительные особенности интерпретаторов. Основные этапы
трансляции программы: лексический, синтаксический и семантический анализ, генерация и оптимизация кода. Понятие прохода.
Многопроходные и однопроходные компиляторы. Особенности
построения и функционирования компиляторов с языков высокого уровня. Особенности построения интерпретаторов, их преимущества и примеры реализации. Характеристика языка ассем-
блера. Реализация компиляторов с языка ассемблера. Понятие
макрокоманды, макрогенерации и макроопределения. Примеры
макрокоманд. Понятие и функции препроцессора. Препроцессор
языка С.
Назначение и особенности построения таблиц идентификаторов. Построение таблиц идентификаторов по методу бинарного
дерева. Оценка среднего времени поиска элемента в бинарном
дереве. Понятие хэш-функции и хэш-адресация. Проблема коллизий и способы ее решения. Методы рехэширования (расстановки)
элементов. Построение таблиц идентификаторов по методу цепочек.
Тема 3. Лексические анализаторы
Назначение лексических анализаторов и результаты их работы. Таблица лексем. Принципы построения лексических анализаторов. Проблема определения границ лексем. Параллельное и
последовательное взаимодействие лексического и синтаксического анализаторов. Особенности регулярных и автоматных грамматик. Леволинейные и праволинейные автоматные грамматики.
Алгоритм преобразования регулярной грамматики к автоматному
виду и примеры его использования. Понятие конечного автомата.
Граф переходов для конечного автомата. Понятие детерминированного и недетерминированного конечного автомата. Преобразование конечного автомата к детерминированному виду. Задача
минимизации конечных автоматов. Понятие регулярного множества и регулярного выражения. Свойства регулярных выражений.
Системы уравнений с регулярными коэффициентами и методы их
решения.
Алгоритмы построения лексических анализаторов. Свойства
регулярных языков. Способы задания регулярных языков: регулярные грамматики, конечные автоматы и регулярные множества. Построение регулярного выражения для языка, заданного
леволинейной грамматикой. Алгоритм построения конечного автомата на основе леволинейной грамматики. Примеры построения лексических анализаторов. Общая характеристика программы LEX.
Тема 4. Синтаксические анализаторы
Назначение синтаксических анализаторов. Понятие автомата
с магазинной памятью и схема его функционирования. Проблемы
построения синтаксических анализаторов. Нисходящие и восходящие распознаватели. Понятие приведенной грамматики и алгоритм ее формирования. Принципы работы распознавателей с возвратом. Реализация алгоритма распознавателя с подбором альтернатив. Реализация распознавателя с возвратами на основе алгоритма «сдвиг - свертка». Нисходящие распознаватели контекстно-свободных языков без возвратов. Левосторонний разбор
по методу рекурсивного спуска Понятие LL(k)-грамматики и ее
свойства. Синтаксический разбор для LL(1)-грамматик. Алгоритмы построения множеств FIRST и FOLLOW. Восходящие распознаватели контекстно-свободных языков без возвратов. Понятие
LR(k)-грамматики и ее свойства. Синтаксический разбор для
LR(0)- и LR(1)-грамматик. Общая характеристика программы
YACC.
Тема 5. Генерация и оптимизация кода
Назначение семантического анализа и его этапы. Идентификация лексических единиц языков программирования. Особенности распределения памяти в компиляторах. Распределение памяти для переменных скалярных типов и сложных структур данных.
Выравнивание границ. Статическое и динамическое связывание.
Общие принципы генерации кода. Понятие синтаксически
управляемого перевода. Способы внутреннего представления
программ. Префиксная, инфиксная и постфиксная формы записи
выражений. Преобразование дерева семантического разбора в
дерево операций. Особенности представления выражений в формах тетрад и триад. Вычисление выражений с помощью обратной
польской записи. Алгоритм преобразования выражения из инфиксной формы в обратную польскую запись. Схема синтаксически управляемого перевода для арифметических операций. Общие принципы оптимизации кода. Показатели эффективности
результирующей программы. Виды оптимизирующих преобразований. Принципы оптимизации линейных участков программы.
Оптимизация вычисления логических выражений и передачи параметров в процедуры и функции. Особенности оптимизации
циклов. Характеристика машинно-зависимых методов оптимизации программ.
3.7. Вычислительные системы, сети
и телекоммуникации
Тема 1. Архитектура вычислительных машин
История создания и тенденции развития вычислительной техники. Поколения электронных вычислительных машин и их особенности. Классификация ЭВМ. Основные функциональные характеристики персональных компьютеров. Понятие архитектуры
и магистрально-модульный принцип построения вычислительных
машин. Структурные схемы и взаимодействие устройств персонального компьютера.
Внутренняя архитектура компьютера: процессор, оперативная
память. Принцип программного управления. Иерархическая
структура запоминающих устройств. Структура запоминающих
устройств с адресным и ассоциативным обращением. Логическая
структура оперативной памяти. Понятие адресного пространства.
Организация обращений к оперативной памяти. Статическая и
динамическая оперативная память. Регистровая кэш-память. Типы модулей оперативной памяти. Классификация внешних запоминающих устройств. Файловые системы и их функции. Логическая организация файловых систем. Размещение информации на
магнитных дисках. Накопители на гибких и жестких магнитных
дисках. Накопители на оптических дисках с однократной и многократной записью. Цифровые диски DVD.
Общая характеристика и классификация периферийных
устройств ЭВМ. Конструктивные особенности и принципы
функционирования различных внешних устройств персонального
компьютера (монитор, клавиатура, графические манипуляторы,
матричные, лазерные и струйные принтеры, сканеры, дигитайзеры, плоттеры, мультимедийные средства).
Тема 2. Архитектура вычислительных сетей
Эволюция систем передачи данных. Классификация и архитектура информационно-вычислительных сетей. Характеристика
типовых топологий вычислительных сетей. Методы адресации
узлов сети. Уровни управления в модели взаимодействия открытых систем. Структура сообщений на разных уровнях управления. Сетевые интерфейсы и протоколы. Методы коммутации и
передачи данных. Коммутация каналов, сообщений и пакетов.
Особенности дейтаграммного и виртуального способов передачи
данных. Методы адресации узлов в сети. Протоколы разрешения
адресов. Алгоритмы маршрутизации пакетов. Методы управления потоками в вычислительной сети. Защита от перегрузок.
Интерфейсы и протоколы физического уровня. Характеристика аппаратуры и физической среды передачи данных. Цифровые и аналоговые линии связи. Соотношение между полосой
пропускания и пропускной способностью линии. Беспроводные
линии связи. Диапазоны электромагнитного спектра. Интерфейсы
и протоколы канального уровня в модели OSI. Битовые и знаковые протоколы. Синхронная и асинхронная передача данных.
Методы повышения надежности битового тракта. ARQ-методы
повторной передачи. Протокол сетевого уровня X.25. Заголовок
пакета данных в стандарте X.25. Основные функции транспортной службы. Структура сообщений транспортного уровня. Протоколы высокого уровня.
Организация информационного обмена в сети Internet. Пятиуровневая архитектура управления в Internet. Структура IPпакета. Адресация данных в сетях TCP/IP. Локальные и сетевые
адреса. Доменные имена. Классы IP-адресов и их формат. Использование масок при IP-адресации. Механизм отображения IPадресов на локальные адреса. Протокол межсетевого взаимодействия. Принципы IP-маршрутизации. Статическая и динамическая маршрутизации в Internet. Протоколы транспортного уровня
TCP и UDP. Протоколы прикладного уровня Internet – протокол
удаленного доступа TELNET и протокол передачи файлов FTP.
Принципы организации системы телеконференций USENET.
3.8. Операционные системы, среды и оболочки
Тема 1. Общие сведения об операционных системах
Основные этапы развития программного обеспечения ЭВМ.
Структура системного программного обеспечения. Назначение и
функции операционных систем. Понятие операционной системы
и операционной среды. Основные принципы построения операционных систем. Функциональные компоненты операционной
системы автономного компьютера. Сетевые и распределенные
операционные системы. Функциональные компоненты сетевой
операционной системы. Сетевые службы и сетевые сервисы. Одноранговые и серверные сетевые операционные системы. Понятие ресурса. Основные виды ресурсов. Классификация операционных систем. Режимы работы операционных систем. Организация мультипрограммной обработки данных. Системы разделения
времени. Системы реального времени.
Архитектура операционной системы. Понятие ядра и его
функции. Вспомогательные модули операционных систем. Особенности привилегированного режима работы операционных систем. Концепция многослойного построения операционных систем. Средства аппаратной поддержки операционных систем.
Концепция микроядерной архитектуры, ее преимущества и недостатки. Проблема совместимости программных сред.
Тема 2. Управление процессами и потоками
Понятие вычислительного процесса и потока. Диаграмма состояний процесса. Контекст и дескриптор процесса. Планирование и диспетчеризация процессов. Классификация и общая характеристика алгоритмов планирования в мультипрограммных
системах. Вытесняющие и невытесняющие алгоритмы планирования. Дисциплины планирования, основанные на квантовании
времени обслуживания. Граф состояний потока в системе с квантованием времени. Алгоритмы оперативного планирования процессов с абсолютными и относительными приоритетами. Графы
состояний потоков в системах с относительными и абсолютными
приоритетами. Планирование процессов с использованием дина-
мических приоритетов. Особенности алгоритмов планирования в
системах реального времени.
Организация мультипрограммной обработки на основе прерываний. Понятие прерывания и его типы. Аппаратная поддержка механизма прерываний. Алгоритмы обработки прерываний.
Внутренние и внешние прерывания. Диспетчеризация прерываний в операционных системах. Программные прерывания и алгоритмы их обслуживания. Понятие системного вызова. Децентрализованная и централизованная схемы обработки системных вызовов.
Распределение ресурсов между конкурирующими процессами. Независимые и взаимодействующие вычислительные процессы. Понятие критического ресурса и проблема синхронизации
процессов. Синхронизация параллельных процессов с помощью
механизма блокировки памяти. Алгоритм Деккера. Понятие семафора и семафорные операции. Синхронизация взаимодействующих процессов с использованием двоичных семафоров. Мониторы Хоара. Использование почтовых ящиков для синхронизации
параллельных процессов. Понятие тупиковой ситуации и причины ее возникновения. Примеры тупиковых ситуаций. Алгоритмы
обнаружения и стратегии предотвращения тупиков.
Тема 3. Управление памятью
Функции операционной системы по управлению памятью.
Понятие символьного, виртуального и физического адресов. Виртуальное адресное пространство процесса. Методы отображения
виртуального адресного пространства на физическую память.
Непрерывное распределение памяти в однопрограммных операционных системах. Оверлейные структуры.
Общая характеристика методов распределения памяти в
мультипрограммных системах. Статические и динамические разделы. Распределение памяти фиксированными разделами. Распределение памяти разделами переменной величины. Стратегии
выбора свободных областей. Проблема фрагментации памяти.
Перемещаемые разделы.
Понятие виртуальной памяти и ее основные функции. Ис-
пользование внешних устройств для хранения содержимого виртуальной памяти. Методы реализации виртуального адресного
пространства. Понятие виртуальной и физической страницы. Дескриптор страницы и таблица отображения страниц. Преобразование виртуального адреса в физический при страничной организации памяти. Страничные прерывания и алгоритмы их обработки. Дисциплины замещения страниц в памяти. Рабочее множество страниц. Сегментное распределение памяти. Дескриптор
сегмента и таблица дескрипторов процесса. Преобразование виртуального адреса в физический при сегментной организации памяти. Сегментно-страничный способ организации виртуальной
памяти.
Иерархия запоминающих устройств. Кэш-память и принцип
ее действия. Согласование данных при кэшировании. Алгоритмы
поиска и замещения данных в кэш-памяти. Распределение оперативной памяти в современных операционных системах.
Тема 4. Архитектура микропроцессоров i80x86
История создания и развития микропроцессорной техники.
Базовая архитектура микропроцессоров i80x86. Реальный и защищенный режимы работы микропроцессоров i80x86. Состав и
назначение регистров. Регистры общего назначения. Индексные и
указательные регистры. Сегментные регистры. Регистры состояния и управления. Средства поддержки сегментации памяти.
Структура дескриптора сегмента. Таблицы дескрипторов. Преобразование виртуального адреса в физический при сегментной организации памяти. Защита данных при сегментной организации
памяти. Средства поддержки страничного способа организации
памяти. Структура дескриптора страницы. Преобразование виртуального адреса в физический при страничной организации памяти.
Средства вызова процедур операционной системы. Прямой
вызов процедур из подчиненного и неподчиненного сегментов.
Особенности косвенного вызова привилегированных процедур
через шлюз. Формат дескриптора шлюза. Механизм вызова процедуры через шлюз. Особенности реализации механизма вызова
при переключении между задачами. Структура дескриптора си-
стемного сегмента TSS. Непосредственный и косвенный вызов
задач. Общая характеристика системы прерываний. Внешние,
внутренние и программные прерывания. Работа системы прерываний в реальном режиме. Особенности реализации механизма
прерываний в защищенном режиме. Таблица дескрипторов прерываний.
Элементы программирования на языке ассемблера. Базовые и
физические адреса. Установка и модификация содержимого сегментных регистров. Определение и инициализация данных. Режимы адресации данных. Непосредственная и регистровая адресации операндов. Прямая и косвенная адресации операндов в памяти. Режимы косвенной адресации данных. Классификация и
структура машинных команд. Команды передачи данных. Арифметические и логические команды. Команды сдвига и циклического сдвига. Команды работы со стеком и портами вводавывода. Команды управления вычислительным процессом.
Условные переходы и флаги кодов условий. Определение и использование процедур. Методы передачи параметров процедурам
и возврат результатов ими.
Тема 5. Управление вводом–выводом
Основные функции управления внешними устройствами. Организация системы ввода–вывода в операционных системах.
Драйвера ввода–вывода. Режимы управления операциями ввода–
вывода. Концепция программируемого ввода–вывода. Концепция
механизма прерываний. Основные системные таблицы ввода–
вывода. Взаимосвязи системных таблиц.
Файловые системы и их функции. Структура файловых систем. Способы логической организации файловых систем. Иерархическая структура файловой системы. Типы файлов и их атрибуты. Логическая организация файлов. Способы логической организации файлов. Физическая организация файловой системы.
Логическая структура магнитного диска. Разделы, сектора, кластеры. Физическая организация и адресация файла. Структура
файловой системы FAT. Таблица размещения файлов. Структура
загрузочной записи DOS. Файловые системы VFAT и FAT32.
Файловая система NTFS и ее основные возможности. Структура
тома с файловой системой NTFS. Структура файлов NTFS. Каталоги NTFS.
Тема 6. Сетевые операционные системы
Модели распределенной обработки данных в сетевых операционных системах. Двухзвенная и трехзвенная схемы распределения приложений. Понятие и функции файлового сервера. Синхронизация сообщений в распределенных системах. Блокирующие и неблокирующие коммуникационные примитивы. Буферизация в примитивах передачи сообщений. Способы адресации в
сетях. Использование механизма сокетов для организации обмена
сообщениями между двумя узлами сети. Механизм вызова удаленных процедур. Формат сообщений RPC. Методы связывания
клиента и сервера. Принципы построения сетевых файловых систем. Модели сетевой файловой системы. Файловая система NFS.
Однородные и неоднородные сети. Основные подходы к организации межсетевого взаимодействия. Трансляция и мультиплексирование стеков протоколов. Особенности механизма инкапсуляции транспортных протоколов. Проблемы обеспечения
сетевой безопасности. Классификация угроз и политика обеспечения безопасности. Базовые технологии обеспечения безопасности данных. Симметричные и несимметричные алгоритмы шифрования.
Современные сетевые операционные системы. Операционные
системы Windows и особенности их архитектуры. Организация
многозадачности. Распределение оперативной памяти в Windows.
Модели безопасности в операционных системах семейства Windows.
3.9. Базы данных
Тема 1. Основные понятия теории баз данных
История развития систем обработки данных. Понятие базы и
банка данных. Классификация систем управления базами данных
и их функции. Особенности лингвистического и программного
обеспечения в системах обработки данных. Типология баз дан-
ных. Фактографические, документальные и лексикографические
базы данных.
Многоуровневые модели предметной области. Трехуровневая
модель системы управления базой данных. Физическая и логическая независимость. Механизм обработки запросов в системах
управления базой данных. Классификация моделей данных. Инфологические, даталогические и физические модели. Теоретикографовые модели данных. Особенности иерархической и сетевой
модели. Реляционная и постреляционная модели данных.
Тема 2. Реляционная модель данных
Основные понятия теории отношений: домен, атрибут, кортеж, степень отношения. Первичные и внешние ключи. Теоретико-множественные операции реляционной алгебры: объединение,
пересечение, разность, декартово произведение. Специальные
операции реляционной алгебры: выбор, проектирование, условное соединение, деление.
Тема 3. Проектирование баз данных
Этапы жизненного цикла базы данных. Понятие предметной
области и ее системный анализ. Стадии проектирования и объекты моделирования. Инфологическое проектирование базы данных и семантическая модель. Модель «сущность – связь». Виды
связей между сущностями. Преимущества использования ERмоделей. Методика построения ER-модели. Нормальные формы
ER-диаграмм. Получение реляционной модели из ER-диаграммы.
Особенности даталогического проектирования. Метод нормальных форм. Функциональные, транзитивные и многозначные зависимости между атрибутами. Нормальные формы. Процедура
нормализации отношений. Обеспечение целостности данных.
Ограничения целостности. Инструментальные средства автоматизированного проектирования баз данных.
Физические модели баз данных. Классификация файлов, используемых для хранения данных. Логические и физические записи. Типы организации файлов. Способы адресации и методы
доступа к записям. Организация индексных файлов. Индекснопрямые и индексно-последовательные файлы. Организация ин-
дексов в виде В-деревьев. Построение инвертированных списков.
Тема 4. Распределенная обработка данных
Архитектура распределенной обработки данных. Модели
«клиент – сервер» в технологии баз данных. Двухуровневые модели распределения функций. Модель удаленного управления
данными (модель файлового сервера). Достоинства и недостатки
модели удаленного доступа к данным. Модель активного сервера
баз данных. Особенности трехзвенной модели сервера приложений. Архитектура серверов баз данных: взаимодействие пользовательских и клиентских процессов в модели «один к одному»,
многопотоковая односерверная архитектура. Многопотоковая
мультисерверная архитектура. Серверные архитектуры с параллельной обработкой запроса. Проблемы управления данными в
распределенных системах. Поддержка соответствия базы данных
вносимым изменениям. Достоинства и недостатки модели репликации данных. Обеспечение совместного доступа к общим данным.
Понятие транзакции. Типы и свойства транзакций. Модель
транзакций ANSI/ISO. Варианты ведения журнала транзакций:
протокол с отложенными обновлениями и протокол с немедленными обновлениями. Параллельное выполнение транзакций.
Конфликты между двумя параллельными транзакциями. Типы
синхронизационных захватов. Программное обеспечение распределенных приложений.
Тема 5. Основы структурированного языка запросов
Общая характеристика структурированного языка запросов.
Стандарты SQL. Имена таблиц и столбцов. Типы данных SQL.
Использование инструкции SELECT для организации простых
запросов в SQL. Выборка всех столбцов таблицы. Удаление повторяющихся строк. Выбор строк таблицы предложением
WHERE. Условия отбора строк. Использование значения NULL в
запросах. Проверка на принадлежность диапазону значений.
Проверка элемента данных на членство в множестве. Проверка на
соответствие шаблону. Организация составных условий отбора.
Сортировка результатов запроса. Правила выполнения однотабличных запросов. Объединение результатов нескольких запросов.
Запрос на объединение и повторяющиеся строки. Запрос на объединение и сортировка. Организация вложенных запросов на
объединение.
Особенности организации многотабличных запросов. Объединение таблиц по равенству. Условия для отбора строк в многотабличном запросе. Объединение таблиц по неравенству. Полные имена столбцов. Понятие псевдонима таблицы. Самообъединение таблиц. Построение внешнего объединения таблиц. Левое
и правое внешние объединения. Система записи внешнего объединения. Перекрестное объединение таблиц.
Итоговые запросы на выборку. Статистические функции. Вычисление суммы значений столбца. Определение среднего значения столбца. Вычисление наименьшего и наибольшего значения в
столбце. Определение количества значений в столбце. Статистические функции в списке возвращаемых столбцов. Статистические функции и значения NULL. Удаление повторяющихся строк.
Запросы с группировкой. Группировка результатов запроса на
основании двух или более столбцов. Ограничения на запросы с
группировкой. Значения NULL в столбцах группировки. Условия
отбора групп. Ограничения на условия отбора групп.
Подчиненные и составные запросы. Подчиненные запросы в
предложении WHERE. Внешние ссылки в подчиненных запросах.
Условия отбора в подчиненном запросе. Проверка на принадлежность результатам подчиненного запроса. Проверка на существование строки в таблице результатов подчиненного запроса. Многократное сравнение. Предикаты ANY и ALL. Подчиненные запросы и объединения. Уровни вложенности запросов. Подчиненные запросы в предложении HAVING.
Модификация данных в SQL. Добавление новой строки в таблицу. Многострочная инструкция INSERT. Удаление строк из
таблицы. Особенности использования инструкции DELETE в
подчиненном запросе. Обновление данных в таблице. Инструкция UPDATE с подчиненным запросом.
Понятие целостности данных. Условия целостности данных.
Ограничения на значения столбцов в SQL. Условия уникальности
столбцов и значения NULL. Понятие ссылочной целостности.
Правила удаления и обновления строк в подчиненных таблицах.
Каскадные обновления и удаления. Ссылочные циклы. Внешние
ключи и значения NULL. Понятие и назначение триггера, хранимой процедуры и генератора. Достоинства и недостатки триггеров. Триггеры и ссылочная целостность.
Понятие транзакции. Модели транзакций и их свойства. Способы завершения транзакций. Обработка транзакций в SQL. Инструкции COMMIT и ROLLBACK. Использование журнала транзакций. Применение механизма блокировки для обработки параллельных транзакций. Уровни блокировки. Жесткая и нежесткая блокировки.
Язык определения данных в SQL. Создание таблицы базы
данных и определение ее структуры. Определение первичного и
внешнего ключей. Управление физической памятью. Удаление
таблицы из базы данных. Внесение изменений в структуру таблицы. Изменение первичных и внешних ключей.
Принципы защиты данных в SQL. Аутентификация пользователей. Предоставление привилегий пользователям. Инструкция
GRANT. Передача и отмена привилегий. Инструкция REVOKE и
право предоставления привилегий.
3.10. Программная инженерия
Тема 1. Основные понятия
Предмет, методы и основные задачи программной инженерии. От программы – к программному продукту. Базовый свод
знаний по программной инженерии SWEBOK. Основные стандарты. Жизненный цикл программных продуктов и его модели.
Инструменты классов ALM и CASE.
Тема 2. Моделирование и проектирование
Структурный подход. Стандарты IDEF0 – IDEF3. Стандартные диаграммные языки. CASE – системы, поддерживающие
структурный подход. Объектно-ориентированный подход. Стандарт IDEF4. Язык UML. CASE – системы, поддерживающие объ-
ектно-ориентированный подход.
Тема 3. Реализация и тестирование
Технологии RUP и MSF. Технологии гибкого (agile) программирования. Экстремальное программирование. Подход Scrum.
Командная работа в MS VS Team Suite. Виды и технологии тестирования программного обеспечения.
Тема 4. Внедрение программных продуктов
Факторы успешности внедрения. Методология внедрения
программных продуктов. Стандарты управления проектами. Основные технологии внедрения: OnTarget, Oracle Method, Citrix
MetaFrame. Оценка эффективности внедрения.
Тема 5. Качество и экономическая эффективность
программного обеспечения
Современные стандарты качества MM и CMMI; ISO 90009003, 12207, 15504. Распространенные претензии заказчиков к
программному обеспечению. Метрики программной инженерии.
Оценка качества и экономической эффективности программных
продуктов.
4. КРИТЕРИИ ОЦЕНКИ ЗНАНИЙ
Знания, полученные выпускником, соответствуют требованиям федерального государственного образовательного стандарта,
если он в ходе итогового экзамена демонстрирует комплекс теоретических знаний и практических навыков, свидетельствующих
о его готовности решать задачи профессиональной деятельности
в типовых ситуациях без погрешностей принципиального характера. В критерии оценки уровня подготовки бакалавра по направлению 230700 «Прикладная информатика» входит:
 уровень готовности к осуществлению основных видов профессиональной деятельности в соответствии с квалификационной
характеристикой;
 уровень освоения студентом материала, предусмотренного
учебными программами дисциплин;
 уровень навыков и умений, продемонстрированный выпускником при выполнении практических заданий и позволяющий решать типовые задачи профессиональной деятельности;
 обоснованность, четкость, полнота изложения ответов;
 уровень информационной и коммуникативной культуры.
На государственном итоговом экзамене выпускник должен
иметь сформированное научное мировоззрение и при ответе на
вопросы экзаменационного билета и дополнительные вопросы
членов аттестационной комиссии должен продемонстрировать:
 понимание сущности и социальной значимости своей профессии, необходимости регулярно повышать свою квалификацию
как с помощью дальнейшего обучения, так и самостоятельного
овладения новыми знаниями;
 способность к ведению исследовательской работы, абстрактному логическому мышлению, к критическому анализу,
использованию методов индукции и дедукции;
 ясную логику изложения материала и способность аргументировано отстаивать свое мнение;
 умение анализировать, синтезировать, систематизировать,
сравнивать и обобщать изученный им материал;
 видение возможностей использования полученных знаний и
навыков на практике.
Результаты любого из видов аттестационных испытаний,
включенных в государственную итоговую аттестацию, определяются оценками «отлично», «хорошо», «удовлетворительно»,
«неудовлетворительно» и объявляются в тот же день после
оформления в установленном порядке протокола заседания и ведомости государственной экзаменационной комиссии.
Оценка «отлично»
Оценка «отлично» выставляется
студенту, который демонстрирует
глубокие, исчерпывающие знания
всего программного материала, понимание сущности и взаимосвязи
рассматриваемых процессов и явлений, показывает не только высокий
уровень теоретических знаний по
дисциплинам, включенным в итоговый государственный экзамен, но и
демонстрирует твердое знание основных положений смежных дисциплин; дает логически последовательные, содержательные, полные,
правильные и конкретные ответы
как на все основные вопросы билета, так и на дополнительные, заданные членами государственной аттестационной комиссии; владеет необходимыми компетенциями, требуемыми для выполнения практической работы, проявляет творческие
способности в понимании, изложении и использовании программного
материала. При ответах на вопросы
студент использует дополнительные
материалы, иллюстрирует ответ
примерами из практики, подтвер-
Оценка «хорошо»
ждающими теоретические положения, демонстрирует способность к
анализу положений существующих
научных теорий, показывает умение
вести научную дискуссию. Программный материал излагается логически стройно, последовательно,
четко, аргументировано, уверенно.
Общекультурные и профессиональные компетенции у студента полностью сформированы.
Оценка «хорошо» выставляется студенту, который демонстрирует твердые и достаточно полные знания
всего программного материала, правильное понимание сущности и взаимосвязи рассматриваемых процессов и явлений, дает последовательные, правильные ответы на поставленные вопросы. Как правило, оценка «хорошо» выставляется студенту,
показавшему систематический характер знаний по специальности и
способному к их самостоятельному
пополнению в ходе дальнейшей
профессиональной
деятельности.
Студент обладает основными профессиональными
компетенциями,
правильно применяет теоретические
положения, усвоил основную литературу, рекомендованную программой, ответ построен логично, материал излагается четко, но при этом
допускаются некоторые несущественные погрешности, кроме того,
студент может решать только типовые практические задания. Обще-
Оценка
«удовлетворительно»
Оценка
«неудовлетворительно»
культурные и профессиональные
компетенции у студента в основном
сформированы.
Оценка «удовлетворительно» выставляется студенту, продемонстрировавшему достаточно твердое знание и понимание основных вопросов
программы, владеющему практическими навыками, необходимыми для
решения профессиональных задач.
Однако его знания носят фрагментарный характер, имеются определенные неточности и погрешности в
формулировках, нарушена последовательность в изложении материала,
возникают затруднения при ответе
на уточняющие вопросы и выполнении типовых практических заданий.
Как правило, оценка «удовлетворительно» выставляется студенту, допустившему погрешности при ответе, но обладающему необходимыми
знаниями для их устранения. Общекультурные и профессиональные
компетенции у студента сформированы частично.
Оценка «неудовлетворительно» выставляется студенту, который показывает слабый уровень профессиональных знаний, неуверенно и логически непоследовательно излагает
материал, допускает принципиальные ошибки при ответе на вопросы
билета и выполнении практических
заданий. При ответах на вопросы
студент демонстрирует незнание
или непонимание их сущности, об-
наруживает неумение оперировать
научной терминологией, не приводит примеры практического использования научных знаний, на большую часть дополнительных вопросов членов государственной аттестационной комиссии затрудняется
дать ответ или дает неправильные
ответы. Как правило, оценка «неудовлетворительно» выставляется
студентам, которые не могут приступить к профессиональной деятельности по окончании вуза. Общекультурные и профессиональные
компетенции у студента не сформированы.
Обсуждение и оценивание ответов государственная аттестационная комиссия проводит на закрытом заседании, определяя
итоговую оценку простым большинством голосов членов комиссии, участвующих в заседании, при обязательном присутствии
председателя комиссии или его заместителя. При равном числе
голосов председатель комиссии обладает правом решающего голоса. Пересдача государственного экзамена с целью повышения
положительной оценки не допускается. Студент, получивший на
государственном экзамене оценку «неудовлетворительно», не
допускается к защите выпускной квалификационной работы и
отчисляется из института в соответствии с установленным порядком. Апелляции по выставленным оценкам не принимаются.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
к разделу 3.1
1. Андреева, Е.В. Информатика : системы счисления и компьютерная арифметика / Е.В. Андреева, И.Н. Фалина. – М. : Лаборатория базовых знаний, 1999. – 256 с.*
2. Балюкевич, Э.Л.Теория информации и кодирования: учебное пособие, руководство по изучению дисциплины, сборник задач / Э.Л Балюкевич. – М.: Московский государственный университет экономики, статистики и информатики, 2004. – 143 с.*
3. Березюк, Н.Т. Кодирование информации (двоичные коды) /
Н.Т. Березюк, А.Г. Андрущенко, С.С. Мощицкий. – Харьков:
Выща школа, 1978. – 252 с.
4. Берлекэмп, Э. Алгебраическая теория кодирования / Э. Берлекэмп. – М.: Мир, 1971. – 477 с.
5. Блейхут, Р. Теория и практика кодов, контролирующих
ошибки / Р. Блейхут. – М.: Мир, 1986. – 576 с.
6. Бородин, Л.Ф. Введение в теорию помехоустойчивого кодирования / Л.Ф. Бородин. – М.: Советское радио, 1968. – 408 с.
7. Вернер, М. Основы кодирования: учебник для вузов / М.
Вернер. – М.: Техносфера, 2006. – 288 с.*
8. Лидовский, В.В. Терия информации: учеб. пособие / В.В.
Лидовский. – М.: Компания Спутник+, 2004. – 111 с.
9. Лысиков, В.К. Арифметические и логические основы цифровых автоматов / В.К Лысиков. – Минск: Вышэйшая школа,
1980. – 382 с.
10. Острейковский, В.А. Информатика : учебник для вузов /
В.А. Острейковский. – М. : Высшая школа, 1999. – 319 с.*
11. Савельев, А.Я. Прикладная теория цифровых автоматов /
А.Я Савельев. – М.: Высшая школа, 1987. – 272 с.
12. Шеннон, К. Математическая теория связи / К. Шеннон //
Работы по теории информации и кибернетике. – М.: Иностранная
литература, 1963.
к разделу 3.2
1. Алферова, З.В. Теория алгоритмов / З.В. Алферова. – М.:
Статистика, 1973. – 164 с.
2. Ахо, А.В. Структуры данных и алгоритмы: пер. с англ.:
учебное пособие / А.В. Ахо, Дж.Э. Хопкрофт, Дж.Д. Ульман. –
М.: СПб.: Киев: Вильямс, 2000. – 382 с.*
3. Баррон, Д. Рекурсивные методы в программировании: пер.
с англ. / Д. Баррон. – М.: Мир, 1974. – 80 с.
4. Виленкин, Н.Я. Метод последовательных приближений /
Н.Я. Виленкин. – М.: Наука, 1968. – 108 с.
5. Вирт, Н. Алгоритмы и структуры данных: пер. с англ. / Н.
Вирт. – М.: Мир, 1989. – 360 с.
6. Гудман, С. Введение в разработку и анализ алгоритмов: / С.
Гудман, С. Хидетниеми. – М.: Мир, 1981. – 368 с.
7. Игошин, В.И. Математическая логика и теория алгоритмов:
учебное пособие / В.И.Игошин. – М.: Издательский центр «Академия», 2004. – 448 с.
8. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут; Под
ред. Ю.В. Козаченко. - М.: Издательский дом «Вильямс», 2000. Т.
1: Основные алгоритмы. – 712 с.*
9. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут; Под
ред. Ю.В. Козаченко. - М.: Издательский дом «Вильямс», 2000. Т.
2: Получисленные алгоритмы. – 828 с.*
10. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут; Под
ред. Ю.В. Козаченко. - М.: Издательский дом «Вильямс», 2000. Т.
3: Сортировка и поиск. – 822 с.*
11. Корн, Г. Справочник по математике / Г. Корн, Т. Корн. –
М.: Наука, 1984. – 832 с.
12. Криницкий, Н.А. Алгоритмы вокруг нас / Н.А. Криницкий.
– М.: Наука, 1984. – 224 с.
13. Новиков, Ф.А. Дискретная математика для программистов /
Ф.А. Новиков. – СПб.: Питер, 2001. – 304 с.*
14. Окулов, С.М. Программирование в алгоритмах / С.М. Окулов. – М.: БИНОМ. Лаборатория знаний, 2004. – 341 с.*
15. Успенский, В.А. Теория алгоритмов: основные открытия и
приложения / В.А. Успенский, А.Л. Семенов. – М.: Наука, 1987. –
288 с.
разделу 3.3
1. Аляев, Ю.А. Алгоритмизация и языки программирования
Pascal, C++, Visual Basic : учеб.-справ. пособие / Ю.А. Аляев,
О.А. Козлов. – М. : Финансы и статистика, 2007. – 319 с.*
2. Березин, Б.И. Начальный курс С и С++ / Б.И. Березин, С.Б.
Березин. – М. : Диалог – МИФИ, 1996. – 288 с.*
3. Горяшин, Ю.В. и др. Основы информатики : учеб. посо-
бие / Ю.В. Горяшин, А.Н. Мельников, К.Д. Якимчук. – Архангельск : МИУ, 2000. – 199 с.*
4. Джамса, К. Учимся программировать на языке С++ : пер.
с англ. / К. Джамса. – М. : Мир, 2001. – 320 с.*
5. Довбуш, Г.Ф. Visual C++ на примерах / Г.Ф. Довбуш, А.Д.
Хомоненко. – СПб. : БХВ-Петербург, 2007. – 512 с.*
6. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут; Под
ред. Ю.В. Козаченко. – М. : Вильямс, 2000. – Т. 1 : Основные алгоритмы. – 712 с.*
7. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут ; под
ред. Ю.В. Козаченко. – М. : Вильямс, 2000. – Т. 2 : Получисленные алгоритмы. – 828 с.*
8. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут ; под
ред. Ю.В. Козаченко. – М. : Вильямс, 2000. – Т. 3 : Сотрировка и
поиск. – 822 с.*
9. Константайн, Л. Разработка программного обеспечения /
Л. Константайн, Л. Локвуд. – М. ; СПб. ; Нижний Новгород : Питер, 2004. – 592 с.*
10. Крячков, А.В. Программирование на С и С++ : учеб. пособие для вузов / А.В. Крячков, И.В. Сухинина, В.К. Томшин. – М. :
Горячая линия – Телеком, 2000. – 344 с.*
11. Лишнер, Р. С++ : справочник : полное руководство по языку и стандартной библиотеке / Р. Лишнер. – М. ; СПб. ; Нижний
Новгород : Питер, 2005. – 906 с.*
12. Окулов, С.М. Программирование в алгоритмах / С.М. Окулов. – М. : БИНОМ. Лаборатория знаний, 2004. – 341 с.*
13. Павловская, Т.А. С/С++. Программирование на языке высокого уровня : учебник для студентов вузов / Т.А. Павловская. –
СПб. ; М. ; Харьков : Питер, 2007. – 461 с.*
14. Павловская, Т.А. С/С++. Структурное программирование :
практикум / Т.А Павловская, Ю.А. Щупак. – М. ; СПб. ; Нижний
Новгород : Питер, 2004. – 239 с.*
15. Подбельский, В.В. Практикум по программированию на
языке Си : учеб. пособие для вузов / В.В. Подбельский. – М. :
Финансы и статистика, 2004. – 574 с.*
16. Подбельский, В.В. Язык Си++ : учеб. пособие / В.В. Подбельский. – М. : Финансы и статистика, 1998. – 560 с.*
17. Подбельский, В.В. Программирование на языке Си : учеб.
пособие для вузов / В.В. Подбельский, С.С. Фомин. – М. : Финансы и статистика, 2005. – 600 с.*
18. Скляров, В.А. Программирование на языках Си и Си++ :
учеб. пособие для вузов / В.А. Скляров. – М. : Высшая школа,
1999. – 288 с.*
19. Соколов, А.П. Системы программирования : теория, методы, алгоритмы / А.П. Соколов. – М. : Финансы и статистика,
2004. – 320 с.
20. Эккель, Б. Философия С++. Введение в стандартный С++ :
пер. с англ. / Б. Эккель. – М. ; СПб. ; Нижний Новгород : Питер,
2004. –571 с.*
к разделу 3.4
1. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++: пер. с англ. / Г. Буч. - М.:
СПб.: Бином, Невский диалект, 2001. – 558 с.*
2. Вендров, А.М. Проектирование программного обеспечения
экономических информационных систем : учебник для студентов
экономических вузов / А.М. Вендров. – М.: Финансы и статистика, 2002. – 347 с.*
3. Вендров, А.М. Практикум по проектированию программного обеспечения экономических информационных систем: учебное
пособие / А.М. Вендров. – М.: Финансы и статистика, 2004. – 192
с.*
4. Глушаков, С.В. Программирование на Visual C++ / С.В
Глушаков, А.В. Коваль, С.А. Черепнин. – М.: «Издательство
АСТ»; ООО; Харьков: «Фолио», 2003. – 726 с.*
5. Константайн, Л. Разработка программного обеспечения /
Л.Константайн, Л.Локвуд. – М.; СПб.; Н. Новгород: Питер, 2004.
– 592 с.*
6. Крячков, А.В. Программирование на С и С++: учебное пособие для вузов / А.В. Крячков, И.В. Сухинина, В.К. Томшин. –
М.: Горячая линия – Телеком, 2000. – 344 с.*
7. Кьоу, Дж. Объектно-ориентированное программирование:
учебный курс / Дж. Кьоу, М. Джеанини. – СПб.: Питер, 2005. –
238 с.*
8. Лафоре, Р. Объектно-ориентированное программирование
в С++ / Р. Лафоре. – СПб.; М.; Харьков: Питер, 2003. – 923 с.*
9. Лишнер, Р. С++: Полное руководство по языку и стандартной библиотеке: справочник / Р. Лишнер. – М.; СПб.; Н. Новгород: Питер, 2005. – 906 с.*
10. Мешков, А.В. Visual C++ и MFC / А.В. Мешков, Ю.В. Тихомиров – СПб.: БХВ – Санкт-Петербург, 1999. – 1040 с.*
11. Орлов, С.А. Технологии разработки программного обеспечения: учебное пособие / С.А.Орлов.– СПб.: Питер, 2003.– 480 с.*
12. Павловская, Т.А. С/С++. Программирование на языке высокого уровня: учебник для студентов вузов / Т.А Павловская. –
СПб.; М.; Харьков: Питер, 2007. – 461 с.*
13. Павловская, Т.А. С#. Программирование на языке высокого
уровня: учебник для вузов / Т.А Павловская. – СПб.: Питер, 2007.
– 432 с.*
14. Подбельский, В.В. Язык Си++: учебное пособие / В.В. Подбельский. – М.: Финансы и статистика, 1998. – 560 с.*
15. Фридман, А.Л. Основы объектно-ориентированной разработки программных систем / А.Л. Фридман. – М.: Финансы и статистика, 2000. – 192 с.*
16. Шлеер, С. Объектно-ориентированный анализ: моделирование мира в состояниях / С. Шлеер, С.Меллор. – Киев: Диалектика, 1993. – 240 с.*
17. Шилдт, Г. Теория и практика С++: пер. с англ. / Г. Шилдт.
– СПб.: BHV, 1996. – 416 с.
18. Эккель, Б. Философия С++. Введение в стандартный С++:
пер. с англ. / Б. Эккель. – М.; СПб.; Н. Новгород: Питер, 2004. –
571 с.*
к разделу 3.5
1. Ахо, А.В. Структуры данных и алгоритмы: пер. с англ.:
учебное пособие / А.В. Ахо, Дж.Э. Хопкрофт, Дж.Д. Ульман. –
М.: СПб.: Киев: Вильямс, 2000. – 382 с.*
2. Берж,К. Теория графов и ее применения / К. Берж. – М.:
Иностранная литература, 1962. – 320 с.
3. Вирт, Н. Алгоритмы + структуры данных = программы:
пер. с англ / Н. Вирт. –М.: Мир, 1985. – 406 с.
4. Вирт, Н. Алгоритмы и структуры данных: пер. с англ. / Н.
Вирт. – М.: Мир, 1989. – 360 с.
5. Емеличев, В.А. Лекции по теории графов / В.А. Емеличев,
О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич. – М.: Наука,
1990. – 384 с.
6. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут; Под
ред. Ю.В. Козаченко. - М.: Издательский дом «Вильямс», 2000. Т.
1: Основные алгоритмы. – 712 с.*
7. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут; Под
ред. Ю.В. Козаченко. - М.: Издательский дом «Вильямс», 2000. Т.
2: Получисленные алгоритмы. – 828 с.*
8. Кнут, Д.Э. Искусство программирования / Д.Э. Кнут; Под
ред. Ю.В. Козаченко. - М.: Издательский дом «Вильямс», 2000. Т.
3: Сортировка и поиск. – 822 с.*
9. Лорин, Г. Сортировка и системы сортировки: пер с англ. /
Г. Лорин. – М.: Наука, 1983. – 384 с.
10. Майника, Э. Алгоритмы оптимизации на сетях и графах:
пер. с англ. / Э. Майника. – М.: Мир, 1981. – 335 с.
11. Новиков, Ф.А. Дискретная математика для программистов /
Ф.А. Новиков. – СПб.: Питер, 2001. – 304 с.*
12. Окулов, С.М. Программирование в алгоритмах / С.М. Окулов. – М.: БИНОМ. Лаборатория знаний, 2004. – 341 с.*
13. Соколов, А.П. Системы программирования: теория, методы,
алгоритмы / А.П. Соколов. – М.: Финансы и статистика, 2004. –
320 с.
14. Филлипс, Д. Методы анализа сетей: пер. с англ. / Д. Филлипс, А. Гарсиа – Диас. – М.: Мир, 1984. – 496 с.
15. Хусаинов, Б.С. Структуры и алгоритмы обработки данных.
Примеры на языке Си: учебное пособие / Б.С. Хусаинов. – Финансы и статистика, 2004. – 464 с.*
к разделу 3.6
1. Ахо, А. Теория синтаксического анализа, перевода и компиляции : в 2 т. / А. Ахо, Дж. Ульман. – М.: Мир, 1978. – 2 т.
2. Ван Тассел, Д. Стиль, разработка, эффективность, отладка и
испытание программ / Д. Ван Тассел. – М.: Мир, 1985. – 332 с.
3. Вирт, Н. Алгоритмы и структуры данных / Н. Вирт. – М.:
Мир, 1989. – 360 с.
4. Грис, Д. Конструирование компиляторов для цифровых
вычислительных машин / Д. Грис. – М.: Мир, 1975. – 544 с.
5. Карпов, Ю.Г. Теория автоматов: учебник для вузов / Ю.Г.
Карпов. – СПб.: Питер, 2003. – 208 с.*
6. Компаниец, Р.И. Системное программирование. Основы
построения трансляторов: учебник для вузов / Р.И. Компаниец,
Е.В. Маньков, Н.Е. Филатов. – СПб.: КОРОНА принт, 2004. – 255
с.*
7. Майерс, Дж. Надежность программного обеспечения / Дж.
Майерс. – М.: Мир, 1987. – 360 с.
8. Молчанов, А.Ю. Системное программное обеспечение :
учебник для вузов / А.Ю. Молчанов. – СПб.: Питер, 2010. – 397
с.*
9. Серебряков, В.И. Лекции по конструированию компиляторов / В.И. Серебряков. – М.: МГУ, 1997. – 171 с.
10. Эккель, Б. Философия С++. Введение в стандартный С++:
пер. с англ. / Б. Эккель. – М.; СПб.; Н. Новгород: Питер, 2004. –
571 с.*
к разделу 3.7
1. Бертсекас, Д. Сети передачи данных / Д. Бертсекас, Р.
Галлагер. – М. : Мир, 1989. – 544 с.
2. Бройдо, В.Л. Вычислительные системы, сети и телекоммуникации : учебник / В.Л. Бройдо. – СПб. : Питер, 2002. –
704 с.*
3. Корнеев, В.Л. Параллельные вычислительные системы /
В.В. Корнеев. – М. : Нолидж, 2009. – 320 с.
4. Максимов, Н.В. Компьютерные сети : учеб. пособие /
Н.В. Максимов, И.И. Попов. – М. : ФОРУМ ; ИНФРА-М, 2003. –
336 с.*
5. Мельников, Д.А. Информационные процессы в компьютерных сетях. Протоколы, стандарты, интерфейсы, модели / Д.А.
Мельников. – М. : КУДИЦ-ОБРАЗ, 2000. – 256 с.*
6. Назаров, С.В. Администрирование локальных сетей Win-
dows NT : учеб. пособие / С.В. Назаров. – М. : Финансы и статистика, 1999. – 336 с.*
7. Новиков, Ю.Л. Локальные сети : архитектура, алгоритмы,
проектирование / Ю.В. Новиков, С.В. Кондратенко. – М. : ЭКОМ,
2000. – 568 с.*
8. Олифер, В.Т. Компьютерные сети. Принципы, технологии, протоколы : учебник для вузов / В.Г. Олифер, Н.А. Олифер. – СПб. : Питер, 2004. – 672 с.*
9. Олифер, В.Г. и др. Сетевые операционные системы / В.Г.
Олифер, Н.А. Олифер. – СПб. : Питер, 2006. – 539 с.*
10. Олифер, В.Г. и др. Сетевые операционные системы :
учеб. пособие для вузов / В.Г. Олифер, Н.А. Олифер. – М. ; СПб. ;
Ниж. Новгород : Питер, 2006. – 538 с.*
11. Пятибратов, А.Л. и др. Вычислительные системы, сети и
телекоммуникации : учебник / А.П. Пятибратов, Л.П. Гудыно,
А.А. Кириченко. – М. : Финансы и статистика, 2007. – 512 с.*
12. Сергиенко, А.Б. Цифровая обработка сигналов / А.Б. Сергиенко. – СПб. : Питер, 2003. – 604 с.*
13. Столлингс, У. Структурная организация и архитектура
компьютерных систем / У. Столлингс. – М. : Вильямс, 2008. –
896 с.*
14. Таненбаум, Э. Архитектура компьютера / Э. Таненбаум. –
СПб. : Питер, 2002. – 704 с.*
15. Фролов, А.В. Локальные сети ПК : использование протоколов IPX, SPX, NETBIOS / А.В. Фролов, Г.В. Фролов. – М. :
Диалог-МИФИ, 2008. – 160 с.*
16. Хамахер, К. и др. Организация ЭВМ / К. Хамахер, З.
Вранешич, С. Заки. – СПб. : Питер ; Киев : Издательская группа
BHV, 2003. – 848 с.*
17. Хелд, Г. Технологии передачи данных / Г. Хелд. – СПб. :
Питер ; К. : Издательская группа BHV, 2003. – 720 с.*
к разделу 3.8
1. Гордеев, А.В. Операционные системы : учебник для вузов /
А.В. Гордеев. – СПб. : Питер, 2004. – 416 с.*
2. Гордеев, А.В. и др. Системное программное обеспечение /
А.В. Гордеев, А.Ю. Молчанов. – СПб. : Питер, 2002. – 736 с.*
3. Григорьев, В.Л. Микропроцессор i486. Архитектура и программирование : в 4-х кн. / В.Л. Григорьев. – М. : Гранал, 1993.*
4. Гук, М.Ю. Аппаратные средства IBM PC : Энциклопедия /
М.Ю. Гук. – М. ; СПб. : Питер, 2004. – 923 с.*
5. Гук, М.Ю. Дисковая подсистема ПК / М.Ю. Гук. – СПб. ;
М. ; Харьков : Питер, 2001. – 336 с.*
6. Данкан, Р. Профессиональная работа в MS-DOS : пер. с
англ. / Р. Данкан. – М. : Мир, 1993. – 509 с.
7. Джордейн, Р. Справочник программиста персональных
компьютеров типа IBM PC, XT и AT / Р. Джордейн. – М. : Финансы и статистика, 1991. – 544 с.
8. Дейтел, Г. Введение в операционные системы : в 2-х т. /
Г. Дейтел ; под ред. В.С. Штаркмана. – М. : Мир, 1987. – 398 с.
9. Зубков, С.В. Assembler для DOS, Windows и Unix / С.В.
Зубков. – М. : ДМК Пресс, 2000. – 384 с.*
10. Зыков, Н.К. Недокументированные возможности Windows / Н.К. Зыков. – М. : Радио и связь, 1994. – 176 с.*
11. Иртегов, Д.В. Введение в операционные системы / Д.В.
Иртегов. – СПб. : БХВ-Петербург, 2002. – 624 с.
12. Кулаков, В. Программирование дисковых подсистем / В.
Кулаков. – СПб. : Питер, 2002. – 768 с.*
13. Олифер, В.Г. и др. Сетевые операционные системы / В.Г.
Олифер, Н.А. Олифер. – СПб. : Питер, 2006. – 539 с.*
14. Партыка, Т.Л. и др. Операционные системы, среды и
оболочки : учеб. пособие / Т.Л. Партыка, И.И. Попов. – М. : ФОРУМ : ИНФРА-М, 2007. – 528 с.*
15. Ровдо, А.А. Микропроцессоры от 8086 до Pentium III /
А.А. Ровдо. – М. : ДМК, 2000. – 592 с.*
16. Таненбаум, Э. Современные операционные системы / Э.
Таненбаум. – СПб. : Питер, 2002. – 1040 с.*
17. Цикритзис, Д. Операционные системы / Д. Цикритзис, Ф.
Бернстайн. – М. : Мир, 1977. – 336 с.
к разделу 3.9
1. Бьелетич, Ш. и др. Microsoft SQL Server 2000 : энциклопедия пользователя / Ш. Бьелетич, Г. Мэйбл и др. – М. ; СПб. ;
Киев : DiaSoft, 2001. – 682 с.*
2. Вендров, А.М. CASE – технологии. Современные методы
и средства проектирования информационных систем / А.М.
Вендров. – М. : Финансы и статистика, 1998. – 176 с.*
3. Вендров, А.М. Практикум по проектированию программного обеспечения экономических информационных систем / А.М.
Вендров. – М. : Финансы и статистика, 2002. – 192 с.*
4. Вендров, А.М. Проектирование программного обеспечения экономических информационных систем / А.М. Вендров. –
М. : Финансы и статистика, 2004. – 352 с.*
5. Грекул, В.И. и др. Проектирование информационных систем : учеб. пособие / В.И. Грекул, Г.Н. Денищенко, Н.Л. Коровкина. – М. : Интернет-Университет Информационных Технологий ; БИНОМ. Лаборатория знаний, 2008. – 300 с.*
6. Голицына, О.Л. Базы данных : учеб. пособие / О.Л. Голицына, Н.В. Максимов, И.И. Попов. – М. : ФОРУМ : ИНФРА-М,
2006. – 352 с.*
7.
Грофф, Д.Р. Энциклопедия SQL / Д.Р. Грофф, П.Н.
Вайнберг. – М. ; СПб. ; Ниж. Новгород : Питер, 2003. – 895 с.*
8. Дейт, К.Дж. Введение в системы баз данных / К.Дж.
Дейт. – СПб. : Вильямс, 2000. – 1073 с.*
9. Диго, С.М. Базы данных : проектирование и использование : учебник / С.М. Диго. – М. : Финансы и статистика, 2005. –
592 с.*
10. Карпова, Т.С. Базы данных. Модели, разработка, реализация / Т.С. Карпова. – СПб. : Питер, 2006. – 304 с.*
11. Когаловский, М.Р. Энциклопедия технологий баз данных / М.Р. Когаловский. – М. : Финансы и статистика, 2002. –
460 с.*
12. Кренке, Д. Теория и практика построения баз данных / Д.
Кренке. – СПб. : Питер, 2003. – 800 с.*
13. Кузин, А.В. Базы данных : учеб. пособие для студентов
высших учебных заведений / А.В. Кузин, С.В. Левонисова. – М. :
Академия, 2005. – 320 с.*
14. Мамаев, Е.В. MS SQL Server 7.0 : проектирование и реализация баз данных / Е.В. Мамаев. – СПб. : БХВ-СанктПетербург, 2000. – 416 с.*
15. Microsoft SQL Server 2005. Реализация и облсдуживание :
официальное пособие для самоподготовки. – М. : Рус. ред. ; М. ;
СПб. ; Ниж. Новгород : Питер, 2007. – 742 с.
16. Мишенин, А.И. Теория экономических информационных
систем / А.И. Мишенин. – М. : Финансы и статистика, 2003. –
240 с.*
17. Райодан, Р. Основы реляционных баз данных / Р. Райодан. – М. : Русская редакция, 2006. – 390 с.
18. Советов, Б.Я. Базы данных. Теория и практика : учебник
для вузов / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовской. –
М. : Высшая школа, 2005. – 462 с.*
19. Фуфаев, Э.В. Базы данных : учеб. пособие / Э.В. Фуфаев,
Д.Э. Фуфаев. – М. : Академия, 2005. – 319 с.*
20. Хансен, Г. и др. Базы данных : разработка и управление /
Г. Хансен, Дж. Хансен. – М. : Издательство БИНОМ, 2000. –
704 с.*
21. Хомоненко, А.Д. Базы данных : учебник для высших
учебных заведений / А.Д. Хомоненко, В.М. Цыганков, М.Г.
Мальцев. – СПб. : Корона Принт, 2008. – 736 с.*
22. Хоуг, К. MCSE/MCSD SQL Server 7 Проектирование баз
данных : учеб. руководство / К. Хоуг. – М. : Лори, 2000. – 426 с.*
23. Шкарина, Л.Н. Язык SQL : учебный курс / Л.Н. Шкарина. – СПб. : Питер, 2006. – 592 с.
к разделу 3.10
1. Брауде Э.Дж. Технология разработки программного
обеспечения. – СПб., Питер, 2004. – 655 с.
2. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++: пер. с англ. / Г. Буч. - М.:
СПб.: Бином, Невский диалект, 2001. – 558 с.*
3. Гудлиф П. Ремесло программиста. Практика написания
хорошего кода. – М., Символ-Плюс, 2009. – 704 с.
4. Кантор М. Управление программными проектами. Практическое руководство по разработке успешного программного
обеспечения. – М., Вильямс, 2002.
5. Кватрани Т. Визуальное моделирование с помощью Rational Rose 2002 и UML. – М., Вильямс, 2003. – 190 с.
6. Левингвел Д., Уидриг Д. Принципы работы с требованиями к программному обеспечению. Унифицированный подход. –
М., Вильямс, 2002.
7. Мацяшек Л.А. Анализ требований и проектирование систем. – М., Вильямс, 2002.
8. Орлов С.А. Технология разработки программного обеспечения: учебное пособие / С.А.Орлов.– СПб.: Питер, 2003.– 480
с.*
9. Соммервилл И. Инженерия программного обеспечения. –
М., Вильямс, 2002.
10. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения. – СПб., Питер, 2002.
Download