Главная
страница 1страница 2 ... страница 28страница 29

2.1. Программирование на языке высокого уровня

  1. Встроенные типы языка Си++: целые, плавающие, логические, перечисления, символьные.

  2. Объявления и определения. Область существования имени.

  3. Область видимости имён. Классы памяти.

  4. Операция и выражение присваивания. Арифметические операции. Арифметические выражения. Операции автоувеличения и автоуменьшения. Тернарная операция.

  5. Логические и побитовые операции. Битовые маски.

  6. Указатели. Указатели и массивы. Адресная арифметика.

  7. Символьные массивы и строки. Многомерные массивы.

  8. Динамическое распределение памяти, в том числе динамическое распределение одномерных и двумерных массивов.

  9. Управление потоком выполнения программы. Операторы ветвления (if-else, switch). Операторы повторения (while, for, do-while).

  10. Объявление и определение функций, передача параметров по значению, значения параметров по умолчанию, указатели на функции.

  11. Ссылки. Передача аргументов в функции по ссылке.

  12. Рекурсивные функции, функция в качестве аргумента другой функции, перегрузка функций.

  13. Классы. Конструкторы и деструкторы.

  14. Статические члены класса. Указатель this. Статические функции-члены. Указатели на члены класса.

  15. Конструктор копирования и операция присваивания.

  16. Дружественные функции.

  17. Производные классы. Построение. Защищённые классы.

  18. Преобразования типов, связь с наследованием.

  19. Шаблоны функций. Шаблоны классов. Примеры использования.

  20. Раннее и позднее связывание. Виртуальные функции. Абстрактные классы.

  21. Переопределение стандартных операций.

  22. Динамические структуры данных и их реализация (на примере односвязных списков).


2.2. Базы данных

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

  2. Архитектура представления информации в концепции баз данных.

  3. Понятие системы управления базами данных (СУБД).

  4. Понятие и роль схемы и подсхемы.

  5. База данных как средство отображения информационной модели предметной области.

  6. Модели данных. Классические модели данных (плоская, иерархическая, сетевая)

  7. Реляционная модель данных. Основные понятия. Нормализация отношений.

  8. Операции реляционной алгебры. Реляционное исчисление..

  9. Языки манипулирования данными SQL и QBE (общие сведения).

  10. Использование SQL для создания и актуализации баз данных, формирования представлений, хранимых процедур и триггеров, запросов к базе данных.

  11. Системы управления базами данных. Общие свойства СУБД. Обобщенная схема обмена данных с использованием СУБД.

  12. Типовые информационные процедуры, реализуемые СУБД.

  13. Общие сведения о СУБД первого поколения (IMS-ОКА, ADABAS, IDS-Банк ОС), реляционных СУБД (FoxPro, Access), СУБД, обеспечивающих технологию клиент-сервер (ORACLE, MS SQL, MY SQL).

  14. Информационные системы, основанные на БД и СУБД. Физическая организация базы данных; хешированные, индексные файлы; защита баз данных; целостность и сохранность баз данных.

  15. Проектирование баз данных. Проектирование с использованием метода сущность – связь, средства поддержки проектирования (ERWin).

  16. Традиционные методики проектирования БД, современная интеграционная методика проектирования.

  17. Проектирование системы баз данных на принципах единой информационной среды.

  18. Современные направления использования баз данных.

  19. Распределенные базы данных и распределенная обработка.

  20. Понятие транзакции и параллельная обработка. OLTP, OLAP, Data Mining технологии.

  21. Единая информационная среда.

  22. Базы знаний.

  23. Хранилища данных. Базы данных большого объема.


2.3. Организация ЭВМ

  1. Развитие и классификация однопроцессорных архитектур компьютеров.

  2. Конвейерная обработка команд.

  3. Cуперскалярная обработка команд.

  4. Классификация архитектуры SISD.

  5. CISC и RISC-архитектуры микропроцессоров.

  6. VLIW-архитектура компьютера и EPIC-концепция.

  7. SIMD-архитектура. Способы её реализации.

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

  9. Технические и эксплуатационные характеристики ЭВМ.

  10. Энергоэффективность процессора.

  11. Классификация ЭВМ по назначению и функциональным возможностям.

  12. Функциональные возможности, пути развития, современные разработки супер ЭВМ и мэйнфреймов.

  13. Назначение, классификация, структурная организация серверов.

  14. Классификация, структурная организация персональных компьютеров.

  15. Функциональные возможности, назначение, платформы рабочих станций.

  16. Типы данных интеловских процессоров.

  17. Структура и форматы команд ЭВМ.

  18. Способы адресации информации в ЭВМ.

  19. Принципы организации системы прерывания программ.

  20. Регистровые структуры процессоров IA-32, AMD64 (Intel64), IA-64.

  21. Стратегия развития процессоров Intel.

  22. Особенности процессорной микроархитектуры Intel Core.

  23. Микроархитектура Intel Nehalem.

  24. Семейство процессоров Intel Westmere.

  25. Иерархическая структура памяти ЭВМ.

  26. Способы организации кэш-памяти.

  27. Принципы организации оперативной памяти.

  28. Методы повышения пропускной способности ОП.

  29. Методы управления памятью

  30. Организация виртуальной памяти.

  31. Общая характеристика и классификация интерфейсов ЭВМ.

  32. Способы организации передачи данных.

  33. Системная организация компьютеров на базе современных чипсетов.

  34. Архитектуры вычислительных систем. Сильносвязанные и слабосвязанные многопроцессорные системы.

2.4. Операционные системы

  1. Понятие операционной системы; эволюция развития операционных систем; функции операционных систем и подходы к построению операционных систем.

  2. Архитектура операционной системы. Классификация операционных систем. Эффективность и требования, предъявляемые к ОС.

  3. Понятие процесса, его состояния, модель представления процесса в операционной системе и операции, которые могут выполняться над процессами операционной системой.

  4. Уровни планирования процессов в операционных системах. Основные цели и критерии планирования и параметры, на которых оно основывается. Алгоритмы планирования.

  5. Кооперация процессов и основные аспекты ее логической организации (санкционированное взаимодействие процессов)

  6. Алгоритмы синхронизации (алгоритмы корректной организации взаимодействия процессов).

  7. Специальные механизмы синхронизации – семафоры Дейкстры, мониторы Хора, очереди сообщений.

  8. Взаимоблокировки, тупиковые ситуации, "зависания" системы

  9. Простейшие схемы управления памятью. Связывание логических и физических адресных пространств.

  10. Виртуальная память. Разбиение адресного пространства процесса на части и динамическая трансляция адреса. Архитектурные средства поддержки виртуальной памяти.

  11. Аппаратно-независимый уровень управления виртуальной памятью.

  12. Файлы с точки зрения пользователя. Основные функции и интерфейс файловой системы.

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

  14. Основные физические и логические принципы организации ввода-вывода в вычислительных системах.

  15. Особенности взаимодействия процессов, выполняющихся на разных операционных системах. Функции сетевых частей операционных систем.

  16. Защитные механизмы операционных систем. Организация идентификации и аутентификации, авторизации и аудита.

  17. История семейства операционных систем UNIX/Linux. Генеалогия семейства операционных систем и некоторые известные версии UNIX. Операционные системы фирмы Microsoft. Отличия семейства UNIX/Linux от операционных систем Windows.

  18. Основные понятия, связанные с интерфейсом операционных систем. Графический интерфейс пользователя в семействе UNIX/Linux.

  19. История X Window system. Основные понятия системы X Window. X Window в Linux. Интегрированная графическая среда KDE. Интегрированная графическая среда GNOME.

  20. Сетевые и распределенные ОС. Сетевые службы и сетевые сервисы. Одноранговые и серверные ОС.

2.5. Сети ЭВМ и телекоммуникации

  1. Виды компьютерных сетей: WAN, LAN, MAN, PAN. Их особенности.

  2. Топология сети. Виды топологий, их преимущества и недостатки.

  3. Элементы сети: конечные устройства, промежуточные устройства, передающие среды.

  4. Назначение и функции модели OSI.

  5. Уровни модели OSI, назначение, примеры протоколов.

  6. Протокольная единица данных. Инкапсуляция. Мультиплексирование.

  7. Система доменных имен DNS. Рекурсивная и нерекурсивная схемы. Кириллические домены.

  8. Типы записей DNS. Обратная зона. URL, FQDN.

  9. Протокол DHCP.

  10. Протокол HTTP.

  11. Система электронной почты. Протоколы.

  12. Транспортный уровень модели OSI. Назначение, протоколы.

  13. Протокол UDP. Назначение, формат пакета. Псевдозаголовок.

  14. Протокол TCP. Назначение, формат пакета.

  15. Логическое соединение. Установка и завершение логического соединения.

  16. Метод скользящего окна.

  17. Типы IP-адресов.

  18. Формат адреса IPv4. Разграничение номеров сети и узла.

  19. Классовая адресация. Бесклассовая адресация. Маска сети, префикс.

  20. Особые IPv4-адреса.

  21. IPv6. Формат адреса IPv6. Типы адресов.

  22. Маршрутизатор. Таблица маршрутизации.

  23. Статическая и динамическая маршрутизация. Преимущества и недостатки.

  24. Подуровни канального уровня, их задачи. Адрес канального уровня.

  25. Вероятностный и детерминированный методы доступа к среде. Технологии CSMA/CD и CSMA/CA.

  26. Витая пара. Состав, типы.

  27. Коаксиальный кабель. Состав, типы.

  28. Волоконно-оптический кабель. Мода.

  29. Технология Ethernet. Формат кадра.

  30. Физическая среда технологии Ethernet.

  31. Физические уровни стандарта 802.11.

  32. Алгоритм прозрачного моста.

  33. Алгоритм покрывающего дерева.


2.6. Методы и средства защиты компьютерной информации

  1. Понятие информационной безопасности (ИБ). Основные составляющие (конфиденциальность, целостность, доступность). Статистика нарушений ИБ.

  2. Наиболее распространенные угрозы, уязвимые места защиты, средства обеспечения безопасности.

  3. Административный уровень информационной безопасности: политика безопасности и программа безопасности. Структура соответствующих документов, меры по их разработке и сопровождению.

  4. Управление рисками. Методика сопоставления возможных потерь от нарушений ИБ со стоимостью защитных средств.

  5. Основные понятия в области технической защиты информации.

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

  7. Основные уязвимости стека протоколов TCP/IP. Основные классы атак в сетях на базе TCP/IP и способы борьбы с ними.

  8. Классификация технических каналов утечки информации. Информационный сигнал и его характеристики. Физическая суть возникновения различных каналов утечки и их классификация.

  9. Средства и методы обнаружения технических каналов утечки информации. Мероприятия по выявлению технических каналов утечки информации. Оценка защищенности информации от утечки по техническим каналам утечки информации.

  10. Спецификация Internet-сообщества TLS. Протокол Secure Socket Layer (SSL).

  11. Нетехнические меры защиты конфиденциальной информации от несанкционированного доступа: психологические меры и организационные меры. Уровни контроля информационных потоков

  12. Защита от сетевых атак на основе межсетевого экранирования. Механизм работы сетевого экрана, история и основные аспекты использования сетевых экранов.

  13. Противодействие методам социальной инженерии.

  14. Обеспечение безопасности в сети Интернет

  15. Общая схема симметричного шифрования, классификация методов симметричного шифрования.

  16. Криптографические хеш-функции.

  17. Поточные шифры и генераторы псевдослучайных чисел.

  18. Криптографические алгоритмы с открытым ключом и их использование (асимметричная криптография): RSA, алгоритм Диффи-Хеллмана, алгоритм Эль-Гамаля,

  19. Основные подходы к формированию электронной подписи на основе различных алгоритмов с открытым ключом. Отечественные и зарубежные стандарты на алгоритмы цифровой подписи.

  20. Шифрование, помехоустойчивое кодирование и сжатие информации

  21. Анализ рисков как основа управления информационной безопасностью предприятия. Методики управления и анализа рисков.

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

  23. Обзор современных методов криптоанализа.

  24. Проблема аутентификации. Инфраструктура открытых ключей. Протоколы аутентификации в Windows.

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

  26. Защита от вирусных угроз. Сценарии построения комплексной системы защиты от вирусных угроз.

  27. Методология анализа защищенности системы на основе выявления уязвимостей информационной системы и обнаружения вторжений.

  28. Методы и инструменты защиты от сетевых атак на основе технологии межсетевого экранирования.

  29. Организационно-правовые аспекты обеспечения информационной безопасности. Разработка политики информационной безопасности с использованием общепринятых шаблонов и учетом специфики деятельности организации.

  30. Основы работы антивирусных программ, существующие методы обнаружения вирусов, дополнительные средства обеспечения антивирусной безопасности, основные элементы антивирусной защиты.

  31. Антивирусная защита мобильных пользователей: угрозы заражения, принципы действия вирусов для мобильных телефонов и средства защиты от вирусов.

  32. Обнаружение вторжений. Основные типы систем обнаружения вторжений и датчиков вторжений.

  33. Безопасность в ОС Windows 7, настройка ОС, управление пользователями и системой, поиск вторжений в ОС.

  34. Безопасность беспроводных соединений.

Основные понятия, относящиеся к криптографии с открытым ключом. Способы их использования: шифрование, создание и проверка электронной подписи, обмен ключами. Алгоритмы RSA и Диффи-Хеллмана.

1. Встроенные типы языка Си++: целые, плавающие, логические, перечисления, символьные.

Встроенные типы языка Си++: целые, плавающие, логические, перечисления, символьные.



Ключевыми словами, используемыми при объявлении основных типов данных, являются:

Для целых типов

char, int, short, long, signed, unsigned;

Для плавающих типов:

float, double, long double;

Для классов: struct, union, class;

Для перечисления: enum;

Для типа void: void (пустой).

Тип char, или символьный

Данными типа char являются различные символы, причем значением этих символов является численное значение во внутренней кодировке ЭВМ.

Символьная константа - это символ, заключенный в апострофы, например: '&', '4', '@', 'а'. Символ '0', например, имеет в кодировке ASCII значение 48.

Существуют две модификации этого типа: signed char и unsigned char.

Данные char занимают один байт и меняются в диапазоне:

signed char (или просто char) -128 .. 127;

unsigned char 0 .. 255.

Отметим, что если необходимо иметь дело с переменными, принимающими значения русских букв, то их тип должен быть unsigned char, т.к. коды русских букв >127 (B кодировке ASCII).

Символы, в том числе и неграфические, могут быть представлены как символьные константы с помощью т.н. управляющих последовательностей.

Управляющая последовательность - это специальные символьные комбинации, которые начинаются с \ , за которым следует буква или комбинация цифр (см. табл. 2).

Последовательности '\ddd' и '\xddd' позволяют представлять любой символ из набора ЭВМ как последовательность восьмеричных или шестнадцатеричных цифр соответственно. Например, символ возврата каретки можно задать так: '\r' или '\015' или 'x00D'.

Специальные управляющие последовательности





Тип int (эквивалент short int)

Данные типа int занимают 2 байта и принимают целые значения из диапазона: -32768 . . 32767.

Тип unsigned int

Данные такого типа занимают 2 байта, их диапазон: 0 . . 65535.

Тип long (long int)

Такие данные занимают 4 байта и изменяются в диапазоне 0 . . 4 298 876 555.

Отметим, что если целая константа выходит из диапазона int, то она автоматически становится константой типа long или даже unsigned long.

Так, 32768 имеет тип long, 2676768999 имеет тип unsigned long.

Задать тип константы можно и явно с помощью суффиксов 'U' и 'L':

-6L 6U 33UL.

В самом стандарте языка определено лишь, что sizeof (char)=1 и sizeof (char)<=sizeof (short)<=sizeof (int)<= sizeof (long).

Здесь sizeof (type)- операция, определяющая размер типа type в байтах.

Целая константа, которая начинается с нуля, является восьмеричной константой, а начинающаяся символами 0x - шестнадцатеричной константой, например

Плавающие типы данных

Информацию о данных плавающих типов, которые представляют в ЭВМ вещественные числа, приведем в табл. 3.

Таблица 3


Тип

Длина

Диапазон

Десятичных цифр

float
double
long double

4
8
10

3.4e-38 .. 3.4e38
1.7e-308 .. 1.7e308
3.4e-4932 .. 1.1e4932

7
15
19

По умолчанию, плавающие константы имеют тип double, если они не выходят из соответствующего диапазона:

1.0, .3 -6. 2.3e-6 (означает 2.3 10), 3e-19, 1.2 - типа double.

Суффикс говорит о том, что плавающая константа будет иметь тип long double:

3, 3E8, 1.6e-19, 1.3e-200 – long double.



  1. Объявления и определения. Область существования имени.

Любое имя, за исключением имён меток, должно быть объявлено в программе: int i, j; double d=7.3; extern int m; typedef unsigned int size_t; int add (int a, int b){ return a+b;} void func (char*, int);

С именем может быть сопоставлен некоторый элемент, идентификатором которого оно является. Например, при объявлении int i, j; для переменных i, j отводится память, с этими именами сопоставляются участки памяти по 2 байта, которые можно использовать для хранения значений переменных. С именем size_t сопоставлено имя конкретного типа (unsigned int), синонимом которого является теперь size_t; с именем add сопоставлен код функции. Все такие объявления называют определениями. Однако не все объявления являются определениями. Из всех вышеприведённых объявлений два не являются определениями: extern int m; void func (char *, int); В первом из этих объявлений сообщается только, что переменная m имеет тип int, память же для неё должна выделяться где-то в другом месте, о чём говорит ключевое слово extern. Второе объявление говорит, что func есть имя функции с двумя аргументами, первый из которых - указатель на char, а второй - int, а сама функция не возвращает никакого значения. Такое объявление называют прототипом функции. Сама же функция func должна быть определена вместе со своим телом где-то в другом месте.

В программе для каждого имени должно присутствовать одно и только одно определение, в то время как объявлений, не являющихся определениями, может быть как угодно много.

Можно выделит 5 видов областей существования имени.



  1. Область существования БЛОК. Блок - это фрагмент программы, заключённый в фигурные скобки { }

  2. Область существования ФУНКЦИЯ. Эту область существования имеют только имена меток перехода, используемые оператором goto

  3. Область существования ПРОТОТИП ФУНКЦИИ. Прототип функции есть объявление функции, не являющееся её определением.

  4. Область существования ФАЙЛ. Область существования "файл" имеют имена, объявленные вне любого блока и класса. Такие имена называют глобальными. Глобальные имена определены от точки их объявления и до конца файла, где встретилось их объявление.

  5. Область существования КЛАСС. Такую область существования имеют имена, объявленные в классах. Эти имена определены во всем классе, в котором они объявлены, независимо от точки их объявления.

  1. Область видимости имён. Классы памяти.

Область видимости является подобластью области существования имени. Если элемент языка, чьё имя находится в области своего существования, тем не менее, недоступен по этому имени, то будем говорить, что это имя скрыто или замаскировано.

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

Переменные из объемлющих блоков, как и глобальные, видимы во внутренних блоках.

Если переменная, объявленная внутри блока, имеет то же имя, что и переменная объемлющего уровня, то имя объемлющего уровня маскируется и определение переменной в блоке заменяет определение объемлющего уровня на протяжении всего блока. Видимость замаскированной переменной восстанавливается при выходе из блока. Метки в функции видимы во всём теле функции.

В С++ существуют 3 класса памяти.

1) Статическая память - статические данные, размещаемые в сегменте данных;

2) автоматические данные, размещаемые в специальном стеке (сегмент стека) или как частный случай, в регистрах процессора;

3) динамические данные, явно размещаемые в динамической памяти с помощью операций new и delete.

Статические объекты существуют в течение всего времени выполнения программы. К ним относятся глобальные и локальные переменные, объявленные со служебным словом static

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

Локальные переменные, не объявленные как static, являются автоматическими. Такие объекты начинают свое существование при объявлении его имени в блоке и заканчивают его при завершении этого блока. Если автоматический объект явно не инициализирован, то его значение до присвоения не определено.


следующая страница >>
Смотрите также:
Л а. юркевская программирование на языках высокого уровня
323.93kb.
1 стр.
2 Программирование на языке высокого уровня
4806.37kb.
29 стр.
-
281.49kb.
1 стр.
Программа дисциплины программирование на языке высокого уровня С++ для специальности 2201
100.63kb.
1 стр.
Семинар высокого уровня по модернизации статистической продукции и услуг
17.85kb.
1 стр.
Отчет пленарному заседанию по пунктам 1, 2 и сегменту высокого уровня ссылки
97.82kb.
1 стр.
Программа курса программирование
137.1kb.
1 стр.
Рабочая программа дисциплины программирование на языке C# Направление (специальность) подготовки
97.36kb.
1 стр.
Доклад комитета высокого уровня министров и должностных лиц о работе его пятого совещания
107.7kb.
1 стр.
1 Описание языка высокого уровня colamo 1 Синтаксис языка colamo
451.26kb.
2 стр.
Верификация программных требований к по. Инструменты автоматизации этапа
238.67kb.
1 стр.
Программа курса «Программирование на языке С++»
31.04kb.
1 стр.