Аннотация - Санкт-Петербургский государственный

реклама
Министерство образования и науки РФ
Санкт-Петербургский политехнический университет Петра Великого
Институт информационных технологий и управления
Высшая инженерная школа
ПРОГРАММА ВСТУПИТЕЛЬНОГО МЕЖДИСЦИПЛИНАРНОГО ЭКЗАМЕНА В
МАГИСТРАТУРУ
по направлению 09.04.03 «Прикладная информатика»
по магистерской программе:
«Прикладная информатика в компьютерном дизайне»
(09.04.03_05)
Санкт-Петербург
2015
Программа вступительного междисциплинарного экзамена в магистратуру
по направлению 09.04.03 «Прикладная информатика»
Магистерская программа «Прикладная информатика в компьютерном дизайне»
(09.04.03_05)
Аннотация
Междисциплинарный экзамен состоит из двух логических частей, которые проверяют
знания поступающего по информатике и по теории и технологии объектноориентированного программирования.
Информатика
Испытуемый должен знать:
 основные формы представления и свойства информации;
 способы измерения количества информации, формулы Хартли и Шеннона;
 действия, выполняемые с информацией, понятие информационного процесса;
 понятие информационной модели, примеры моделей;
 возможности компьютера как средства реализации информационных технологий;
 основные составные части аппаратуры компьютера;
 принципы фон Неймана;
 назначение и особенности числовой информации, способы её представления в
памяти компьютера;
 назначение и особенности текстовой информации, способы её представления в
памяти компьютера;
 понятие оцифровки аналоговых сигналов, их представление в памяти компьютера;
 основные виды компьютерной графики;
 понятие алгоритма, свойства и способы записи алгоритмов;
 назначение и виды языков программирования, сред программирования;
 понятие базы данных, СУБД, возможности баз данных;
 виды программного обеспечения компьютера;
 назначение и организацию операционной системы, структуру файловой системы;
 понятие компьютерной сети, классификацию сетей;
 структуру и основные сервисы сети Интернет;
 понятие информационной безопасности, способы её обеспечения.
Испытуемый должен уметь:
 выбирать форму представления информации в предложенной ситуации;
 выбирать виды программного обеспечения, необходимые для решения
предложенной проблемы;
 определять количество информации в сообщении;
 оценивать объём файла;
 ориентироваться в файловой системе, осуществлять основные операции с файлами;
 осуществлять настройку рабочей среды компьютера;
 осуществлять форматирование текста средствами текстового процессора,
используя стили;
 строить расчётные таблицы с применением формул средствами табличного
процессора;
 понимать и исполнять алгоритмы, описанные в виде блок-схем;
 искать необходимую информацию с помощью поисковых серверов.
Теория и технология объектно-ориентированного программирования
Испытуемый должен знать:

















Базовые принципы организации программы, управляемой событиями, как
альтернативы традиционной программе с жестко заданным порядком выполнения.
Программирование в объектах (ООП), умение использовать встроенные средства
языка для определения точного типа объектов во время выполнения программы,
использование механизма исключений для создания устойчивых приложений,
создание своих и использование стандартных шаблонов, предоставляемых
стандартной библиотекой, умение использовать обобщенные алгоритмы
стандартной библиотеки, знание и использование возможностей потоков
ввода/вывода.
Приложения, управляемые событиями. Интерфейс прикладного программирования
( Win 32 API ) – связь приложения с “внешним миром”. Механизм RPC ( LPC ).
Управление памятью.
Унифицированный интерфейс пользователя.
Аппаратно-независимый ввод/вывод. Графический интерфейс Windows (GDI).
Объектная модель Windows. Формат сообщений. Источники сообщений.
Обработка сообщений. Синхронная и асинхронная обработка сообщений. Типы
сообщений.
Концепция объектно-ориентированного программирования. Отличия процедурного
и ООП.
Понятие класса. Объявление класса. Данные-члены класса + функции-члены класса
= инкапсуляция. Оператор sizeof и размер класса. Спецификаторы доступа.
Создание экземпляра класса. Реализация методов класса. Доступ к public членам
класса посредством объекта, селектор «.». Указатель this. Анатомия вызова
нестатического метода класса.
Конструкторы. Понятие конструктора. Конструктор по умолчанию. Конструктор с
параметрами. Перегрузка конструкторов. Конструктор с параметрами по
умолчанию. Возможные конфликты при использовании параметров по умолчанию.
Специфика записи при вызове конструктора с одним параметром. Конструкторы и
модификатор explicit. Конструкторы базовых типов. Динамическое создание
объектов и вызов конструктора.
Деструктор. Специфика объявления деструктора как метода класса. Деструктор –
метод класса. Конструктор + деструктор = функциональное замыкание. Создание и
уничтожение объектов с разным способом хранения.
Ключевое слово сonst и классы. Методы, возвращающие константные значения.
Константные методы класса. Ключевое слово mutable. Константные аргументы.
Конструктор копирования. Создание копий. Передача объектов в качестве
параметров функции. Возвращение объекта по значению. Проблемы, которые
могут возникнуть при использовании конструктора копирования по умолчанию и
способы их решения.
Указатель на класс. Указатель на объект класса. Доступ к членам класса
посредством указателя. Селектор «->». Указатель this.
Массивы и классы. Массивы объектов класса. Массивы указателей на объекты
класса.
Поля битов. Специфика использования.
Наследование. Виды наследования. Простое ( single ) наследование. Объявление
производного класса. Спецификатор protected в базовом классе. Спецификаторы







наследования. Порядок вызова конструкторов и деструкторов. Передача
параметров базовому классу при конструировании. Специфика передачи
параметров конструктору копирования базового класса. Открытое наследование.
Правила объектно-ориентированного проектирования. Пример ошибочного
построения иерархии классов.
Полиморфизм. Раннее и позднее связывание. Виртуальные функции. Механизм
вызова виртуальной функции. Виртуальные деструкторы. Чисто виртуальные
функции и абстрактные классы. Наследование интерфейса и наследование
реализации при открытом наследовании.
Перегрузка операторов. Перегрузка операторов для базовых и пользовательских
типов. Правила перегрузки унарных и бинарных операторов. Порядок поиска
компилятором функции. Формы перегрузки операторов. Перегрузка оператора с
помощью метода класса. Перегрузка с помощью метода класса. Специфика
перегрузки оператора присваивания. Оператор присваивания и нетривиальные
классы. Оператор присваивания и перегрузка. Оператор[] с проверкой выхода за
границы массива. Оператор ++ (--).Оператор () и функциональные объекты.
Перегрузка с помощью глобальной friend-функции. Пример перегрузки оператора
<< (вывод) в библиотечный ostream.
Статические члены класса. Ключевое слово static. Статические данные.
Статические функции: для доступа извне к private или protected static -данным
класса, для «косвенного» создания объекта.
Структуры и объединения языка C ++. Ключевые слова struct и union. Отличия
структур и классов. Рекомендации по использованию Тип данных VARIANT.
Анонимные объединения.
Исключения. Что такое исключительные ситуации. Способы отслеживания
«аварийных» ситуаций. Обработка исключений: встроенные средства С++ для
обработки исключений - операторы try,catch, throw. Непредусмотренные
исключения. Исключения в конструкторах. Стандартные типа исключения.
Спецификация исключений при объявлении функций.
Обобщенное программирование. Шаблоны. Объявление шаблона.
Инстанцирование шаблона. Обобщенное программирование. Обобщенные
алгоритмы. Шаблоны функций. Способы обобщения функций, выполняющих
одинаковые действия, но оперирующих данными разных типов. Создание функции
по заданному шаблону и ее вызов. Шаблоны классов. Ключевое слово typename .
Эмуляция шаблона одномерного защищенного массива (vector). Введение понятия
итератора. Эмуляция шаблона двухсвязного списка (list). Реализация итератора для
двухсвязного списка.
Потоки ввода/вывода.
Примеры вопросов
Информатика
1. Охарактеризуйте достоинства и недостатки текстовой формы представления
информации в сравнении с другими формами.
2. Известно, что Катя живёт в 8-этажном доме. Приведите примеры высказываний,
содержащих 1, 2, 3 бита информации о том, на каком этаже живёт Катя.
3. Точечный 256-цветный рисунок преобразовали в чёрно-белый. Во сколько раз
уменьшился объём файла?
4. Профессор А ставит на экзамене оценки 2, 3, 4 и 5 с равной вероятностью.
Профессор В половине студентов ставит двойки, четверти – тройки, остальные
студенты с равной вероятностью получают 4 или 5. Сколько бит информации несёт
сообщение об оценке, полученной студентом на экзамене у профессора А и
профессора В?
5. Датчик определяет температуру воздуха в диапазоне от -64 до +64 градусов
Цельсия с точностью 0.5 градуса. Показания датчика кодируются наименьшим
возможным количеством битов и записываются ежеминутно. Определите объём
суточного файла с показаниями датчика в байтах.
6. Обоснуйте или опровергните утверждение: «Компьютерные игры не относятся к
прикладному программному обеспечению».
7. Текст курсовой работы представляет собой документ MS Word. Опишите, какие
действия нужно выполнить, чтобы построить для него оглавление.
8. Обоснуйте или опровергните утверждение: «Поскольку в графическом редакторе
MS Paint есть инструменты для изображения геометрических фигур, он относится к
векторной графике».
9. Объясните, почему в компьютерах, основанных на принципах фон Неймана
применяется именно двоичное кодирование информации.
10. Объясните различия между внешней и оперативной памятью компьютера.
11. Вы планируете подарить своей тётушке на 70-летие ноутбук. Опишите, какие
программы вы установите на нём и как настроите рабочую среду.
12. Докажите или опровергните утверждение: «Интернет-магазин - это
информационная модель реального магазина».
13. Что из четырёх терминов – браузер, драйвер, провайдер, антивирус, - по смыслу
существенно отличается от остальных?
14. Докажите или опровергните утверждение: «СУБД необходима лишь для создания
структуры базы данных и ввода данных в неё, а для просмлотра данных из базы
специальные программные инструменты не нужны».
15. Опишите в виде блок-схемы или словесно алгоритм нахождения наибольшего
общего делителя двух чисел.
16. Для решения каких из этих задач требуется хранение данных в виде массива?
а) ввести N чисел и вывести разность между наибольшим и наименьшим числом;
б) ввести число N и вычислить сумму всех натуральных чисел от 1 до N;
в) ввести N чисел и вычислить их сумму;
г) ввести N чисел и вывести их в обратном порядке.
17. Вам необходимо заполнить столбец в таблице MS Excel последовательными
датами от 14 февраля до 1 апреля. Опишите, как это сделать наиболее рационально.
18. Какие из перечисленных типов файлов являются графическими?
.MP3 .XLSX .JPG .PNG .EXE .GIF .RAR
19. Студент Сидоров попросил студента Иванова выслать ему практическую работу по
экономике, представляющую собой текстовый документ. Иванов выслал ему файл
IVANOV.TXT. Сидоров открыл документ с помощью Блокнота, исправил
фамилию в заголовке и переставил несколько слов во введении, затем сохранил
файл. Он уже хотел выслать файл на проверку, но спохватился, что у него
неудачное название. Сидоров переименовал файл в SIDOROFF, после чего с
ужасом обнаружил, что файл перестал открываться. Что произошло и как
устранить проблему?
20. Приведите пример алгоритма (в виде блок-схемы или словесного описания)Б не
обладающего свойством
а) конечности;
б) массовости.
Теория и технология объектно-ориентированного программирования
1. Сопоставьте прототипы вызовов функции Func() со случаями a, b, c и d.
class A {
public:
virtual void Func(int, int); //1
virtual void Func(int); //2
};
class B : public A {
public:
void Func(int, int); //3
void Func(int); //4
};
int main()
{
A a;
B b;
a.Func(5);
// a
b.Func(5);
// b
A *pA = &b;
pA->Func(5,5); // c
pA->A::Func(2); // d
return 0;
}
2. Способность объекта скрывать свои данные и реализацию от других объектов,
называется:
Выберите один ответ:
a. Инкапсуляция
b.
Наследование
c.
Полиморфизм
d.
Абстракция
3. Что будет выведено на консоль в результате выполнения следующего кода:
#include <iostream>
using namespace std;
class A {
public:
A() { cout << "А "; }
~A() { cout << "~A "; }
};
class B {
public:
B() { cout << "B "; }
~B() { cout << "~B "; }
};
class C: public A
{
B m_b;
public:
C() { cout << "C "; }
~C() { cout << "~С "; }
};
int mаin()
{
C c;
return 0;
}
4. Какие независимые друг от друга изменения позволят коду отработать корректно:
class Сountеr {
public: // 1
void Count(); // 2
};
int main()
{
Сountеr obj;
obj.Count();
return 0;
}
Рекомендуемая литература
1. Информатика / Могилев А.В., Пак Н.И., Хённер Е.К. – М: Академия, 2004
2. Практикум по информатике/ Могилев А.В., Пак Н.И., Хённер Е.К. – М: Академия,
2008
3. Информатика. Базовый курс./Под ред. Симоновича С.В. – СПб: Питер, 2011.
4. Приемы объектно-ориентированного проектирования. Паттерны проектирования /
Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес – СПб.: Питер, 2013
5. Введение в программирование / Ирина Баженова, Владимир Сухомлин -- Бином.
Лаборатория знаний, Интернет-университет информационных технологий, 2007
6. Объектно-ориентированное программирование в С++ / Роберт Лафоре – СПб,
Питер, 2011
Скачать