Вы находитесь на странице: 1из 22

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ


«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИТМО»

РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ

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

09.03.03 Прикладная информатика


11.03.02 Инфокоммуникационные технологии и системы
Направление подготовки связи
45.03.04 Интеллектуальные системы в гуманитарной
сфере

Квалификация выпускника Бакалавр

Мобильные и сетевые технологии


Программирование в инфокоммуникационных
Бакалаврская программа
системах
Интеллектуальные системы в гуманитарной сфере
(указывается название образовательной программы, без шифра)
Форма обучения очная

Контакт-
Семестр

Вид Занятий Лаборат. Прак-


Трудоемкость контроля ная лекц. занятий,
работа, тич. СРО,
(экз./диф.зач. типа, час. занятий, час.
зач. час. час. час.
/зач.) час.
ед.
4 144 1 экзамен 52,80 16 - 32 91,20

Санкт-Петербург
2020 г.
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ

Разработана:

структурное подразделение ФИКТ

Осипов Никита Алексеевич, к. т. н., доцент, подпись _____________________

2
1. ЦЕЛИ ОСВОЕНИЯ ДИСЦИПЛИНЫ
Целью освоения дисциплины является достижение следующих результатов обучения:
Код и Код (ы) и наименование (-ия)
наименование индикатора(ов) Планируемые результаты обучения
компетенции достижения компетенций
ОПК-1. ОПК-1.1 Планирует Знания: этапы создания программ для
Способен самостоятельную деятельность в решения профессиональных задач;
применять решении профессиональных Умения: планирование разработки
математические, задач алгоритмов и их реализации для
естественнонауч решения профессиональных задач;
ные и Навыки: разработка обоснованного
общепрофессион плана разработки программ для
альные знания решения профессиональных задач;
для понимания ОПК-1.2 Использует положения, Знания: законы и методы естественных
окружающего законы и методы естественных наук и математики при разработке
мира и для наук и математики при решении алгоритмов решения задач
решения задач задач профессиональной профессиональной деятельности;
профессиональн деятельности Умения: применение законов и
ой деятельности методов естественных наук и
математики при решении задач
разработки алгоритмов и программ
профессиональной деятельности;
Навыки: реализация методов
естественных наук и математики в
виде алгоритмов при решении задач
профессиональной деятельности;
ОПК-3. ОПК-3.3 Строит модели Знания: основы моделирования
Способен объектов и процессов программных объектов и процессов
формулировать, профессиональной деятельности профессиональной деятельности;
строить и на базе знаний математики, Умения: моделирование программных
применять программирования и объектов и процессов
математические унифицированных пакетов профессиональной деятельности;
модели для программ Навыки: составление программных
управления моделей объектов и процессов
достижением профессиональной деятельности на
планируемых базе знаний математики,
результатов программирования;
процессов и - применения унифицированных
объектов пакетов программ для реализации
профессиональн программных моделей;
ой деятельности ОПК-3.4 Апробирует и реализует Знания: основы апробации
на базе знаний математические модели в математических моделей в
математики, программной среде и программной среде;
программирован осуществляет их корректировку Умения: апробировать математические
ия и (при необходимости) модели в программной среде;
унифицированн Навыки: реализация математических
ых пакетов моделей в программной среде;
программ - корректировка математических
моделей в программной среде.

3
2. СТРУКТУРА И СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

Распределение часов по дисциплине, часы

лекционного типа

Лабораторные

Практические
Контактная

Всего часов
№ Наименование

Занятия

занятия

занятия
работа
раздела раздела дисциплины

СРО
Общие принципы
1. разработки программных 2,2 2 - - 4 6,2
систем
Программирование как
2. процесс разработки 26,4 8 - 16 38 64,4
программных систем
Объектно-ориентированный
3. подход к разработке 24,2 6 - 16 49,2 73,4
программных систем
ИТОГО: 52,8 16 - 32 91,2 144

Дисциплина реализуется:
В соответствующей ячейке ставится знак Х

• без использования онлайн-курса


Номер (а) из перечня онлайн-
курсов, указанных в учебно-
методическом обеспечении
дисциплины
• с использованием онлайн-курсов (смешанное обучение) X 1

• может быть заменена онлайн-курсом

Наименование Реализация раздела



раздела Содержание дисциплины с помощью
раздела
дисциплины онлайн-курса*
Общие принципы Разработка программы на языке Python онлайн-курс 1
разработки
1
программных
систем
Программирование Операции с целыми числами и онлайн-курс 1
как процесс вещественными числами. Типы данных.
2 разработки Переменные. Стандартный ввод/вывод.
программных Логические операции, операции сравнения.
систем Условия: if, else, elif. Блоки, отступы. Строки
Объектно- Объявление класса и применение объектов онлайн-курс 1
ориентированный при решении задач
подход к
3
разработке
программных
систем

4
3. УЧЕБНО-МЕТОДИЧЕСКОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
Литература:
1) Зыкова, Г. В. Основы программирования на языке Python: учебно-методическое пособие / Г. В.
Зыкова, А. С. Попов, Т. Н. Сапуглецева ; научный редактор Г. В. Зыковой. — 2-е изд., стер. —
Москва: ФЛИНТА, 2020. — 135 с. — ISBN 978-5-9765-4430-7. — Текст: электронный // Лань:
электронно-библиотечная система. — URL: https://e.lanbook.com/book/142296. — Режим доступа:
для авториз. пользователей.
2) Кауфман, В.Ш. Языки программирования. Концепции и принципы [Электронный ресурс] —
Электрон. дан. — Москва: ДМК Пресс, 2010. — 464 с. — Режим доступа:
https://e.lanbook.com/book/1270. — Загл. с экрана.
3) Рик, Г. Простой Python просто с нуля: учебник / Г. Рик; под редакцией Н. Ю. Комлев. — Москва:
СОЛОН-Пресс, 2019. — 256 с. — ISBN 978-5-91359-334-4. — Текст: электронный // Лань:
электронно-библиотечная система. — URL: https://e.lanbook.com/book/139127. — Режим доступа:
для авториз. пользователей.

Онлайн-курсы:
1. Программирование на Python/Т.Бондарев, П.Федотов, - Stepic. – Режим доступа:
https://stepik.org/course/67/promo

4. ОЦЕНОЧНЫЕ СРЕДСТВА ДЛЯ ПРОВЕДЕНИЯ


ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ ПО ДИСЦИПЛИНЕ

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


следующих разделов дисциплины:

Наименование Индикатор(ы) Оценочные


№ раздела дисциплины Компетенция(и) достижения средства текущего контроля
п/п (модуля) компетенции успеваемости
Общие принципы
1. разработки ОПК-1 ОПК-1.1 Тест
программных систем
Программирование как ОПК-1.2
ОПК-1 Тест
2. процесс разработки ОПК-3.3
ОПК-3 Задача
программных систем ОПК-3.4
Объектно-
ОПК-1.2 Тест
ориентированный ОПК-1
3. ОПК-3.3 Задача
подход к разработке ОПК-3
ОПК-3.4 Домашнее задание
программных систем
Форма контроля Оценочные средства
ОПК-1 промежуточной аттестации
Итого:
ОПК-3 Перечень вопросов к устному
Экзамен экзамену

5
5. ТИПОВЫЕ КОНТРОЛЬНЫЕ ЗАДАНИЯ ИЛИ ИНЫЕ МАТЕРИАЛЫ,
НЕОБХОДИМЫЕ ДЛЯ ОЦЕНКИ ДОСТИЖЕНИЯ ЗАПЛАНИРОВАННЫХ
РЕЗУЛЬТАТОВ ОБУЧЕНИЯ

Типовые контрольные задания, необходимые для оценки достижения запланированных


результатов обучения приведены в таблице планирования результатов обучения по дисциплине
(БаРС) (Приложение 1).

5.1 ТЕКУЩИЙ КОНТРОЛЬ УСПЕВАЕМОСТИ

Контроль успеваемости по дисциплине осуществляется с помощью следующих


оценочных средств:
ЗАДАЧА
Описание технологии применения задач:
Задачи (задания) решаются на практических занятиях после выполнения упражнений по
изучаемой теме. По каждой теме необходимо выполнить 1-2 задачи, которые сформулированы
в конце руководства к практическому занятию по изучаемой теме. По результатам выполнения
задач, обучающиеся представляют программу и должны быть готовы ответить на вопросы
преподавателя. Задачи должны быть решены на текущем практическом занятии и сданы не
позднее следующего занятия.

Перечень задач (заданий) по разделу 2.


Задача 1. Требуется написать программу, которая подсчитывает площадь равностороннего
треугольника, периметр которого известен.
Задача 2. Требуется определить, является ли год с данным номером високосным. Если год
является високосным, то выведите YES, иначе выведите NO.
Задача 3. Требуется составить программу, реализующую суммирование чисел, находящихся в
заданном интервале от 1 до k и от m до 100.
Задача 4. Требуется разработать программу, имитирующую стрельбу по мишени. Пользователь
вводит данные о выстреле в виде пары чисел – координат x и y заранее известное количество
раз. Повтор ввода следует организовать в цикле. После «стрельбы» пользователю выводится
информация о сумме очков и его уровень как стрелка (например, снайпер, просто стрелок,
новичок).
Задача 5. Требуется написать программу для вычисления площади выпуклого пятиугольника.
Исходные данные: координаты вершин пятиугольника (значения задайте самостоятельно). Для
решения задачи следует использовать метод декомпозиции: сначала получить площадь
треугольников, а затем их сложить. Для расчета сторон и площади треугольника использовать
отдельные соответствующие функции. Плошать треугольника по трем сторонам определять по
формуле Герона.
Задача 6. Требуется написать программу, рассчитывающее площадь треугольников двух типов:
равностороннего и разностороннего. Для решения задачи реализуйте перегруженные функции:
первая будет принимать один параметр – сторону и вычислять площадь равностороннего
треугольника, вторая – принимать три параметра-стороны треугольника для вычисления
площади разностороннего треугольника.
Задача 7. Требуется реализовать функцию вычисления корней квадратного уравнения.
Функция должна возвращать значение 1, если корни найдены, значение нуля, если оба корня

6
совпадают и значение -1, если корней не существует. Значения корней уравнений должны
возвращаться в качестве аргументов функции, передаваемых по ссылке.
Задача 8. Требуется написать создать массив, заполнить его числами и выполнить обработку
данных, реализовав в виде функций: расчет суммы отрицательных элементов, расчет суммы
положительных элементов, расчет суммы элементов с нечетными номерами, расчет суммы
элементов с четными номерами, поиск максимального и минимального элемента массива,
расчет произведения элементов массива, расположенных между максимальным и
минимальным элементами.
Задача 9. Требуется написать программу для записи небольшого стихотворения с клавиатуры в
текстовый файл.
Задача 10. Напишите программу с использованием структуры, позволяющую раздельно
хранить части телефонного номера (код города, номер телефонной станции и номер абонента).
Создайте две структурные переменные. Инициализацию одной из них произведите сами, а
значения для другой запросите с клавиатуры. Затем выведите содержимое обеих переменных на
экран. Результат работы программы должен выглядеть примерно так: Введите код города,
номер станции и номер абонента: 4155551212. Программа должна выдать следующее: Мой
номер (212) 767-8900 Ваш номер (415) 555-1212
Задача 11. Создайте структуру с именем employee, содержащую два поля: номер сотрудника
типа int и величину его пособия в долларах типа float. Запросите с клавиатуры данные о трех
сотрудниках, сохраните их в трех структурных переменных типа employee и выведите
информацию о каждом из сотрудников на экран.
Задача 12. Создайте структуру с именем time. Три ее поля, имеющие тип int, назовите hours,
minutes и seconds. Напишите программу, которая просит пользователя ввести время в формате
часы, минуты, секунды. Можно запрашивать на ввод как три значения сразу, так и выводить
для каждой величины отдельное приглашение. Программа должна хранить время в структурной
переменной типа time и выводить количество секунд во введенном времени.
Задача 13. Переменной var_int присвойте значение 10, var_float - значение 8.4, var_str - "No".
Измените значение, хранимое в переменной var_int, увеличив его в 3.5 раза, результат свяжите
с переменной big_int. Измените значение, хранимое в переменной var_float, уменьшив его на
единицу, результат свяжите с той же переменной. Разделите var_int на var_float, а затем big_int
на var_float. Результат данных выражений не привязывайте ни к каким переменным. Измените
значение переменной var_str на "NoNoYesYesYes". При формировании нового значения
используйте операции конкатенации (+) и повторения строки (*). Выведите значения всех
переменных.
Задача 14. Присвойте двум переменным любые числовые значения. Составьте четыре сложных
логических выражения с помощью оператора and, два из которых должны давать истину, а два
других - ложь.
Задача 15. Напишите программный код, в котором в случае, если значение некой переменной
больше 0, выводилось бы специальное сообщение. Один раз выполните программу при
значении переменной больше 0, второй раз — меньше 0. Усовершенствуйте предыдущий код с
помощью ветки else так, чтобы в зависимости от значения переменной, выводилась либо 1,
либо -1.

7
Задача 16. Напишите программу по следующему описанию: двум переменным присваиваются
числовые значения; если значение первой переменной больше второй, то найти разницу
значений переменных (вычесть из первой вторую), результат связать с третьей переменной;
если первая переменная имеет меньшее значение, чем вторая, то третью переменную связать с
результатом суммы значений двух первых переменных; во всех остальных случаях, присвоить
третьей переменной значение первой переменной; вывести значение третьей переменной на
экран.
Задача 17. Напишите программу, выводящий ряд чисел Фибоначчи. Затем измените код так,
чтобы выводился ряд чисел Фибоначчи, начиная с пятого члена ряда и заканчивая двадцатым.
Задача 18. Напишите цикл, выводящий ряд четных чисел от 0 до 20. Затем, каждое третье
число в ряде от -1 до -21.
Задача 19. Свяжите переменную с любой строкой, состоящей не менее чем из 8 символов.
Извлеките из строки первый символ, затем последний, третий с начала и третий с конца.
Измерьте длину вашей строки.
Задача 20. Присвойте произвольную строку длиной 10-15 символов переменной и извлеките из
нее следующие срезы: первые восемь символов; четыре символа из центра строки; символы с
индексами кратными трем.
Задача 21. Создайте два любых списка и свяжите их с переменными. Извлеките из первого
списка второй элемент. Измените во втором списке последний объект. Выведите список на
экран. Соедините оба списка в один, присвоив результат новой переменной. Выведите
получившийся список на экран. "Снимите" срез из соединенного списка так, чтобы туда попали
некоторые части обоих первых списков. Срез свяжите с очередной новой переменной.
Выведите значение этой переменной. Добавьте в список-срез два новых элемента и снова
выведите его.
Задача 22. Создайте словарь, связав его с переменной school, и наполните его данными,
которые бы отражали количество учащихся в десяти разных классах (например, 1а, 1б, 2б, 6а,
7в и т.д.). Узнайте сколько человек в каком-нибудь классе. Представьте, что в школе
произошли изменения, внесите их в словарь: в трех классах изменилось количество учащихся; в
школе появилось два новых класса; в школе расформировали один из классов. Выведите
содержимое словаря на экран.

Перечень задач (заданий) по разделу 3.


Задача 1. Создайте класс с именем time, содержащий три поля типа int, предназначенные для
хранения часов, минут и секунд. Один из конструкторов класса должен инициализировать поля
нулевыми значениями, а другой конструктор — заданным набором значений. Создайте метод
класса, который будет выводить значения полей на экран в формате 11:59:59, и метод,
складывающий значения двух объектов типа time, передаваемых в качестве аргументов. В
функции main() следует создать два инициализированных объекта (подумайте, должны ли они
быть константными) и один неинициализированный объект. Затем сложите два
инициализированных значения, а результат присвойте третьему объекту и выведите его
значение на экран. Где возможно, сделайте методы константными.
Задача 2. Создайте класс employee. Класс должен включать поле целого типа для хранения
номера сотрудника и поле вещественного типа для хранения величины его оклада. Методы

8
класса должны позволять пользователю вводить и отображать данные класса. Напишите
функцию main(), которая запросит пользователя ввести данные для трех сотрудников и выведет
полученную информацию на экран.
Задача 3. Создайте класс publication, в котором хранятся название (строка) и цена (типа float)
книги. От этого класса наследуются еще два класса: book, который содержит информацию о
количестве страниц в книге (типа int), и type, который содержит время записи книги в минутах
(тип float). В каждом из этих трех классов должен быть метод getdata(), через который можно
получать данные от пользователя с клавиатуры, и putdata(), предназначенный для вывода этих
данных. Напишите функцию main() программы для проверки классов book и type. Создайте их
объекты в программе и запросите пользователя.
Задача 4. Создайте класс, одно из полей которого хранит «порядковый номер» объекта, то есть
для первого созданного объекта значение этого поля равно 1, для второго созданного объекта
значение равно 2 и т. д. В класс следует включить метод, который будет выводить на экран
порядковый номер объекта. Создайте функцию main(), в которой будут созданы три объекта, и
каждый объект выведет на экран свой порядковый номер, например: Мой порядковый номер: 2
Задача 5. Создайте класс time, чтобы вместо метода сложения можно было использовать
операцию + для складывания двух значений времени. Складывать время и вещественный тип,
операции инкремента и декремента. Напишите программу для проверки класса.
Требования к выполнению задач:

Требования Максимальное
количество
баллов
1. Реализация алгоритма задания. 12
2. Эффективность реализация алгоритма 12
3. Оформление кода. 6
4. Ответы на вопросы преподавателя. 6
Итого: 36

Основаниями для снижения количества баллов за одну задачу в диапазоне от 1 до 2 являются:


 небрежное выполнение,
 отсутствие указания единиц измерения, нет пояснительного рисунка, если он требуется,
В случае если обучающийся допустил существенные ошибки в вычислении и последовательности
решения, оформление работы неудовлетворительное, ему присваивается 0 баллов.

9
ТЕСТ

Описание технологии проведения тестирования:

Тестовые задания выдаются каждому обучающемуся в электронном виде, он отмечает


ответы или указывает ответ, а затем сдает на проверку преподавателю. На выполнение теста
отводится 10-15 минут. Тест содержит 10 вопросов.

Тест по теме 1.
Тестовые задания по теме 1:
1. Перечислите этапы разработки программных систем.
2. Сформулируйте цель программирования.
3. Перечислите виды программного обеспечения.
4. Расположите в правильной последовательности этапы решения задач на ЭВМ:
• Анализ полученных результатов.
• Разработка алгоритма – последовательности действий по решению задачи
• Постановка задачи.
• Тестирование.
• Выбор метода решения (построение математической модели).
• Составление программы на языке программирования.
• Реализация программы на компьютере.
5. Сформулируйте понятие программы.
6. Как представлено число 8310 в двоичной системе счисления?
a) 10010112
b) 11001012
c) 10100112
d) 1010012
7. Для хранения целого числа со знаком используется один байт. Сколько единиц содержит
внутреннее представление числа (-35)?
a) 3
b) 4
c) 5
d) 6
8. Дано: a = 9D16 , b = 2378 . Какое из чисел С, записанных в двоичной системе счисления,
удовлетворяет неравенству a < C < b ?
a) 100110102
b) 100111102
c) 100111112
d) 110111102
9. Символом F обозначено одно из указанных ниже логических выражений от трех аргументов:
X, Y, Z. Дан фрагмент таблицы истинности выражения F (см. таблицу). Какое выражение
соответствует F?
X Y Z F
0 0 0 1
0 0 1 0
0 1 0 1
a) ¬X ∧ ¬Y ∧ Z
b) ¬X ∨ ¬Y ∨ Z
10
c) X ∨ Y ∨ ¬Z
d) X ∨ Y ∨ Z

10. Для какого из значений числа Y высказывание


(Y < 5) ∧ ((Y > 1) → (Y > 5)) будет истинным?
a) 1
b) 2
c) 3
d) 4

Тест по теме 2
Тестовые задания по теме 2:
1. Каким будет значение переменной c после выполнения следующего кода?
int a, b = a = 0, c;
if (b != a++)
c = 1;
else if (b == --a)
c = 2;
Варианты ответа:
a) 0
b) 1
c) 2
d) код не скомпилируется.
2. Пусть а = -5. Сколько раз выполнится тело цикла
while(a<0) a++;
Варианты ответа:
a) 0
b) 4
c) 5
d) 6
3. Что из перечисленного является объявлением указателя в С++:
a) int* a;
b) int &a;
c) int a&;
d) int* &a;
4. Дана функция:
int sum(int a, int b)
{
return a + b;
}
Как правильно вызвать эту функцию (по правилам языка С++)? Выберите возможные
варианты:
a) int sum(int a = 7, int b = 8);
b) sum(int 7, int 8);
c) sum(7, 8);
d) sum() : 7, 8;
e) sum(int a = 7, int b = 8);
5. Что верно о следующем коде (по правилам языка С++):
int main()
{
int a[3] = { 1, 2, 3 };
11
int b[2] = { 1, 2 };
a = b;
return 0;
}
Варианты ответа:
a) Код скомпилируется и успешно выполнится
b) Код скомпилируется, но возникнет ошибка времени выполнения
c) Код не скомпилируется
6. Сколько раз выполнится цикл (по правилам языка С++):
for (int i = 0; i <= 5; i += 3);
Варианты ответа:
a) 5 раз,
b) 6 раз
c) это бесконечный цикл,
d) ни одного раза,
e) 2 раза,
7. Как правильно объявить массив (по правилам языка С++)?
Варианты ответа:
a) int array[];
b) int array[5];
c) int array[] = new array[5];
d) int array[] = new int[];
8. Чему будет равна переменная с после выполнения фрагмента программы (по правилам языка
С++):
int a = 3, b = 2, c;
c = a / b;

a) 1
b) фрагмент содержит ошибку
c) 2
d) 1,5
9. Значение выражения 3/4 * 6.0 равно (вычисления производить по правилам языка С++)
a) 4
b) 5
c) 3
d) 0
e) 0,125
f) 6,0
10. Что будет выведено на экран после выполнения программного фрагмента
int i;
for (i = 1; i >= 5; )
{
i--;
}
a) ничего, таккак фрагмент содержит ошибку
b) 6
c) 5
d) 1

12
Тест по теме 3
Тестовые задания по теме 3:
1. Для одного класса может быть определено несколько конструкторов при условии, что
(отметьте правильный(е) ответ):
a) все они имеют различные имена
b) все они имеют различные списки параметров
c) по крайней мере один из них является конструктором по умолчанию
d) по крайней мере один из них инициализирует все поля
2. Перегрузка методов означает (отметьте правильный(е) ответ):
a) они имеют разные имена
b) они имеют одинаковые имена, но относятся к разным классам иерархии
c) они имеют одинаковые имена и одинаковые списки параметров
d) они имеют одинаковые имена и различные списки параметров
3. Если метод объявлен как виртуальный, тогда любой произвольный класс (отметьте
правильный(е) ответ):
a) может представить переопределенный вариант этого метода с точно же такими
параметрами
b) должен представить переопределенный вариант этого метода с точно же такими
параметрами
c) может представить переопределенный вариант этого метода с теми же или другими
параметрами
d) должен представить переопределенный вариант этого метода с теми же или другими
параметрами
4. Какие механизмы в ОО языках обычно позволяют обеспечить инкапсуляцию объектов?
a) Модификаторы доступа
b) Виртуальные методы
c) Статические методы
d) Динамическое выделение памяти
e) Обработка исключений
5. Словом "агрегация" точнее всего описывается отношение между...
a) ...вами и вашими руками
b) ...вами и вашими друзьями
c) ...вашей комнатой и мебелью в ней
d) ...вашей комнатой и комнатой ваших соседей
6. Словом "композиция" точнее всего описывается отношение между...
a) ...вами и вашими руками
b) ...вами и вашими друзьями
c) ...вашей комнатой и мебелью в ней
d) ...вашей комнатой и комнатой ваших соседей
7. Какие (или какое) из перечисленных утверждений не верны:
a) Понятие «класс» подразумевает некоторое поведение и способ представления.
b) Понятие «объект» подразумевает нечто, что обладает определённым поведением и
способом представления.
c) Говорят, что класс — это экземпляр объекта.
d) Класс в ООП — это в чистом виде абстрактный тип данных, создаваемый
программистом.
8. Выберите верное утверждение:
a) Наследование - Механизм ООП позволяющий скрыть описание реализации объекта
от использующих его модулей.
b) Полиморфизм - Механизм ООП позволяющий объявить новый тип данных, который
является расширением существующего.
13
c) Инкапсуляция - Механизм ООП позволяющий вносить изменения в выполнение
одноименных методов объектов.
d) Полиморфизм обеспечивается тем, что в классе-потомке изменяют реализацию
метода класса-предка с обязательным сохранением сигнатуры метода.
9. Выберите правильные утверждения о конструкторе класса:
a) Конструктор объявляется в точности так же, как и обычный метод класса.
b) Конструктор не возвращает значения.
c) Конструктор может иметь любое имя.
d) Конструктор имеет то же имя, что и класс.
e) Имя конструктора начинается с символа ~.
10. В каком порядке инициализируются поля в классе? Варианты ответа:
a) Порядок инициализации не гарантируется
b) В порядке перечисления инициализаторов в списке инициализации конструктора
c) В порядке их объявления

Требования к выполнению тестов:


Требования Максимальное количество
баллов
1. Количество правильных ответов на вопросы теста при общем количестве 12
правильных ответов 7 и более
2. Количество правильных ответов на вопросы теста при общем количестве 6
правильных ответов 6
Итого: 12

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

Требуется
Создать программное обеспечение системы обработки данных.
Примерное задание: программа для контроля собственных денежных средств.
Необходимо реализовать следующие функции с помощью ООП или функционального
программирования по выбору.
Обязательно должны быть функции, позволяющие:
1. Добавлять продукт в коллекцию (тип коллекции на ваш выбор);
2. Просматривать все записанное в программу;
3. Просматривать покупки по дате и категории;
4. Распределять их по стоимости от минимальной к максимальной или наоборот;
5. Удалять требуемые записи и выходить из программы.
Дополнительные указания: интерфейс программы реализовать на ваше усмотрение.
Рекомендуется реализовать возможность сохранения данных в файл.
14
Форма представления задания: отчет представляется в электронном виде с работающей
программой.
Требования к содержанию и структуре отчета:
1. Титульный лист
2. Задание на выполнение домашнего задания
3. Описание решения задания с указанием применения элементов ООП (инкапсуляции,
наследования и полиморфизма).
4. Графические материалы, блок-схемы алгоритмов, диаграмма классов.
5. Выводы.
Требования к выполнению домашнего задания:
Требования Максимальное
количество
баллов
1. Реализация алгоритма задания. 2
2. Эффективность реализация алгоритма 1
3. Оформление кода. 1
4. Присутствуют все необходимые разделы в 1
отчете.
5. Оформление отчета соответствует требованиям 1
6. Полнота сделанных выводов 1
7. Ответы на вопросы преподавателя. 1
Итого: 8

Основаниями для снижения количества баллов за одну задачу в диапазоне от 0,5 до 1 являются:
 небрежное выполнение,
 отсутствие указания единиц измерения, нет блок-схем и диаграмм классов,
 в графических материалах есть ошибки в реализации.

5.2 ПРОМЕЖУТОЧНАЯ АТТЕСТАЦИЯ

Промежуточная аттестация по дисциплине осуществляется с помощью следующих


оценочных средств:
УСТНЫЙ ЭКЗАМЕН
Описание технологии проведения экзамена:
− формат проведения экзамена: устный экзамен в формате беседы по вопросам
экзаменационного билета и решения практической задачи,
− порядок формирования экзаменационного билета: 1-й вопрос – с 1 по 17 вопрос из
перечня вопросов к экзамену, 2-й вопрос – с 34 по 16 вопрос, задача выбирается из
перечня случайным образом.
− время, отводимое на подготовку ответа – не более 40 минут,
− требования к ответу: изложение должно быть логичным, придерживаться четкого плана,
для пояснения привести примеры.

15
Примерный перечень вопросов к экзамену:
1. Понятие программы и программирования. Виды программного обеспечения.
2. Жизненный цикл программного обеспечения. Стадии разработки программ.
3. Программная документация и стандарты на разработку прикладных программных
средств.
4. Понятие алгоритма. Основные требования, предъявляемые к алгоритмам.
5. Способы описания алгоритмов.
6. Основные типы управляющих конструкций. Операторы выбора.
7. Основные типы управляющих конструкций. Циклы.
8. Рекурсивные и итерационные алгоритмы.
9. Методы сортировки данных.
10. Простые типы данных.
11. Структурные типы данных. Структура данных «очередь».
12. Структура данных «стек».
13. Алгоритмическая декомпозиция.
14. Объектный подход к проектированию программ. Понятия класса и объекта.
15. Принципы объектно-ориентированного подхода.
16. Отношения между классами.
17. Сущность наследования.
18. Структура программы на языке высокого уровня.
19. Типы данных языка высокого уровня.
20. Реализация линейных вычислений. Операторы языка высокого уровня.
21. Операторы управления в языке высокого уровня.
22. Операторы цикла в языке высокого уровня.
23. Организация программы с помощью функций в языке высокого уровня.
24. Описание и вызов функции в языке высокого уровня.
25. Области действия переменных в языке высокого уровня.
26. Списки и их применение.
27. Кортежи и их применение.
28. Реализация передачи параметров в функцию в языке высокого уровня.
29. Применение массивов в языке высокого уровня.
30. Структуры и их применение.
31. Словари и их применение.
32. Реализация класса в языке высокого уровня.
33. Реализация механизма наследования классов в языке высокого уровня.
34. Реализация инкапсуляции в языке высокого уровня.

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

Вариант
1 2 3 4
Квадрат Прямоугольник Прямоугольный Круг
треугольник

2. Напишите функцию, имеющую один входной параметр – целое число, и


реализующую функционал в соответствии с вариантом.

Вариант
1 2 3 4
Вычисление Определение Вычисления Вычисления суммы
факториала числа четности числа квадратного корня всех целых чисел в
числа диапазоне от нуля
до заданного числа

3. Задан массив чисел X(n). Реализуйте в программе:

Вариант
1 2 3 4
Элементы массива Элементы массива Элементы массива Элементы массива
целые числа. Размер целые числа. Ввод с вещественные целые числа. Ввод с
массива 10. Ввод клавиатуры размера числа. Размер клавиатуры размера
элементов массива. массива. Ввод массива 10. Ввод массива. Ввод
Вывод на экран элементов массива. элементов массива. элементов массива.
сумму элементов Вывод на экран Вывод на экран Вывод на экран
массива отрицательных произведения суммы
элементов массива элементов массива отрицательных
элементов массива.

4. Напишите программу, позволяющую вывести на экран значения функции

Вариант
1 2 3 4
sin(x) в диапазоне 0 sin(x) в диапазоне 0 x в диапазоне 0 до
3
x в диапазоне 10 до
3

до π с шагом π/4, до 2π с шагом π/2, 10 с шагом 2, 12 с шагом 0.5,


используя цикл с используя цикл с используя цикл с используя цикл с
предусловием постусловием предусловием постусловием

17
5. Напишите программу, используя оператор выбора, для которой входным параметром
является целое число, вводимое с клавиатуры, реализующую вывод на экран:

Вариант
1 2 3 4
День недели. Название месяца Один из цветов Фамилию
радуги обучающегося из
вашей группы (одну
из пяти первых)

6. Напишите структуру, содержащую три переменных вещественного типа a, b, c и один


следующий метод:

Вариант
1 2 3 4
(b+c)
a+b+c a·b·c a/b/c a

7.Напишите класс, содержащий три строковые переменные: имя, отчество и фамилию.


Создайте следующие объекты вашего класса и введите с клавиатуры имя, отчество и фамилию.
8. Напишите функцию, которая воспринимает целое значение и возвращает число с
обратным порядком цифр. Например, воспринимает число 7631, а возвращает число 1367.
9. Наибольший общий делитель двух целых чисел - это наибольшее целое, на которое
без остатка делится каждое из двух чисел. Напишите функцию nod, которая возвращает
наибольший общий делитель двух целых чисел.
10. Напишите функцию, которая вводит среднюю оценку студентов и возвращает 4, если
средняя оценка 90 - 100, 3, если средняя оценка 80 - 89, 2, если средняя оценка 70 - 79, 1, если
средняя оценка 60 - 69, и 0, если средняя оценка меньше 60.
11.Напишите функцию, определяющую, является ли число простым (целое число
является простым числом, если оно делится только на 1 и на само себя). Используйте эту
функцию в программе, которая определяет и печатает все простые числа, лежащие в диапазоне
от 1 до 10000.
12 Напишите программу, которая играет в игру "Угадай число" следующим образом:
ваша программа выбирает случайное число, которое должно быть отгадано, в диапазоне от 1 до
100. Затем программа печатает:
Мое число между 1 и 100.
Вы можете его отгадать?
Пожалуйста, напечатайте свою первую догадку.
Затем игрок печатает свою первую догадку. Программа отвечает одним из следующих
вариантов:
Отлично! Вы отгадали число!
Хотели бы вы сыграть еще раз (да или нет)?
Слишком мало. Попытайтесь снова
Слишком много. Попытайтесь снова
Если догадка игрока неверна, ваша программа должна работать циклически до
получения верного ответа.
18
После того как число будет угадано программа сообщает игроку его уровень игры
(например, мастер, отличный, хороший, плохой).

Порядок формирования экзаменационного билета


Экзаменационный билет № 1
1. Понятие программы и программирования. Виды программного обеспечения.
2. Реализация инкапсуляции в языке высокого уровня.
3. Задача согласно варианта.

Шкала оценивания и критерии оценки:

Минимальное Максимальное
Критерии оценки количество количество
баллов баллов
Уровень усвоения материала, предусмотренного 0 2
программой
Умение выполнять задания, предусмотренные 0 2
программой
Уровень знакомства с основной литературой, 0 2
предусмотренной программой
Уровень знакомства с дополнительной литературой 0 2
Уровень раскрытия причинно-следственных связей 0 2
Уровень раскрытия междисциплинарных связей 0 2
Качество ответа (его общая композиция, логичность, 0 3
убежденность, общая эрудиция)
Ответы на вопросы: полнота, аргументированность, 0 3
убежденность, умение использовать ответы на вопросы
для более полного раскрытия содержания вопроса
Деловые и волевые качества докладчика: ответственное 0 2
отношение к работе, стремление к достижению высоких
результатов, готовность к дискуссии, контактность
Итого баллов: 0 20

Оценка Минимальное Максимальное


количество количество
баллов баллов
«5» (отлично) 90 103
«4» (хорошо) 74 90
«3» (удовлетворительно) 60 74
«2» (неудовлетворительно) 0 60

Знания, умения и навыки обучающихся при промежуточной аттестации в форме


экзамена определяются оценками «отлично», «хорошо», «удовлетворительно»,
«неудовлетворительно».
«Отлично» – обучающийся глубоко и прочно усвоил весь программный материал,
исчерпывающе, последовательно, грамотно и логически стройно его излагает, не затрудняется с
ответом при видоизменении задания, свободно справляется с задачами и практическими
заданиями, правильно обосновывает принятые решения, умеет самостоятельно обобщать и
излагать материал, не допуская ошибок.
«Хорошо» – обучающийся твердо знает программный материал, грамотно и по существу
излагает его, не допускает существенных неточностей в ответе на вопрос, может правильно
применять теоретические положения и владеет необходимыми умениями и навыками при
выполнении практических заданий.

19
«Удовлетворительно» – обучающийся усвоил только основной материал, но не знает
отдельных деталей, допускает неточности, недостаточно правильные формулировки, нарушает
последовательность в изложении программного материала и испытывает затруднения в
выполнении практических заданий.
«Неудовлетворительно» – обучающийся не знает значительной части программного
материала, допускает существенные ошибки, с большими затруднениями выполняет
практические задания, задачи.

20
Приложение 1
Таблица планирования результатов обучения по дисциплине (БаРС)
<--- выберите из списка семестра, для которого заполняется
Семестр 1
данная Таблица планирования результатов обучения

<--- выберите форму промежуточного контроля в соответствии с


Контроль по окончании семестра Экзамен учебным планом (экзамен/зачёт/дифференцированный зачет) по
результатам семестра

Признак контрольной точки


Название Максимальное Минимальное Срок сдачи
№ (выберите признак контрольной
(выберите из списка) значение значение (в неделях)
точки)
1 Раздел 1
2 Тест 12 8 4 неделя
3 Раздел 2
4 Тест 12 10 6 неделя
5 Задача Ключевая 18 16 10 неделя
6 Раздел 3
7 Тест 12 10 12 неделя
8 Задача Ключевая 18 16 14 неделя
9 Домашнее задание 8 0 16 неделя
В соответствии с расписанием
Экзамен 20 0
ПА

Дополнительные баллы: 3 0 В соответствии с расписанием


ПА
Итого: 103 60

21
22

Вам также может понравиться