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

Языки программирования

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

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

Курс (семестр) 1 (2) Итого
Недель 19
Вид занятий УПРПДУПРПД
Лекции 24 24 24 24
Лабораторные 32 32 32 32
Сам. работа 61 61 61 61
Часы на контроль 27 27 27 27
Итого 144 144 144 144

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

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

Рабочая программа дисциплины
Языки программирования

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 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.анализа структуры и содержания процессов в информационных системах для их эффективного использования при разработке программ на языках высокого уровня
написания и отладки программ, реализующих алгоритмы сортировки, поиска
получения теоретических оценок сложности работы алгоритма

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Введение. Типы данных, операторы и управляющие конструкции
1.1. Введение. Структура программы на языке C++. Пространства имен Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
1.2. Базовые типы данных языка C++ Лекции 2 2 ОПК-7 Л1.2, Л2.1
1.3. Операторы языка C++ Лекции 2 2 ОПК-7 Л1.2, Л2.1
1.4. Переменные и управляющие конструкции Лекции 2 2 ОПК-7 Л1.2, Л2.1
1.5. Управляющие конструкции. Множественное ветвление. Цикл for Лекции 2 2 ОПК-7 Л1.1, Л2.1
1.6. Основы консольного ввода-вывода. Переменные в языке C++ Лабораторные 2 2 ОПК-7 Л1.2, Л2.1
1.7. Управляющие конструкции. Условный оператор Лабораторные 2 2 ОПК-7 Л1.2, Л2.1
1.8. Управляющие конструкции. Оператор цикла с параметром Лабораторные 2 2 ОПК-7 Л1.2, Л2.1
1.9. Управляющие конструкции. Оператор цикла с (пред-, пост-) условием Лабораторные 2 2 ОПК-7 Л1.2, Л2.1
1.10. Введение. Структура программы на языке C++. Пространства имен. Базовые типы данных языка C++. Операторы языка C++. Переменные и управляющие конструкции. Управляющие конструкции. Множественное ветвление. Цикл for Сам. работа 2 20 ОПК-7 Л1.1, Л1.2, Л2.1
Раздел 2. Массивы и управление памятью
2.1. Массивы в языке С++ Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.2. Указатели и арифметика указателей Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.3. Управление памятью в C++ Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.4. Динамическое управление памятью Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.5. Сочетание цикла и вложенного условного оператора Лабораторные 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.6. Массивы в языке C++ Лабораторные 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.7. Работа с текстовыми строками Лабораторные 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.8. Вложенные циклы. Работа с таблицами и матрицами Лабораторные 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
2.9. Массивы в языке С++. Указатели и арифметика указателей. Управление памятью в C++. Динамическое управление памятью Сам. работа 2 20 ОПК-7 Л1.1, Л1.2, Л2.1
Раздел 3. Функции и основы обобщенного программирования
3.1. Объявление функций в языке C++ Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
3.2. Рекурсия Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
3.3. Шаблонные функции и обобщенное программирование. Лекции 2 2 ОПК-7 Л1.1, Л1.2, Л2.1
3.4. Структуры данных Лабораторные 2 8 ОПК-7 Л1.1, Л1.2, Л2.1
3.5. Файловый ввод-вывод Лабораторные 2 8 ОПК-7 Л1.1, Л1.2, Л2.1
3.6. Объявление функций в языке C++. Рекурсия. Шаблонные функции и обобщенное программирование. Управление сборкой проекта Сам. работа 2 21 ОПК-7 Л1.2, Л2.1
Раздел 4. Экзамен
4.1. Экзамен 2 27 ОПК-7 Л1.1, Л1.2, Л2.1

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

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

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

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

Вопрос 1. Выберите способы записи алгоритма.
А. словесная запись
Б. псевдокод
В. диаграммная запись
Г. программная запись
Д. графическая запись
Е. аналитическая запись
Ответ: А, Б, Г, Д

Вопрос 2. Что такое линейный алгоритм?
А. это алгоритм, в котором действия выполняются однократно и строго последовательно
Б. это алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий
В. это алгоритм, команды которого повторяются какое-то количество раз подряд
Г. это алгоритм, в котором вычисляются только линейные функции
Ответ: А

Вопрос 3. Выберите словесные записи, относящиеся к циклическому алгоритму
А. если имеется две ручки, то одну ручку отдать соседу по парте
Б. приравнять переменную к 5, уменьшить на 2 до тех пор, пока переменная больше -10
В. сходить за продуктами, убраться, сделать уроки
Г. вычислить интеграл, выполнить проверку
Д. пока точность расчетов не будет достигнута, повторять вычисления
Ответ: Б, Д

Вопрос 4. Что означает графическая запись алгоритма?
А. тексты на языках программирования
Б полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.
В. блок-схема
Г. запись на естественном языке
Ответ: В

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

Вопрос 6. Какие стандартные типы данных определены в языке программирования С++?
А. int, double,char,float
Б. int, double,char,real
В. integer, double,char,float
Г. int, char,float,boolean
Ответ: А

Вопрос 7. Что такое библиотека?
А. библиотека – это файл с описанием функций и операторов
Б. библиотека – это файл с описанием основных псевдокодов
В. библиотека – это файл, содержащий информацию о работе приложений, справку
Г. библиотека – это набор файлов, хранящихся в алфавитном порядке
Ответ: А

Вопрос 8. В каком варианте правильно произведены объявление и инициализация переменной в языке программирования С++?
А. double m; x=4;
Б. double m; initialize m;
В. int i; i=9;
Г. char a; a=8.43;
Д. int m(initialize);
Ответ: В

Вопрос 9. Какому алгоритму соответствует запись в языке программирования С++?
if(x > 10) {
// действия
}
else {
// иные действия
}
А. разветвляющийся
Б. циклический
В. линейный
Г. действительный
Ответ: А

Вопрос 10. Выберите описание для данного цикла:

for(x = -1; x < 5.5; x += 0.3) {
// действия
}
А. цикл с предусловием, переменная цикла х меняется от 0,3 до 5,5 с шагом 1
Б. цикл с постусловием, переменная цикла х меняется от -1 до 0,3 с шагом 5,5
В. цикл с предусловием, переменная цикла х меняется от -1 до 5,5 с шагом 0,3
Г. цикл организован неверно, код содержит ошибки
Ответ: В

Вопрос 11. Выберите верные высказывания:
А. массив – это набор одномерных параметров
Б. индексом массива может быть только целое число
В. сначала нужно объявить массив, потом проинициализировать
Г. у статического массива всегда только один индекс i
Д. в одной программе можно объявить сразу два двумерных массива
Ответ: Б, В, Д

Вопрос 12. Выберите верные высказывания относительно строки программы:
doudle v[6]={1, 2.0, -1.3, 7.6, 2.3, -1.8};
А. задан одномерный динамический массив
Б. v[2] равно -1.3
В. массив v является вещественным
Г. данная строка инициализирует, но не объявляет массив
Д. в строке присутствует синтаксическая ошибка
Ответ: Б, В

Вопрос 13. С помощью чего программа на языке С++ может взаимодействовать с файлами?
А. с помощью переменной типа файловый поток fstream
Б. с помощью переменной типа файл files
В. с помощью функции contact("1.txt");
Г. с помощью функции contain("1.txt");
Ответ: А

Вопрос 14. Что представляет собой пользовательская функция?
А. это функция, создаваемая программистом для удобства при написании кода программы
Б. это функция из библиотеки <user.h>
В. это математическая функция, значение которой нужно вычислить в программе
Г. это специальный вид массива, задаваемый программистом
Д. это специальный вид типа данных, задаваемый программистом
Ответ: А

Вопрос 15. Каково назначение данной пользовательской функции?
double func(double a, double b) {
double res;
if(a >= b) res = a;
else res = b;
return res;
}
А. для определения большего из двух вещественных чисел
Б. для определения меньшего из двух вещественных чисел
В. для случайного выбора одного из двух вещественных чисел
Г. для нахождения суммы двух вещественных чисел
Д. код не верен
Ответ: А

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

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

Вопрос 1. Какие парадигмы программирования поддерживает язык C++?
Ответ: процедурное, объектно-ориентированное, элементы функционального

Вопрос 2. Перечислите все основные целочисленные типы языка С++
Ответ: char, short, int, long, long long, их signed и unsigned версии

Вопрос 3. Что будет результатом выражения 4/3 (4 разделить на три), какой тип будет у результата?
Ответ: 1, целочисленного типа, так как оба аргумента имеют целочисленный тип и будет применяться операция деления нацело

Вопрос 4. Для чего применяется ключевое слово auto?
Ответ: оно означает, что тип выражения, для которого оно указано должен быть вычислен компилятором самостоятельно (автоматически). Например, в выражении
auto m {1};
переменная m будет иметь тип int.

Вопрос 5. Что значит ассоциативность оператора?
Ответ: порядок вычисления (слева-направо или справа-налево) последовательности опреаций в случае отсутствия скобок в выражении с данным оператором, например 1 + 2 + 3 = (1 + 2) + 3, операция + является левоассоциативной, однако a = b = c эквивалентно a = (b = c), то есть операция присвоения правоассоциативна

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

Вопрос 7. В чем отличие операций & и &&?
Ответ: первая является оператором побитового «И», вторая – логическим оператором-связкой «И», используемой при создании сложных условий

Вопрос 8. Какова область видимости автоматической переменной?
Ответ: Автоматическая переменная, объявленная внутри блока кода {} является видимой внутри него, объявленная как аргумент функции – внутри тела функции.

Вопрос 9. Как проверить принадлежность числа x заданному интервалу значений (от 10 включительно, до 20 не включая)?
Ответ: условие проверки будет иметь вид 10 <= x and x < 20 (допустим вариант x >= 10 and x < 20)

Вопрос 10. Запишите в виде условного оператора ?: следующую последовательность действий: если переменная a является четным числом, то переменная b равняется a/2, иначе переменная b равна 2 * a + 1.
Ответ: b = a % 2 == 0 ? a / 2 : 2 * a + 1;

Вопрос 11. Вася пытается обратиться к ячейке массива A следующим образом: *(A+5). Как можно это сделать с помощью операции []?
Ответ: A + 5 осуществляет сдвиг адреса с начала массива на позицию пятого элемента, * делает разыменование значения по этому адресу. Поэтому эквивалентным выражением будет A[5].

Вопрос 12. Напишите фрагмент кода с циклом for, осуществляющий суммирование элементов ряда 1, 3, 5,…, 19.
Ответ:
int summa {0};
for (int x = 1; x <= 19; x += 2) {
summa += x;
}
Вопрос 13. Зачем нужен оператор continue?
Ответ: для досрочного выхода из данной итерации цикла и перехода к следующей итерации при наличии таковой

Вопрос 14.Как нужно объявить функцию foo() с одним аргументом x типа double, не возвращающую никакого значения, если требуется передать аргумент по константной ссылке?
Ответ: объявление будет иметь вид:
void foo(const double &x);

Вопрос 15. Какие основные проблемы могут возникать при «ручном» выделении-освобождении динамической памяти?
Ответ: возможны несколько проблем – несовпадение вызовов выделения/освобождения, когда пытаются освободить уже освобожденную память, освободить память из под одного объекта с помощью операции освобождения массива, также возможна фрагментация динамической памяти и утечка динамической памяти

Вопрос 16. Какой тип данных соответствует «умному» указателю на разделяемую память?
Ответ: std::shared_ptr<тип_данных>

Вопрос 17. _ является основой для построения целого семейства функций с одинаковым именем, но, возможно, разными типами аргументов/возвращаемых значений
Ответ: шаблон функции

Вопрос 18. С помощью директивы препроцессора #define мы можем определить _
Ответ: идентификатор / или макроподстановку

Вопрос 19. Где будет осуществляться поиск файла abc.h при использовании директивы #include “abc.h”?
Ответ: сначала в текущей локальной директории проекта, затем в директориях, содержащих стандартные заголовки

Вопрос 20. Что означает строка?
using namespace vasya;
Ответ: будет доступны все имена переменных и функций, объявленные в пространстве имен vasya, причем обращение к ним можно будет осуществить в сокращенной форме (без указания названия пространства имен), то есть будет работать не только вызов vasya::foo(), но и foo()

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

ВОПРОСЫ ТЕОРЕТИЧЕСКОГО ХАРАКТЕРА:
1. Поколения ЯП. Классификация ЯП. Парадигмы программирования.
2. Нотация в форме BNF и ее расширения.
3. Простые типы (целочисленный, вещественный, перечисляемый, пустой — void, символьный).
4. Переменные. Области видимости переменных
5. Операции и операнды. Унарные, бинарные, префиксные, постфиксные и инфиксные операции.
6. Операции и операнды. Приоритет. Ассоциативность (лево- и право-). Основные операции в С. Неявное приведение типов.
7. Функции. Объявление и определение.
8. Массив как набор однотипных данных. Определение. Обращение к отдельным элементам.
9. Память. Размещение переменных в памяти. Адреса, указатели. Получение адреса (&) и разыменование (*).
10. Операции над указателями (арифметика, сравнение). Нетипизированные указатели.
11. Указатели и многомерные массивы.
12. Основные ошибки при выделении памяти: неинициализированные указатели, висячие ссылки, утечки памяти.
13. Рекурсия. Примеры.
14. Хвостовая рекурсия. Связь с обычными циклами.
15. Предобработка (препроцессинг) исходных текстов. Основные этапы.
16. Определение структур, теги и имена, даваемые typedef. Инициализация, доступ к элементам. Указатели и доступ к полям через указатель.
17. Объединения и перечисления. Особенности расположения в памяти и инициализации.

ВОПРОСЫ ПРАКТИКО-ОРИЕНТИРОВАННОГО ХАРАКТЕРА
1. Простейшая программа на языке С. Структура программы. Комментарии.
2. Определение именованных констант. Определение типов (typedef).
3. Условный оператор. Составная инструкция.
4. Операторы циклов (for, do...while, while). Инструкции преждевременного выхода и перехода к следующему циклу.
5. Инструкция возврата из функции. Инструкция выбора.
6. Многомерные массивы. Автоопределение внешней размерности.
7. Строки как массивы типа char. Символы как их коды. Символы конца строки в разных ОС.
8. Расположение элементов массива в памяти. Имя массива как адрес первого элемента. Операция [].
9. Статическое и динамическое выделение памяти. Динамические массивы. Функции malloc, calloc, realloc, free.
10. Три способа создания многомерных динамических массивов.
11. Директивы #include, #define, #undef. Макроподстановки с параметрами.
12. Условное включение текста (#ifdef, #ifndef, #if, #elif, #else, #endif). Вспомогательные директивы: #pragma, #line, #error.
13. Функции для консольного ввода-вывода.
14. Файлы как абстракции, связь потоков с файлами (fopen, freopen, fclose). Разница между текстовыми и бинарными файлами.
15. Функции для работы с файлами.

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

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Царев Р. Ю. Программирование на языке Си: Учебники и учебные пособия для ВУЗов Сибирский федеральный университет, 2014 // ЭБС Университетская библиотека Online biblioclub.ru
Л1.2 Трофимов В.В. - отв. ред. Алгоритмизация и программирование: Учебник для академического бакалавриата М.: Издательство Юрайт, 2018 // ЭБС "Юрайт" www.biblio-online.ru
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Гниденко И. Г., Павлов Ф. Ф., Федоров Д. Ю. Технология разработки программного обеспечения: Учебное пособие Юрайт, 2018 // ЭБС "Юрайт" urait.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. Материально-техническое обеспечение дисциплины

Аудитория Назначение Оборудование
001вК склад экспериментальной мастерской - помещение для хранения и профилактического обслуживания учебного оборудования Акустический прибор 01021; виброизмеритель 00032; вольтметр Q1202 Э-500; вольтметр универсальный В7-34А; камера ВФУ -1; компьютер Турбо 86М; масспектрометр МРС -1; осциллограф ЕО -213- 2 ед.; осциллограф С1-91; осциллограф С7-19; программатор С-815; самописец 02060 – 2 ед.; стабилизатор 3218; терц-октавный фильтр 01023; шкаф вытяжной; шумомер 00026; анализатор АС-817; блок 23 Г-51; блок питания "Статрон" – 2 ед.; блок питания Ф 5075; вакуумный агрегат; весы; вольтметр VM -70; вольтметр В7-15; вольтметр В7-16; вольтметр ВУ-15; генератор Г-5-6А; генератор Г4-76А; генератор Г4-79; генератор Г5-48; датчик колебаний КВ -11/01; датчик колебаний КР -45/01; делитель Ф5093; измеритель ИМП -2; измеритель параметров Л2-12; интерферометр ИТ 51-30; источник "Агат" – 3 ед.; источник питания; источник питания 3222; источник питания ЭСВ -4; лабораторная установка для настройки газовых лазеров; лазер ЛГИ -21; М-кальк-р МК-44; М-калькул-р "Электроника"; магазин сопротивления Р4075; магазин сопротивления Р4077; микроскоп МБС -9; модулятор МДЕ; монохроматор СДМС -97; мост переменного тока Р5066; набор цветных стекол; насос вакумный; насос вакуумный ВН-01; осциллограф С1-31; осциллограф С1-67; осциллограф С1-70; осциллограф С1-81; осциллоскоп ЕО -174В – 2 ед.; пентакта L-100; пирометр "Промень"; пистонфон 05001; преобразователь В9-1; прибор УЗДН -2Т; скамья оптическая СО 1м; спектограф ДФС -452; спектограф ИСП -51; стабилизатор 1202; стабилизатор 3217 – 4 ед.; стабилизатор 3218; стабилизатор 3222 – 3 ед.; станок токарный ТВ-4; усилитель мощности ЛВ -103 – 4 ед.; усилитель У5-9; центрифуга ВЛ-15; частотомер Ч3-54А; шкаф металлический; эл.двигатель; электродинамический калибратор 11032
417К лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 12 посадочных мест; рабочее место преподавателя; доска маркерная - 1 шт.; шкаф с учебно-наглядными пособиями - 1 шт.; компьютеры: марка Клама С Офис – 12; проектор, экран с мультимедиа Smart - 1 ед.; учебно-наглядные пособия.
106Л помещение для хранения и профилактического обслуживания учебного оборудования Стеллажи – 3 шт. осциллограф, паяльная станция, источник тока, переносные ноутбуки
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
419К лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации; Учебная мебель на 17 посадочных мест; рабочее место преподавателя; доска маркерная - 1 шт.; компьютеры: NAIO Corp Z520, НЭТА - 4 in - 13 ед.
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска, мультимедийное оборудование стационарное или переносное)

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

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