МИНОБРНАУКИ РОССИИ
федеральное государственное бюджетное образовательное учреждение высшего образования
«Алтайский государственный университет»

Объектно-ориентированное программирование

рабочая программа дисциплины
Закреплена за кафедройКафедра информатики
Направление подготовки01.03.02. Прикладная математика и информатика
ПрофильМатематическое и компьютерное моделирование в природных и индустриальных системах
Форма обученияОчная
Общая трудоемкость4 ЗЕТ
Учебный план01_03_02_Прикладная математика и информатика_МКМПиИС-2022
Часов по учебному плану 144
в том числе:
аудиторные занятия 56
самостоятельная работа 88
Виды контроля по семестрам
зачеты: 4

Распределение часов по семестрам

Курс (семестр) 2 (4) Итого
Недель 23
Вид занятий УПРПДУПРПД
Лекции 18 18 18 18
Лабораторные 38 38 38 38
Сам. работа 88 88 88 88
Итого 144 144 144 144

Программу составил(и):
к.ф.-м.н., Доцент, Половикова Ольга Николаевна

Рецензент(ы):

Рабочая программа дисциплины
Объектно-ориентированное программирование

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования - бакалавриат по направлению подготовки 01.03.02 Прикладная математика и информатика (приказ Минобрнауки России от 10.01.2018 г. № 9)

составлена на основании учебного плана:
01.03.02 Прикладная математика и информатика
утвержденного учёным советом вуза от 29.10.2021 протокол № 1/1.

Рабочая программа одобрена на заседании кафедры
Кафедра информатики

Протокол от 26.06.2023 г. № 4
Срок действия программы: 20232024 уч. г.

Заведующий кафедрой
к.ф.-м.н., доцент Козлов Д.Ю.


Визирование РПД для исполнения в очередном учебном году

Рабочая программа пересмотрена, обсуждена и одобрена для
исполнения в 2023-2024 учебном году на заседании кафедры

Кафедра информатики

Протокол от 26.06.2023 г. № 4
Заведующий кафедрой к.ф.-м.н., доцент Козлов Д.Ю.


1. Цели освоения дисциплины

1.1.Цель курса – формирование у студентов необходимой теоретической базы и практических навыков, которые позволят всесторонне и системно видеть этапы и процесс разработки программных продуктов. Базовыми этапами процесса создания программных систем являются анализ и моделирование (проектирование), поэтому вопросам построения проектов посвящен один из основных блоков данного курса.
Главная задача курса сформировать целостное представление о методах и подходах объектно-ориентированного анализа и проектирования программно-аппаратных комплексов, помочь овладеть практическим опытом программирования на языке С++ и проектирования программных продуктов с применением унифицированного языка моделирования UML (Unified Modeling Language) в среде Rational Rose.

2. Место дисциплины в структуре ООП

Цикл (раздел) ООП: Б1.О.04

3. Компетенции обучающегося, формируемые в результате освоения дисциплины

ОПК-2Способен использовать и адаптировать существующие математические методы и системы программирования для разработки и реализации алгоритмов решения прикладных задач
ОПК-2.1 Обладает навыками использования основных языков программирования, методов разработки программ, стандартов оформления программой документации
ОПК-2.2 Умеет выбирать среди существующих математических методов наиболее подходящие для решения конкретной прикладной задачи
ОПК-2.3 Умеет адаптировать существующие системы программирования для реализации алгоритмов решения конкретной прикладной задачи
ОПК-5Способен разрабатывать алгоритмы и компьютерные программы, пригодные для практического применения
ОПК-5.1 Знает методы теории алгоритмов, системного и прикладного программирования, основные положения и концепции в области компьютерного программирования
ОПК-5.2 Умеет соотносить знания в области программирования, интерпретацию прочитанного, определять и создавать информационные ресурсы глобальных сетей, образовательного контента, средств тестирования систем
ОПК-5.3 Имеет практический опыт разработки и применения программного обеспечения
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.о различных парадигмах программирования и современном уровне развития языков и технологий программирования;
о сложности программных систем и методах ее преодоления;
синтаксис и базовые конструкции языков C#, основные возможности и приемы программирования на этих языках;
принципы структурного и объектно-ориентированного программирования;
способы использования библиотеки шаблонов STL;
терминологию (понятийный аппарат) объектно-ориентированного анализа, проектирования, программирования и тестирования программных систем;
этапы и стадии разработки программных продуктов;
базовые принципы объектно-ориентированного моделирования систем и принципы проектирования сложных систем;
технологию разработки проекта программной системы на базе унифицированного языка UML;
синтаксис и семантику языка UML.
3.2.Уметь:
3.2.1.разрабатывать алгоритмы решения типичных задач и реализовывать их на языке C#;
вести разработку в терминах объектно-ориентированной парадигмы программирования с использованием языка С++;
использовать различные виды наследования классов, в том числе, виртуального и множественного наследования;
использовать стандартные классы библиотеки STL в качестве базовых для разработки прикладных систем
выполнять объектно-ориентированный анализ различных предметных областей;
применять полученные теоретические знания и практические навыки проектирования программных продуктов в среде Rational Rose;
проверять (анализировать) построенный проект на возможные ошибки (логические).
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.современными интегрированными средами разработки;
методами объектно-ориентированного программирования с использованием языка С#;
современным инструментарием проектирования программных продуктов;
методами объектно-ориентированного анализа при проектировании программных продуктов для различных предметных областей;
технологией анализа проектов программных продуктов.

4. Структура и содержание дисциплины

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Объектно-ориентированное программирование
1.1. Cовременные технологии программирования. Парадигмы программирования. Процедурный и объектный подход к программированию.Объектно-ориентированная технология разработки программных систем и её принципы. Принципы проектирования сложных систем. Лекции 4 1 Л2.1, Л1.1
1.2. История и назначение языка Си#. Идентификаторы, переменные и константы. Операции и выражения. Приоритет операций.Операторы. Операторы управления. Операторы цикла. Вызов функций.Имена функций. Необязательные аргументы функций. Встроенные типы языка Си#. Массивы, структуры, объединения, указатели. Адресная арифметика. Строки и литералы. Лекции 4 3 Л2.1, Л1.1
1.3. Базовые конструкции языка Си++. Работа с указателями. Сам. работа 4 20 Л2.1, Л1.1
1.4. Базовые конструкции языка Си#. Работа с указателями. Лабораторные 4 6 Л2.1, Л1.1
1.5. Способы описания классов.Понятие класса. Создание объектов. Обращение к атрибутам и методам объектов. Определение методов класса. Переопределение операций. Подписи методов и необязательные аргументы. Запись классов. Лекции 4 2 Л2.1, Л1.1
1.6. Распределение памяти. Проблемы при явном распределении памяти в Си++, способы их решения. Распределение памяти под переменные, управление памятью с помощью переопределения операторов new и delete. Автоматические переменные. Статические переменные. Динамическое выделение памяти. Выделение памяти под строки. Рекомендации по использованию указателей и динамического распределения памяти. Распределение памяти при передаче аргументов функции. Рекомендации по передаче аргументов. Лекции 4 2 Л2.1, Л1.1
1.7. Контроль доступа к объекту. Интерфейс и состояние объекта. Объявление friend. Использование описателя const. Доступ к объекту по чтению и записи. Контроль доступа к атрибутам и методам объекта, контроль по чтению и по записи. Лекции 4 2 Л2.1, Л1.1
1.8. Классы. Атрибуты и методы. Конструкторы. Деструкторы. Сам. работа 4 20 Л2.1, Л1.1
1.9. Классы. Атрибуты и методы. Конструкторы. Деструкторы. Лабораторные 4 6 Л2.1, Л1.1
1.10. Классы – конструкторы и деструкторы. Конструкторы и деструкторы классов. Возможности инициализации объектов. Копирующий конструктор(по умолчанию). Деструкторы. Инициализация объектов. Операции new и delete для классов. Лекции 4 2 Л2.1, Л1.1
1.11. Переопределение операций. Как определять операции. Преобразования типов. Явные преобразования типов.Стандартные преобразования типов. Преобразования указателей и ссылок. Преобразования типов, определенных в программе. Лекции 4 2 Л2.1, Л1.1
1.12. Классы. Перегрузка операторов. Сам. работа 4 20 Л2.1, Л1.1
1.13. Классы. Перегрузка операторов. Лабораторные 4 6 Л2.1, Л1.1
1.14. Производные классы, наследование. Виртуальные методы. Виртуальные методы и переопределение методов. Преобразование базового и производного классов. Внутреннее и защищенное наследование. Абстрактные классы. Множественное наследование. Виртуальное наследование. Лекции 4 2 Л2.1, Л1.1
1.15. Наследование. Дружественность. Статические атрибуты и методы. Сам. работа 4 20 Л2.1, Л1.1
1.16. Наследование. Дружественность. Статические атрибуты и методы. Лабораторные 4 8 Л2.1, Л1.1
1.17. Компоновка программ, препроцессор. Компоновка нескольких файлов в одну программу. Проблема использования общих функций и имен. Использование включаемых файлов. Препроцессор. Определение макросов. Условная компиляция. Дополнительные директивы препроцессора.Шаблоны. Назначение шаблонов. Функции-шаблоны. Шаблоны классов. Стандартная библиотека шаблонов (STL). Лекции 4 2 Л2.1, Л1.1
1.18. Функции-шаблоны. Шаблоны классов. Сам. работа 4 8 Л2.1, Л1.1
1.19. Функции-шаблоны. Шаблоны классов. Лабораторные 4 8 Л2.1, Л1.1
1.20. Итоговая контрольная работа по темам: создние класса, динамическая память, перегрузка операторов, наследование Лабораторные 4 4 Л2.1, Л1.1

5. Фонд оценочных средств

5.1. Контрольные вопросы и задания для проведения текущего контроля и промежуточной аттестации по итогам освоения дисциплины
Оценочные материалы для текущего контроля по разделам и темам дисциплины в полном объеме размещены в онлайн-курсе на образовательном портале «Цифровой университет АлтГУ» – https://portal.edu.asu.ru/course/view.php?id=6759.
Контрольные вопросы и задания для проведения текущего контроля освоения дисциплины

ОЦЕНКА СФОРМИРОВАННОСТИ КОМПЕТЕНЦИИ ОПК-2 и ОПК-5

ПРИМЕРЫ ЗАДАНИЙ ОТКРЫТОГО ТИПА:

Индивидуальные Задания для лабораторных работ
блок 1

1)Создать класс Множество Точек, для этой сущности следует задать следующие
характеристики: Номер объекта, массив точек (элементы структуры Point). Необходимо
создать конструкторы.
Следует определить следующий набор методов:
1. формирование массива точек (случайным образом, вручную на основе элемента
формы),
2. поиск минимальной окружности (вычисление центра окружности (C(x,y) )и
радиуса R), которая содержит все точки текущего объекта
3. отображение массива точек на форме
4. отображение окружности минимальной окружности.

2)Создать класс для сущности Правильный Треугольник. Для этой сущности следует
задать следующие характеристики: три точки на плоскости. Необходимо создать
конструкторы. Следуют определить следующий набор методов:
1. формирование координат для точек (случайным образом и вручную) с проверкой
на возможность быть точками треугольника.
2. поворот треугольника на заданный угол.
3. отображение треугольника на элементе формы.
4. вычисление и отображение вписанной и описанной окружности (два метода).

3)Создать класс для сущности Сектор Единичного Круга, которая характеризуется
углом. Реализовать конструктор с параметром (радианная или градусная мера угла) и без.
Следует определить следующий набор методов:
Объединение двух секторов (оператор +)
Пересечение двух секторов (оператор *)
Вычитание одного сектора из другого (бинарный оператор -)
Инверсия (унарный -).

4)Создать класс для сущности Квадратная Матрица, с характеристиками: размерность и
двумерный массив элементов. Реализовать конструкторы. Реализовать следующие
методы:
1. Задание матрицы случайным образов и вручную.
2. Сложение матриц (оператор +)
3. Вычитание матриц (оператор -)
4. Отображение матрицы на форме.
5)Создать класс для сущности Прямоугольная Матрица, с характеристиками:
размерность (M, N) и двумерный массив элементов. Реализовать конструкторы.
Реализовать следующие методы:
1. Задание матрицы случайным образов и вручную.
2. Вычитание матриц (оператор -)
3. Отображение матрицы на форме.
4. Отображение транспонированной матрицы на форме.
5. Вычисление обратной матрицы (унарный -)

6)Создать класс для сущности Банковский Счёт (рублёвый), с характеристиками: номер
счета, фамилия владельца, дата открытия счёта, денежная сумма, процентная ставка.
Реализовать необходимые свойства для полей класса (согласно логике работы с этими
полями). Реализовать следующие методы:
1. Вычисление накоплений к указанной дате.
2. Отображение информации о банковском счёте форме.
3. Отображение накопленной сумме к указанной дате в рублевом, валютном
эквиваленте (несколько видов валют).

7)Создать класс для сущности Кредитный Заём (рублёвый), с характеристиками: номер
займа, фамилия заёмщика, дата займа, сумма займа, процентная ставка (зависит от суммы
займа), кол-во периодов (месяцев). Реализовать необходимые свойства для полей класса
(согласно логике работы с этими полями). Реализовать следующие методы:
1. Вычисление ежемесячных платежей
2. Отображение информации о банковском счёте форме.
3. Отображение информации по ежемесячным платежам в рублевом, валютном
эквиваленте (несколько видов валют).

8)Создать класс для сущности Фотоаппарат с характеристиками: модель фотоаппарата,
плёнка (объект другого класса), уровень зарядки (изменяется с течением времени). Класс
Пленка должен обладать следующими характеристиками: кол-во кадров, номер текущего
кадра, номер плёнки (строка). Реализовать необходимые свойства полей согласно логике
работы с полями для класса Фотоаппарат и для Класса Плёнка. Реализовать следующие
методы для класса Плёнка:
1. Показать текущий кадр.
2. Переместить на следующий кадр.
Реализовать следующие методы для класса Фотоаппарат:
1. Зарядить новую плёнку
2. Вынуть плёнку
3. Зарядить батарею.
4. Показать заряд батареи
5. Проверка возможности сделать очередной снимок (уровень батареи, плёнка).
6. Сделать снимок (Переместить на следующий кадр), если есть возможность.
7. Отобразить информацию о состоянии фотоаппарата (с информацией о состоянии
плёнки)на форму.

9)Создать класс для сущности График тригонометрической функции y=A*sin(B*x) на
заданном интервале. Следует предусмотреть в классе следующие поля: параметр А,
параметр В, интервал [a, b], способ задания интервала (градусы, радианы), количество
выводимых точек для формирования графического представления функции (базовые
точки). Самостоятельно определить свойства для реализации данного класса и
недостающие поля. Реализовать конструкторы. Реализовать методы:
1. Отображение графика на форме.
2. Изменение количества базовых точек.
3. Изменение масштаба (связать с изменение интервала).

10)Создать класс для сущности Цистерна с жидкостью. Предусмотреть следующие поля:
состояние клапана (открыт, закрыт), режим клапана (вливание, выливание), текущий
объём (уровень) жидкости, максимальный объём (уровень) жидкости, скорость
вливания/выливания.
Реализовать конструктор и необходимые свойства для полей. Реализовать методы:
1. Графическое представление состояния цистерны
2. Имитация процесса вливания и выливания жидкости до определенного объема
(уровня) – два метода.
3. Переключение клапана между режимами.
4. Включение и выключение клапана.
При необходимости класс можно дополнить другими методами, полями,
свойствами.
11)Индивидуальное задание (любая предметная область и сущность )

ПРИМЕРЫ ЗАДАНИЙ ЗАКРЫТОГО ТИПА:
Индивидуальные задания. Лабораторная работа 2.
Необходимо реализовать класс для сущности КВАДРАТНАЯ МАТРИЦА. Класс следует наделить
необходимыми полями, свойствами, методами, операторами. Необходимый интерфейс следует реализовать в
WindowsForms.
Задание 1.
Для заданного значения n (через элемент формы TextBox) строится и отображается на Форме квадратная матрица А.
Сделать защиту от некорректного ввода (обработка исключительных ситуаций). Форму нужно разбить с использованием
инструмента «panel» на несколько областей. Для отображения матрицы следует использовать инструмент «DataGridView».
Весь необходимый функционал следует реализовать в классе «Квадратная матрица».
Индивидуальные варианты:
1)
n n ....................n
n-1 n-1 ............n-1
n-2 n-2 ............n-2
............................
1 1 1...................1
2)
(n - нечетное)
1 1 1 ....................1
0 1 1 ........... .....1 0
0 0 1 1 ....... ...1 0 0
0 0 .......0 1 0 0.....0
0 0 ........1 1 1 0... 0
...............................
1 1 1.....................1
3)
1 2 3 ................n
2 3 4 ............. n 1
3 4 ........... n 1 2
..........................
n 1 2 .................
4)
n 0 0 ............0
n-1 n 0 0 ......0
n-2 n-1 n 0 ...0
.......................
1 2 3 .............n
5)
(n-чётное) для n=6
1 0 0 ..............0 0 n 1 0 0 0 0 6
0 2 0 ........0 n-1 0 0 2 0 0 5 0
0 0 3 0 0 ..0 n-2 0 0 0 0 3 4 0 0
…………………. 0 0 3 4 0 0
............................... 0 2 0 0 5 0
1 0 0 ..................0 n 1 0 0 0 0 6
6)
1 2 3 ............. n
2 3 4 ...........n 0
3 4 5 .........n 0 0
..........................
n 0 0 ...............0
7)
x - заданное число (предусмотреть данное закрытое поле и свойство к нему, добавить инструмент TextBox для ввода
значения)
x x
2
x
3
............x
n
x
2
x
3
............x
n
1
..........................
x
n
1 1 ..............1
8)
(пример приведен для n=5)
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
9)
n 0 0 ... 0
0 n-1 0 0
0 0 n-2 0 0
..................
0 0 ...........1
10)
1 1 1..........1 1 1
1 2 2 2.......2 2 1
1 2 3 3 ......3 2 1
1 2 3 4 ...4 3 2 1
............n..........
……………….
1 2 2.............2 1
1 1 1 1.............1
11)
(пример приведен для n=6)
1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15 21
1 4 10 20 35 56
1 5 15 35 70 126
1 6 21 56 126 252
12)
n n-1 n-2 ......... 2 1
n-1 n-2 ............1 2
n-2 n-1 ..........1 2 3
............................
1 2 3...................n
13)
n-1 0 0 ............0
n n-1 0 0 ......0
0 n n-1 0 ... 0
.....................0
0 0 .......n ..n-1
14)
x - заданное число (предусмотреть данное закрытое поле и свойство к нему, добавить инструмент TextBox для ввода
значения)
x x x x..............x
x
2
x
2
..............x
2
..........................
x
n
x
n
..............x
n
15)
(пример приведен для n=5)
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
16)
1 2 0 0 ...........0
0 2 3 0 0 ........0
0 0 3 4 0 ........0
........................
0 0 0 .......n n+1
17)
(n - четное)
1 1 ...1 2 2......2
1 1.....1 2 2 .....2
.........................
1 1......1 2 2......2
3 3 .....3 4 4 .....4
..........................
3 3 ......3 4 4 .....4
18)
(пример приведен для n=5)
5 4 3 2 1
6 7 8 9 10
15 14 13 12 11
16 17 18 19 20
25 24 23 22 21
Задание 2.
При нажатии кнопки «Построение по заданию» выполняется построение второй матрицы В и третьей матрицы С
преобразованием матрицы А по варианту и вывод их на форму.
Индивидуальные варианты:
В 1
Увеличить каждый элемент столбца на номер столбца
К каждому элементу строки прибавить соответствующий элемент главной диагонали.
В 8
Увеличить каждый элемент строки на номер строки
Найти наибольший элемент во всей матрице и добавить его к каждому элементу главной диагонали.
В 4
Выполнить транспонирование матрицы a[i,j]=a[j,i]
Добавить к каждому элементу строки i первый элемент в этой строке.
В 3
Все элементы k столбца умножить на k.
Все элементы строки k умножить на (n-k)
В 2
Первый столбец С совпадает с А. Второй столбец С равна сумме столбцов 1, 2. Третий - сумме первых трех столбцов и т
д.
Первая строка С совпадает с А. Вторая строка С равна сумме строк 1, 2 . Третья - сумме первых трех строк и т д.
В 5
Элементы главной и побочной диагоналей переставить в обратном порядке.
К элементам, которые выше главной диагонали прибавить номер стоки, а к элементам, которые ниже главной диагонали
прибавить номер столбца.
В 6
Переставить первый элемент каждой строки с последним, второй с предпоследним и т.д.
Второй элемент каждого столбца заменить на сумму первого и второго, третий - на сумму первых трех и т.д.
В 7
Каждому элементу столбца добавить соответствующий элемент побочной диагонали
Каждый элемент строк с четными номерами увеличить в 2 раза, а все элементы с нечетными номерами строк разделить на
2
В 9
К элементам, которые ниже главной диагонали прибавить номер стоки, а к элементам, которые выше главной диагонали
прибавить номер столбца.
Переставить первую строку с последней, вторую с предпоследней и т.д.
В 10
Поменяйте местами каждый чётный столбец с нечётным: первый со вторым, третий с четвёртым и т.д.
Поменять местами верхнюю половину матрицы (строки от 1 до n/2 ) с нижней половиной.
В 11
Поменять местами соответствующие элементы главной и побочной диагоналей.
Переставить элементы по следующей схеме. Пример для n=5
5 4 3 2 1
6 7 8 9 10
15 14 13 12 11
16 17 18 19 20
25 24 23 22 21
В 12
Каждый элемент строки увеличить на сумму элементов этой строки.
Каждый элемент столбца увеличить на сумму элементов этого столбца.
В 13 (k - задаётся через TextBox)
k-тую строку и k-тый столбец задать случайным образом.
Увеличить каждый элемент столбца на номер столбца
В 14 (одно задание)
Переставить элементы по следующей схеме. Пример для n=5
1 2 6 7 15
3 5 8 14 16
4 9 13 17 22
10 12 18 21 23
11 19 20 24 25
В 15
Для каждого столбца поменять местами первый и второй элементы, третий и четвертый и т.д.
Каждый элемент строк с нечетными номерами увеличить в 2 раза, а все элементы с четными номерами строк разделить на
2.
B 16
К элементам, которые ниже главной диагонали прибавить номер стоки, а к элементам, которые выше главной диагонали
прибавить номер столбца.
Переставить первую строку с последней, вторую с предпоследней и т.д.
B 17
Увеличить каждый элемент строки на номер строки.
Найти наибольший элемент во всей матрице и добавить его к каждому элементу главной диагонали.
В 18
Переставить первый элемент каждой строки с последним, второй с предпоследним и т.д.
Второй элемент каждого столбца заменить на сумму первого и второго, третий - на сумму первых трех и т.д.

Задание 3 (Дополнительное задание).
При нажатии на кнопку «Определители» (инструмент «Button») выполняется вычисление определителей двух матриц и
отображение результатов на Форму (инструмент «Label»).

КРИТЕРИИ ОЦЕНИВАНИЯ: Каждое задание оценивается 1 баллом. Оценивание КИМ в целом: «отлично» – верно выполнено 85-100% заданий; «хорошо» – верно выполнено 70-84% заданий; «удовлетворительно» – верно выполнено 51-69% заданий; «неудовлетворительно» – верно выполнено 50% или менее 50% заданий.
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
не предусмотрено
5.3. Фонд оценочных средств для проведения промежуточной аттестации
Промежуточная аттестация заключается в проведении в середине семестра КОЛЛОКВИУМОВ по вопросам. Экзамен проводится в форме теста, примеры вопросов экзамена представлены ниже.

ВОПРОСЫ ТЕОРЕТИЧЕСКОГО ХАРАКТЕРА
1 БЛОК
1. В чем разница между ссылкой и указателем? Когда нужно использовать именно указатель, а не ссылку?
2. Что такое константная ссылка на объект?
3. Как можно использовать указатель на константный объект, константный указатель на объект.
4. Что такое конструктор копирования по умолчанию (явный и неявный). Когда в программе нужен явный конструктор копирования.
5. Напишите объявление перегружаемого оператора постинкремента для некоторого класса.
6. Что называют сигнатурой и прототипом метода класса
7. Что называют перегрузкой метода класса
8. Какое правило существует при использовании параметров со значениями по умолчанию.
9. Напишите объявление перегружаемого оператора преинкремента для некоторого класса.
10. Напишите объявление перегружаемого бинарного оператора суммы (+) для некоторого класса.
11. Напишите объявление перегружаемого унарного оператора смены знака (-) для некоторого класса.
12. Напишите объявление перегружаемого оператора присваивания (=) для некоторого класса. Для каких классов следует явно перегрузить оператор присваивания.
13. Какая ошибка в следующей реализации конструктора копирования по умолчанию и деструктора? Какой ещё оператор необходимо перегрузить для данного класса?
2 БЛОК

1- В чем разница между ссылкой и указателем?
2- Когда нужно использовать именно
3- указатель, а не ссылку?
4- Что такое константная ссылка на объект ?
5- Как можно использовать указатель на константный объект,
6- константный указатель на объект.
7- Что такое конструктор копирования по умолчанию
8- (явный и неявный).
9- Когда в программе нужен явный конструктор копирования.
10- Напишите объявление перегружаемого оператора постинкремента для некоторого класса.
11- Что называют сигнатурой и прототипом метода класса
12- Что называют перегрузкой метода класса
13- Какое правило существует при использовании параметров со значениями по умолчанию.
14- Напишите объявление перегружаемого оператора преинкремента для некоторого класса.…

ВОПРОСЫ ТЕСТА ЭКЗАМЕНА - ПРАКТИЧЕСКИЕ ВОПРОСЫ
1 Точка входа
Укажите корректное создание точки входа в консольную программу на языке C#

[[1]] Program {

static void [[2]] ()

...

}

2 преобразования
Установите соответствие (код на языке C#):

int i = 100L [[1]]

float f = 100.0 [[2]]

double d = 100 [[3]]

long l = (long) 3.14 [[4]]

3 создание класса
Постройте корректное утверждение

Спецификатор видимости нового класса (язык C#) по умолчанию -- [[1]]

4 создание метода класса
Постройте корректное утверждение

По умолчанию модификатором доступа для метода класса является -- [[1]]

5 создание статического свойства класса
Постройте корректное утверждение

По умолчанию* модификатором доступа для статического свойства класса является -- [[1]]

* Если модификатор доступа отсутствует в объявлении свойства.

6 тип констант
Постройте корректное утверждение

Все вещественные литералы (константы) в программе на языке C# без использования каких-либо [[1]] относятся к типу [[2]]

7 директива
Укажите все верные варианты (один или несколько).

8 Директива using используется для (язык С#):

создания нового пространства имён в текущем программном модуле
+подключения существующего пространства имён к текущему программному модулю
создания новой библиотеки классов
подключения существующей библиотеки классов
создания псевдонима (нового имени) для класса

9 Принципы ООП
Укажите основные принципы методологии Объектно-ориентированного программирования

+Наследование
+Инкапсуляция
+Полиморфизм
Параметризация
Шаблонность

10 создание объекта
Для следующего класса укажите все корректные способы создания объекта

public class Dog{

...

public Dog(int b, float a = 3.15 ){

...}

public Dog(): this(4) {

..}

}


Dog Tim = new Dog();


Dog Tim = new Dog;


Dog Tim = new Dog(10.5)


Dog Tim = new Dog(10.5, 0);


Dog Tim = new Dog(10.5, 4.5);


Dog Tim = new Dog(10);

11 тип
Служебное слово: decimal?


+определяет тип-значение для хранения десятичных дробных чисел
определяет ссылочный тип для хранения целых чисел
определяет тип-значение для хранения целых чисел
определяет ссылочный тип для хранения десятичных дробных чисел
определяет ссылочный тип для хранения целых чисел со знаком

12 модификаторы доступа
Укажите НЕСУЩЕСТВУЮЩИЕ модификаторы доступа в синтаксисе языка C#

В ответе укажите только номера(номер) без пробелов из списка

1) public

2) private

3) protected

4) internal

5) public private

6) protected internal

7) private protected

Ответ 5

13 коллекции
Если элемент A коллекции [[1]] был добавлен после элемента B, тогда элемент A будет прочитан только после элемента B.

14 коллекции
Если элемент A коллекции [[1]] был добавлен после элемента B, тогда элемент B будет прочитан только после элемента A.

15 UML
Язык UML предназначен для:
Проектирования разрабатываемых программных систем
+Описания требований к будущей системе со стороны заказчиков
+описания взаимодействий между элементами будущей системы с целью предоставления сервисов (услуг, функций), для реализации которых система и разрабатывается
отладки и тестирования программного кода на объектно-ориентированных языках (Си++, С#)
распараллеливания сложного ресурсоёмкого вычислительного процесса

16 UML
Укажите все корректные виды диаграмм
+диаграмма прецедентов
+диаграмма развёртывания
+диаграмма классов
диаграмма связей
диаграмма целей

17 UML
Укажите диаграмму, на которой изображается взаимодействие между элементами системы через приём/передачу сообщений
диаграмма целей
диаграмма развёртывания
+диаграмма последовательностей
диаграмма связей
диаграмма прецедентов

18 UML (копия)
Укажите тип диаграмм, на которых изображаются связи между внешними сущностями, взаимодействующими с будущей системы из вне.
диаграмма целей
диаграмма развёртывания
диаграмма последовательностей
диаграмма связей
+диаграмма прецедентов

19 интерфейс
Укажите название интерфейса, поддержка которого гарантирует реализацию методов доступа к элементам коллекции по индексу
ICollection
IList
IDictionary
+IEnumerable
ISet

20 интерфейс
Укажите название интерфейса, поддержка которого гарантирует реализацию методов доступа к элементам коллекции (добавление, удаление, ...) по ключу
ICollection
IList
+IDictionary
IEnumerable
ISet

КРИТЕРИИ ОЦЕНИВАНИЯ:
«Отлично»: студентом дан полный, в логической последовательности развернутый ответ на поставленные вопросы, где он продемонстрировал знания предмета в полном объеме учебной программы, достаточно глубоко осмысливает дисциплину, самостоятельно, и исчерпывающе отвечает на дополнительные вопросы, приводит собственные примеры по проблематике поставленного вопроса, решил предложенные практические задания без ошибок.
«Хорошо»: студентом дан развернутый ответ на поставленный вопрос, где студент демонстрирует знания, приобретенные на лекционных и семинарских занятиях, а также полученные посредством изучения обязательных учебных материалов по курсу, дает аргументированные ответы, приводит примеры, в ответе присутствует свободное владение монологической речью, логичность и последовательность ответа. Однако допускаются неточности в ответе. Решил предложенные практические задания с небольшими неточностями.
«Удовлетворительно»: студентом дан ответ, свидетельствующий в основном о знании процессов изучаемой дисциплины, отличающийся недостаточной глубиной и полнотой раскрытия темы, знанием основных вопросов теории, слабо сформированными навыками анализа явлений, процессов, недостаточным умением давать аргументированные ответы и приводить примеры, недостаточно свободным владением монологической речью, логичностью и последовательностью ответа. Допускается несколько ошибок в содержании ответа и решении практических заданий.
«Неудовлетворительно»: студентом дан ответ, который содержит ряд серьезных неточностей, обнаруживающий незнание процессов изучаемой предметной области, отличающийся неглубоким раскрытием темы, незнанием основных вопросов теории, неумением давать аргументированные ответы. Выводы поверхностны. Решение практических заданий не выполнено. Студент не способен ответить на вопросы даже при дополнительных наводящих вопросах преподавателя.
Приложения

6. Учебно-методическое и информационное обеспечение дисциплины

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Слабнов В. Д. Программирование на С++: Учебники и учебные пособия для ВУЗов Познание, 2012 biblioclub.ru
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Подбельский В.В., Фомин С.С. Курс программирования на языке Си: Учебники Издательство "ДМК Пресс", 2012 e.lanbook.com
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Поисковые системы - yandex.ru, google.com
Э2 Свободная энциклопедия Википедия – http://ru.wikipedia.org
Э3 Форум разработчиков программного обеспечения - Stackoverflow.com
Э4 Интернет-университет информационных технологий. – http://www.intuit.ru
Э5 Объектно-ориентированное программирование portal.edu.asu.ru
6.3. Перечень программного обеспечения
Visual Studio
Microsoft Windows
Microsoft Office
7-Zip
AcrobatReaderMicrosoft Office 2010 (Office 2010 Professional, № 4065231 от 08.12.2010), (бессрочно);
Microsoft Windows 7 (Windows 7 Professional, № 61834699 от 22.04.2013), (бессрочно);
Chrome (http://www.chromium.org/chromium-os/licenses), (бессрочно); 7-Zip (http://www.7-zip.org/license.txt), (бессрочно);
AcrobatReader (http://wwwimages.adobe.com/content/dam/Adobe/en/legal/servicetou/Acrobat_com_Additional_TOU-en_US-20140618_1200.pdf), (бессрочно);
ASTRA LINUX SPECIAL EDITION (https://astralinux.ru/products/astra-linux-special-edition/), (бессрочно);
LibreOffice (https://ru.libreoffice.org/), (бессрочно);
Веб-браузер Chromium (https://www.chromium.org/Home/), (бессрочно);
Антивирус Касперский (https://www.kaspersky.ru/), (до 23 июня 2024);
Архиватор Ark (https://apps.kde.org/ark/), (бессрочно);
Okular (https://okular.kde.org/ru/download/), (бессрочно);
Редактор изображений Gimp (https://www.gimp.org/), (бессрочно)
6.4. Перечень информационных справочных систем
1. Электронная база данных «Scopus» (http://www.scopus.com);
2. Электронная библиотечная система Алтайского государственного университета (http://elibrary.asu.ru/);
3. Научная электронная библиотекаe library(http://elibrary.ru)
4. Электронная база данных ZBMATH: https://zbmath.org/

7. Материально-техническое обеспечение дисциплины

Аудитория Назначение Оборудование
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
107Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 18 посадочных мест; компьютеры: марка HP, модель ProOne 400 - 18 единиц; проектор: марка SMART, модель UF70 - 1 единица; интерактивная доска: марка SMART Board модель SMB680 - 1 единица

8. Методические указания для обучающихся по освоению дисциплины

На лекционных занятиях необходимо конспектировать изучаемый материал.
- Для систематизации лекционного материала, который будет полезен при подготовке к итоговому контролю знаний, записывайте на каждой лекции тему, вопросы для изучения, рекомендуемую литературу.
- В каждом вопросе выделяйте главное, обязательно запишите ключевые моменты (определение, факты, законы, правила и т.д.), подчеркните их.
- Если по содержанию материала возникают вопросы, не нужно выкрикивать, запишите их и задайте по окончании лекции или на семинарском занятии.
- Перед следующей лекцией обязательно прочитайте предыдущую, чтобы актуализировать знания и осознанно приступить к освоению нового содержания

Лабораторные работы, где студенты максимально активно участвуют в практическом приложении изучаемого материала дисциплины.
- Самостоятельную подготовку к занятию необходимо начинать с изучения понятийного аппарата темы. Рекомендуем использовать справочную литературу (словари, справочники, энциклопедии), целесообразно создать и вести свой словарь терминов.
- Важно запомнить, что любой источник должен нести достоверную информацию, особенно это относится к Internet-ресурсам. При использовании Internet - ресурсов в процессе подготовки не нужно их автоматически «скачивать», они должны быть проанализированы. Не нужно «скачивать» готовые рефераты, так как их однообразие преподаватель сразу выявляет, кроме того, они могут быть сомнительного качества.
- В процессе изучения темы анализируйте несколько источников. Используйте периодическую печать - специальные журналы.
- Полезным будет работа с электронными учебниками и учебными пособиями в Internet-библиотеках. Зарегистрируйтесь в них: университетская библиотека Онлайн (http://www.biblioclub.ru/) и электронно-библиотечная система «Лань» (http://e.lanbook.com/).
- В процессе подготовки и построения решения, поставленных задач, не просто читайте текст учебника, но и выражайте свою личностно-профессиональную оценку прочитанного.
- Задания практического характера: продумайте план их выполнения или решения .
- При возникновении трудностей в процессе работы взаимодействуйте с преподавателем, консультируйтесь по самостоятельному изучению темы.

Самостоятельная работа.
- При изучении дисциплины не все вопросы рассматриваются на занятиях, часть вопросов рекомендуется преподавателем для самостоятельного изучения.
- Поиск ответов на вопросы и выполнение заданий для самостоятельной работы позволит вам расширить и углубить свои знания по курсу, применить теоретические знания в решении задач практического содержания, закрепить изученное ранее.
- Эти задания следует выполнять не «наскоком», а постепенно, планомерно, следуя порядку изучения тем курса.
- При возникновении вопросов обратитесь к преподавателю в день консультаций на кафедру.
- Выполнив их, проанализируйте качество их выполнения. Это поможет вам развивать умения самоконтроля и оценочные компетенции.
Итоговый контроль.
- Для подготовки к зачету возьмите перечень примерных вопросов у преподавателя.
- В списке вопросов выделите те, которые были рассмотрены на занятиях. Обратитесь к своим записям, выделите существенное. Для более детального изучения изучите рекомендуемую литературу.
- Если в списке вопросов есть те, которые не рассматривались на занятии, изучите их самостоятельно.