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

Технологии и методы программирования

рабочая программа дисциплины
Закреплена за кафедройКафедра информационной безопасности
Направление подготовки10.03.01. Информационная безопасность
ПрофильБезопасность автоматизированных систем (в сфере профессиональной деятельности)
Форма обученияОчная
Общая трудоемкость8 ЗЕТ
Учебный план10_03_01_ИБ-2020
Часов по учебному плану 288
в том числе:
аудиторные занятия 114
самостоятельная работа 147
контроль 27
Виды контроля по семестрам
экзамены: 4
зачеты: 3

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

Курс (семестр) 2 (3) 2 (4) Итого
Недель 19 19
Вид занятий УПРПДУПРПДУПРПД
Лекции 24 24 26 26 50 50
Лабораторные 32 32 32 32 64 64
Сам. работа 88 88 59 59 147 147
Часы на контроль 0 0 27 27 27 27
Итого 144 144 144 144 288 288

Программу составил(и):
к.ф.-м.н., доцент, Лепендин Андрей Александрович

Рецензент(ы):
к.ф.-м.н., доцент, Рудер Давыд Давыдович

Рабочая программа дисциплины
Технологии и методы программирования

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 10.03.01 ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ (уровень бакалавриата) (приказ Минобрнауки России от 01.12.2016 г. № 1515)

составлена на основании учебного плана:
10.03.01 Информационная безопасность
утвержденного учёным советом вуза от 30.06.2020 протокол № 6.

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

Протокол от 28.06.2023 г. № 11-2022/23
Срок действия программы: 20232024 уч. г.

Заведующий кафедрой
Поляков Виктор Владимирович


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

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

Кафедра информационной безопасности

Протокол от 28.06.2023 г. № 11-2022/23
Заведующий кафедрой Поляков Виктор Владимирович


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

1.1.Цель изучения дисциплины – изучение современных технологий и методов программирования, получение навыков проектирования программного обеспечения (ПО), расширение кругозора в сфере разработки ПО.
Задачи дисциплины:
изучение основ объектно-ориентированного программирования
изучение основ проектирования и использования абстрактных типов данных
получение оценок сложности работы алгоритмов
изучение методологии и средств разработки ПО
изучение методов проектирования ПО
изучение тестирования и отладки программного обеспечения
изучение принципов, методов и средств сопровождения ПО

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

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

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

ОПК-7 способностью определять информационные ресурсы, подлежащие защите, угрозы безопасности информации и возможные пути их реализации на основе анализа структуры и содержания информационных процессов и особенностей функционирования объекта защиты
В результате освоения дисциплины обучающийся должен
3.1.Знать:
3.1.1.о жизненном цикле разработки ПО
об основных подходах к проектированию
о существующих стандартах отрасли в области разработки программных продуктов
3.2.Уметь:
3.2.1.формулировать техническое задание
применять все этапы объектно-ориентированного подхода к разработке ПО
применять библиотеки для тестирования ПО
3.3.Иметь навыки и (или) опыт деятельности (владеть):
3.3.1.алгоритмами сортировки и основными структурами данных
методами оценки сложности работы применяемых алгоритмов
CASE технологиями при разработке ПО

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Объектно-ориентированное программирование
1.1. Введение в объектно-ориентированное программирование.Виды конструкторов и обеспечение доступа к полям класса. Статические поля и методы. Перегрузка операторов. Виртуальные методы и абстрактные классы. Абстрактные классы Лекции 3 12 ОПК-7 Л1.2, Л2.1, Л1.3
1.2. Введение в объектно-ориентированное программирование.Виды конструкторов и обеспечение доступа к полям класса. Статические поля и методы. Перегрузка операторов. Виртуальные методы и абстрактные классы. Абстрактные классы Сам. работа 3 44 ОПК-7 Л1.2, Л2.1, Л1.3
Раздел 2. Шаблоны классов и другие механизмы языка С++
2.1. Обработка исключений.Механизм исключений. Шаблоны классов. Шаблонный класс-контейнер для хранения данных.Move-семантика в C++. Лекции 3 12 ОПК-7 Л1.2, Л2.2, Л1.1, Л2.3
2.2. Обработка исключений.Механизм исключений. Шаблоны классов. Шаблонный класс-контейнер для хранения данных.Move-семантика в C++. Сам. работа 3 44 ОПК-7 Л1.2, Л1.3, Л2.2
Раздел 3. Задания к лабораторным работам. 1 семестр
3.1. 1. Введение в объектно-ориентированное программирование Лабораторные 3 4 ОПК-7 Л1.4, Л2.2, Л2.3
3.2. 2. Введение в ООП. Часть 2 Лабораторные 3 4 ОПК-7 Л1.4, Л2.2, Л2.3
3.3. 3. Классы. Агрегация классов Лабораторные 3 4 ОПК-7 Л1.4, Л2.2, Л2.3
3.4. 4. Массивы как поля классов Лабораторные 3 4 ОПК-7 Л1.4, Л2.2, Л2.3
3.5. 5. Наследование Лабораторные 3 4 ОПК-7 Л1.4, Л2.2, Л2.3
3.6. 6. Абстрактные классы Лабораторные 3 4 ОПК-7 Л1.4, Л2.1, Л2.2
3.7. 7. Обработка исключений Лабораторные 3 4 ОПК-7 Л1.4, Л2.1, Л2.2
3.8. 8. Использование библиотеки STL Лабораторные 3 4 ОПК-7 Л1.4, Л2.1, Л2.2
Раздел 4. Основы анализа алгоритмов. Сортировка последовательностей
4.1. Оценка сложности алгоритмов. Медленные сортировки. Сортировка вставками. Рекуррентные алгоритмы. Методы решения рекуррентных уравнений. Быстрая сортировка. Пирамидальная сортировка. Общие ограничения на сложность алгоритмов сортировки Лекции 4 8 ОПК-7 Л1.2, Л2.2, Л1.1, Л2.3
4.2. Оценка сложности алгоритмов. Медленные сортировки. Сортировка вставками. Рекуррентные алгоритмы. Методы решения рекуррентных уравнений. Быстрая сортировка. Пирамидальная сортировка. Общие ограничения на сложность алгоритмов сортировки Сам. работа 4 18 ОПК-7 Л1.2, Л2.2, Л1.1, Л2.3
Раздел 5. Алгоритмы поиска. Бинарные деревья поиска
5.1. Линейный и рекуррентный поиск. Хэш-функции и поиск в хэш-таблицах. Бинарные деревья поиска. Бинарные деревья. Основные понятия и числовые оценки. Деревья поиска. Операции поиска, вставки и удаления элементов. Сбалансированные бинарные деревья поиска. Операции левого и правого вращения узлов. Балансировка AVL-деревьев. Красно-черные деревья. Доказательство сбалансированности. Модифицированные операции поиска, вставки и удаления в красно-черных деревьях Лекции 4 8 ОПК-7 Л1.2, Л1.4, Л2.3
5.2. Линейный и рекуррентный поиск. Хэш-функции и поиск в хэш-таблицах. Бинарные деревья поиска. Бинарные деревья. Основные понятия и числовые оценки. Деревья поиска. Операции поиска, вставки и удаления элементов. Сбалансированные бинарные деревья поиска. Операции левого и правого вращения узлов. Балансировка AVL-деревьев. Красно-черные деревья. Доказательство сбалансированности. Модифицированные операции поиска, вставки и удаления в красно-черных деревьях Сам. работа 4 20 ОПК-7 Л1.2, Л1.4, Л2.3
Раздел 6. Дискретная оптимизация. Динамическое программирование
6.1. Задачи непрерывной и дискретной оптимизации. Понятие задачи оптимизации. Линейное программирование. Симплекс-метод. Дискретная оптимизация. Динамическое программирование. Общий подход к решению задач динамического программирования. Задача о сборочной линии. Задача об умножении цепочки матриц. Задача о наибольшей общей подпоследовательности. Рекуррентное решение и мемоизация Лекции 4 10 ОПК-7 Л1.2, Л1.4, Л2.3
6.2. Задачи непрерывной и дискретной оптимизации. Понятие задачи оптимизации. Линейное программирование. Симплекс-метод. Дискретная оптимизация. Динамическое программирование. Общий подход к решению задач динамического программирования. Задача о сборочной линии. Задача об умножении цепочки матриц. Задача о наибольшей общей подпоследовательности. Рекуррентное решение и мемоизация Сам. работа 4 21 ОПК-7 Л1.2, Л1.4, Л2.3
Раздел 7. Задания к лабораторным работам. 2 семестр
7.1. 1. Оценка эмпирической сложности работы Лабораторные 4 8 ОПК-7 Л1.4, Л1.3, Л2.3
7.2. 2. Простые (медленные) сортировки Лабораторные 4 8 ОПК-7 Л1.4, Л1.3, Л2.3
7.3. 3. Быстрые сортировки Лабораторные 4 8 ОПК-7 Л1.4, Л1.3, Л2.3
7.4. 4. Дискретная оптимизация. Динамическое программирование Лабораторные 4 8 ОПК-7 Л1.4, Л1.3, Л2.3
Раздел 8. Экзамен
8.1. Экзамен 4 27 ОПК-7 Л1.2, Л1.4, Л2.1, Л1.3, Л2.2, Л1.1, Л2.3

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

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

ОЦЕНКА СФОРМИРОВАННОСТИ КОМПЕТЕНЦИИ:
ОПК-7: способностью определять информационные ресурсы, подлежащие защите, угрозы безопасности информации и возможные пути их реализации на основе анализа структуры и содержания информационных процессов и особенностей функционирования объекта защиты

ПРИМЕРЫ ЗАДАНИЙ ЗАКРЫТОГО ТИПА
Вопрос 1. Каким методом производится доказательство выполнения инварианта цикла?
А. Методом логического вывода
Б. Методом анализа бесконечно малых
В. Методом математической индукции
Ответ: В

Вопрос 2. Выберите медленные алгоритмы сортировки из перечисленных ниже
А. Сортировка слиянием
Б. Сортировка пузырьком
В. Сортировка вставками
Г. Пирамидальная сортировка
Д. Radix-сортировка
Ответ: Б, В

Вопрос 3. Из каких компонент состоит типичный рекурсивный алгоритм?
А. Разделение, покорение, комбинирование
Б. Разделение, слияние, поглощение
В. Деконструкция, сборка, реконструкция
Ответ: А

Вопрос 4. В каком алгоритме сортировки выделяется следующий инвариант цикла?
«Перед каждой итерацией цикла подмассив A[p..k-1] содержит k-p наименьших элементов массивов L[1..n1+1] и R[1..n2+1] в отсортированном порядке. Кроме того, элементы L[i] и R[i] являются наименьшими элементами массивов L и R, которые еще не скопированы в массив A»
А. Сортировка вставками
Б. Сортировка пузырьком
В. Сортировка слиянием
Г. Пирамидальная сортировка
Д. Быстрая сортировка
Ответ: В

Вопрос 5. Выделите основные виды асимптотических оценок сложности
А. Оценка верхней границы O(.)
Б. Оценка нижней границы Ω(.)
В. Оценка в лучшем случае
Г. Оценка в среднем
Ответ: А, Б

Вопрос 6. Выберите множества функций, к которым принадлежит функция f(n)=n^2 (n в квадрате).
А. O(n^2)
Б. Ω (n)
В. O(n)
Г. Ɵ(n^3)
Ответ: А, Б

Вопрос 7. Чем является пирамида (куча) в пирамидальной сортировке?
А. Массивом сортируемых элементов, для которого выполняется свойство невозрастания
Б. Графом, в вершинах которого записаны сортируемые элементы
В. Бинарным деревом поиска с сортируемыми элементами в качестве ключей
Ответ: А

Вопрос 8. Какая структура данных может быть эффективно реализована на основе пирамиды?
А. Стек
Б. Очередь с приоритетами
В. Куча
Г. Очередь
Ответ: Б

Вопрос 9. Когда эффективно применение метода сортировки подсчетом?
А. Когда множество сортируемых элементов дискретно и конечно
Б. Когда множество сортируемых элементов представляет собой отрезок конечной длины
В. Когда множество сортируемых элементов представляет собой произвольные целые числа
Ответ: А

Вопрос 10. Какая структура данных гарантирует быстрый поиск элементов за время O(log n), где n – число хранимых элементов?
А. Массив элементов
Б. Куча элементов
В. Бинарное дерево
Г. Красно-черное дерево
Ответ: Г

Вопрос 11. Какие дополнительные операции осуществляются с узлами красно-черного дерева при вставке/удалении ключей?
А. Перекраска узла
Б. Левый поворот
В. Лево-правый поворот
Г. Изменение значения ключа узла
Ответ: А, Б

Вопрос 12. Метод динамического программирования предназначен для решения задачи
А. Сортировки
Б. Поиска
В. Дискретной оптимизации
Г. Линейного программирования
Ответ: В


Вопрос 13. Какое ключевое слово используется для объявления закрытой части класса?
А. public
Б. protected
В. private
Ответ: В

Вопрос 14. Конструктор вида имя_класса() называется
А. Копирующим конструктором
Б. Стандартным конструктором
В. Конструктором по умолчанию
Ответ: В

Вопрос 15. Какой контейнерный тип следует применять как эффективную альтернативу стандартному C-массиву?
А. Множество
Б. Стек
В. Вектор
Г. Очередь с приоритетами
Ответ: В

КРИТЕРИИ ОЦЕНИВАНИЯ ЗАКРЫТЫХ ВОПРОСОВ
Каждое задание оценивается 1 баллом. Оценивание выполненных заданий в целом:
- «зачтено» – верно выполнено более 50% заданий; «не зачтено» – верно выполнено 50% и менее 50% заданий;
- «отлично» – верно выполнено 85-100% заданий; «хорошо» – верно выполнено 70-84% заданий; «удовлетворительно» – верно выполнено 51-69% заданий; «неудовлетворительно» – верно выполнено 50% или менее 50% заданий.

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

Вопрос 1. Как называется метод, имя которого совпадает с именем класса и который вызывается автоматически при создании объекта класса
Ответ: конструктор

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

Вопрос 3. Какой механизм отвечает за получение элементов другого класса данным классом и его возможность изменять их свойства и методы?
Ответ: это механизм наследования

Вопрос 4. При объявлении элемента класса как private он не доступен _ (кому?)
Ответ: никому кроме самого класса, к нему не имеют доступа ни внешние функции, ни наследники этого класса

Вопрос 5. Что такое дружественная функция?
Ответ: функция, объявленная в классе с атрибутом friend, не являющаяся членом класса и обладающая доступом к закрытым и защищенным элементам класса

Вопрос 6. По умолчанию элементы класса имеют атрибут доступа _, а элементы структуры по умолчанию имеют атрибут доступа _.
Ответ: private (для класса), public (для структуры)

Вопрос 7. Какие операторы нельзя переопределить в классе?
Ответ: оператор разрешения области видимости ::, оператор выбора элемента . (точка), оператор разыменования (звездочка), оператор вычисления размера sizeof и сокращенный условный оператор (?:)

Вопрос 8. Средство, позволяющее использовать одно имя для обозначения действий, общих для родственных классов, называется _ и реализовано в C++ через _
Ответ: полиморфизм, реализован через перегрузку функций и механизм виртуальных функций, а также шаблоны (альтернатива без наследования)

Вопрос 9. Алгоритм сортировки вставками в среднем имеет сложность _
Ответ: Ɵ(n^2) (допустим ответ O(n^2))

Вопрос 10. При анализе рекурсивных алгоритмов этап покорения отвечает за _
Ответ: рекурсивное решение подзадач, на которые была разбита исходная задача

Вопрос 11. Теоретическая нижняя граница временной сложности произвольного алгоритма сортировки, при отсутствии ограничений на множество сортируемых значений равна _
Ответ: Ω(n log n)

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

Вопрос 13. Какой метод поиска элемента эффективен при поиске в последовательном упорядоченном индексированном контейнере?
Ответ: метод деления пополам

Вопрос 14. _ временная сложность операции вставки в конец последовательности составляет для вектора Ɵ(1)
Ответ: амортизированная (допустимо: средняя на цепочке последовательных операций)

Вопрос 15. Свойство невозрастающей пирамиды заключается в том, что _
Ответ: для каждого не корневого узла пирамиды значение в нем не превосходит значения его родителя

Вопрос 16. При сортировке карманами последовательности элементов длины n число карманов, по которым они распределяются равно _
Ответ: n, совпадает с числом элементов

Вопрос 17. Основное свойство бинарных деревьев поиска заключается в том, что _
Ответ: значение ключа любого узла дерева превосходит значения всех ключей узлов его левого поддерева и не превосходит значения всех ключей его правого поддерева

Вопрос 18. Что называется черной высотой узла в красно-черном дереве?
Ответ: количество черных узлов на пути от данного узла до любого достижимого листа

Вопрос 19. Какие операции модификации дерева используются в AVL-деревьях для их корректировки при вставках/удалениях?
Ответ: левые, правые, лево-правые и право-левые повороты

Вопрос 20. Подход к решению задач дискретной оптимизации, основанный на последовательном решении все более сложных подзадач на основе комбинирования оптимальных решений меньших подзадач называется _
Ответ: динамическим программированием

КРИТЕРИИ ОЦЕНИВАНИЯ ОТКРЫТЫХ ВОПРОСОВ.
«Отлично» (зачтено): Ответ полный, развернутый. Вопрос точно и исчерпывающе передан, терминология сохранена, студент превосходно владеет основной и дополнительной литературой, ошибок нет.
«Хорошо» (зачтено): Ответ полный, хотя краток, терминологически правильный, нет существенных недочетов. Студент хорошо владеет пройденным программным материалом; владеет основной литературой, суждения правильны.
«Удовлетворительно» (зачтено): Ответ неполный. В терминологии имеются недостатки. Студент владеет программным материалом, но имеются недочеты. Суждения фрагментарны.
«Неудовлетворительно» (не зачтено): Не использована специальная терминология. Ответ в сущности неверен. Переданы лишь отдельные фрагменты соответствующего материала вопроса. Ответ не соответствует вопросу или вовсе не дан.
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
не предусмотрены
5.3. Фонд оценочных средств для проведения промежуточной аттестации
Промежуточная аттестация заключается в проведении в конце семестра экзамена по всему изученному курсу. Экзамен проводится в устной форме по билетам. В билет входит 2 вопроса: как правило, 1 вопрос теоретического характера и 1 вопрос практико-ориентированного характера.

ВОПРОСЫ ТЕОРЕТИЧЕСКОГО ХАРАКТЕРА:
1. Определение инварианта цикла. Инвариант цикла для алгоритма сортировки вставками. Доказательство выполнения методом математической индукции
2. Асимптотические оценки сложности алгоритмов. Оценка времени работы и требуемого объема памяти. Θ()-, Ω()- и O()-обозначения. Наихудшее, наилучшее и среднее время работы алгоритма. Пример: алгоритм сортировки вставками
3. Метод декомпозиции для разработки рекурсивных алгоритмов. Сортировка слиянием
4. Инвариант цикла для функции слияния. Доказательство выполнения методом математической индукции
5. Асимптотические оценки времени работы для функций слияния и сортировки слиянием. Рекуррентное уравнение для времени работы алгоритма сортировки слиянием
6. Метод деревьев рекурсии для решения рекуррентных соотношений. Пример решения для нетривиального случая
7. Пирамида. Свойство пирамиды. Основные операции доступа к элементам пирамиды. Функция MaxHeap для обеспечения свойства пирамиды, ее асимптотическая сложность
8. Создание пирамиды. Инвариант цикла при создании пирамиды. Асимптотическая оценка времени работы для функции создания пирамиды
9. Идея алгоритма пирамидальной сортировки (без описания функций MaxHeap и создания пирамиды). Асимптотическая оценка сложности работы
10. Быстрая сортировка. Метод декомпозиции для быстрой сортировки. Инвариант цикла при быстрой сортировке. Доказательство выполнения инварианта
11. Худшее и среднее асимптотическое время работы быстрой сортировки. Рандомизированная версия алгоритма быстрой сортировки
12. Анализ рандомизированной версии алгоритма быстрой сортировки с помощью случайных индикаторных функций
13. Модель дерева решений для задачи сортировки. Нижняя асимптотическая оценка времени работы произвольного алгоритма сортировки без дополнительных знаний об объектах
14. Сортировка подсчетом. Асимптотическое время работы. Понятие устойчивой сортировки. Radix-сортировка. Асимптотическое время работы. Алгоритм сортировки карманами (без доказательства оценки времени работы)
15. Асимптотическая оценка времени работы алгоритма сортировки карманами с помощью индикаторных функций
16. Задача поиска объекта. Линейный поиск. Асимптотические оценки времени поиска, вставки и удаления элемента в линейном контейнере
17. Задача поиска объекта Бинарный поиск. Асимптотические оценки времени поиска, вставки и удаления элемента при бинарном поиске (не на деревьях поиска, в последовательном контейнере)
18. Бинарные деревья поиска. Основные определения и свойства. Поиск ближайшего по значению ключа элемента в бинарном дереве поиска
19. Вставка элементов в бинарном дереве поиска. Асимптотическое время работы этих операций
20. Красно-черные деревья. Свойства красно-черных деревьев. Черные высоты узлов. Доказательство теоремы о сбалансированности красно-черных деревьев
21. Операции левого и правого вращения. Модификация обычной вставки в бинарном дереве для случая красно-черного дерева
22. Задача динамического программирования. Основные компоненты решения
23. Пример задачи оптимизации - задачи о сборочном конвейере

ВОПРОСЫ ПРАКТИКО-ОРИЕНТИРОВАННОГО ХАРАКТЕРА
1. Структуры. Машинное представление структур. Объединения и перечисления
2. Виды управления памятью (статические и динамические структуры данных)
3. Классы и структуры в языке С++. Синтаксис. Поля и методы класса
4. Наследование. Основные принципы. Открытое, закрытое и защищенное наследование классов
5. Перегрузка операторов. Реализация в виде методов класса и в виде дружественных функций
6. Шаблоны функций и классов. Синтаксис. Примеры применения
7. Обработка исключений. Операторы. Раскрутка стека
8. Оценки времени работы алгоритмов. O(n), Ө(n) и Ω(n) обозначения. Примеры
9. Массивы в С++. Размещение в памяти, временные характеристики работы
10. Контейнерные классы и итераторы. Пример простого односвязного списка
11. Основные виды итераторов. Класс iterator_traits. Пример применения этого класса
12. Алгоритмы для работы с контейнерными типами. Поиск, заполнение, преобразования. Примеры из библиотеки STL (algorithm)
13. Класс vector библиотеки STL. Внутреннее устройство. Основные методы
14. Классы dequeue библиотеки STL. Внутреннее устройство. Основные методы
15. Класс queue и stack библиотеки STL. Внутреннее устройство. Основные методы
16. Связные списки. Виды списков. Класс list библиотеки STL. Основные методы
17. Класс priority_queue библиотеки STL. Внутреннее устройство. Основные методы
18. Классы set, multiset, map и multimap библиотеки STL. Внутреннее устройство.

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

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Тузовский А.Ф. Объектно-ориентированное программирование: Учебное пособие для прикладного бакалавриата М.: Издательство Юрайт, 2018 // ЭБС "Юрайт" urait.ru
Л1.2 Царев Р. Ю. Программирование на языке Си: Учебники и учебные пособия для ВУЗов Сибирский федеральный университет, 2014 // ЭБС Университетская библиотека Online biblioclub.ru
Л1.3 Лаврищева Е.М. Программная инженерия и технологии программирования сложных систем: Учебник Юрайт, 2018 // ЭБС "Юрайт" www.biblio-online.ru
Л1.4 Трофимов В.В. - отв. ред. Алгоритмизация и программирование: Учебник для академического бакалавриата М.: Издательство Юрайт, 2018 // ЭБС "Юрайт" www.biblio-online.ru
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Гниденко И. Г., Павлов Ф. Ф., Федоров Д. Ю. Технология разработки программного обеспечения: Учебное пособие Юрайт, 2018 // ЭБС "Юрайт" urait.ru
Л2.2 Зыков С.В. Программирование. Объектно-ориентированный подход: Учебник и практикум для академического бакалавриата Юрайт, 2018 // ЭБС "Юрайт" www.biblio-online.ru
Л2.3 Седжвик Р. Алгоритмы на С++: Учебник Национальный Открытый Университет <ИНТУИТ>, 2016 // ЭБС "Университетская библиотека online" biblioclub.ru
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Технологии и методы программирования portal.edu.asu.ru
6.3. Перечень программного обеспечения
Windows 7 Professional, № 47774570 от 03.12.2010 (бессрочная);
Office 2010 Standart, № 61823557 от 22.04.2013 (бессрочная);
Open Office, http://www.openoffice.org/license.html
Visual Studio, https://code.visualstudio.com/license
Python c расширениями PIL, Py OpenGL, https://docs.python.org/3/license.html
FAR, http://www.farmanager.com/license.php?l=ru
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
Chrome; http://www.chromium.org/chromium-os/licenses
Eclipse (PHP,C++, Phortran), http://www.eclipse.org/legal/eplfaq.php
DjVu reader, http://djvureader.org/
MingGW, http://mingw.org/license

Microsoft 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. Научная электронная библиотека elibrary (http://elibrary.ru

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

Аудитория Назначение Оборудование
106Л помещение для хранения и профилактического обслуживания учебного оборудования Стеллажи – 3 шт. осциллограф, паяльная станция, источник тока, переносные ноутбуки
419К лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации; Учебная мебель на 17 посадочных мест; рабочее место преподавателя; доска маркерная - 1 шт.; компьютеры: NAIO Corp Z520, НЭТА - 4 in - 13 ед.
417К лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 12 посадочных мест; рабочее место преподавателя; доска маркерная - 1 шт.; шкаф с учебно-наглядными пособиями - 1 шт.; компьютеры: марка Клама С Офис – 12; проектор, экран с мультимедиа Smart - 1 ед.; учебно-наглядные пособия.
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска, мультимедийное оборудование стационарное или переносное)

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

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