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

Программирование
рабочая программа дисциплины

Закреплена за кафедройКафедра радиофизики и теоретической физики
Направление подготовки03.03.02. Физика
Форма обученияОчная
Общая трудоемкость6 ЗЕТ
Учебный план03_03_02_Ф-2-2020
Часов по учебному плану 216
в том числе:
аудиторные занятия 84
самостоятельная работа 105
контроль 27
Виды контроля по семестрам
экзамены: 1

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

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

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

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

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

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 03.03.02 ФИЗИКА (уровень бакалавриата) (приказ Минобрнауки России от 07.08.2014г. №937)

составлена на основании учебного плана:
03.03.02 Физика
утвержденного учёным советом вуза от 30.06.2020 протокол № 6.

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

Протокол от 06.06.2019 г. № 9/2018-19
Срок действия программы: 2019-2020 уч. г.

Заведующий кафедрой
д.ф.-м.н., профессор А. А. Лагутин

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

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

Кафедра радиофизики и теоретической физики

Протокол от 06.06.2019 г. № 9/2018-19
Заведующий кафедрой д.ф.-м.н., профессор А. А. Лагутин

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

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

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

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

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

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

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Введение
1.1. Обзор языков программирования. Язык Фортран. Алфавит языка. Переменные. Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
1.2. Алфавит языка. Переменные. Сам. работа 1 20 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 2. Типы данных. Арифметические выражения
2.1. Операторы описания. Встроенные типы данных. Стандартные алгоритмы. Приоритет операций Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
2.2. Операторы описания. Встроенные типы данных. Стандартные алгоритмы. Приоритет операций Сам. работа 1 20 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
2.3. Линейные алгоритмы Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 3. Условные операторы
3.1. Ветвление. Условный оператор IF. Оператор множественного выбора SELECT CASE. Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л2.1
3.2. Условный оператор IF Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л3.1, Л1.2, Л2.1
3.3. Оператор множественного выбора SELECT CASE. Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
3.4. Условный оператор IF. Оператор множественного выбора Сам. работа 1 10 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 4. Циклы
4.1. Цикл со счетчиком. Цикл с предусловием. Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
4.2. Цикл со счетчиком. Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
4.3. Цикл с предусловием. Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
4.4. Цикл со счетчиком. Цикл с предусловием. Сам. работа 1 16 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 5. Массивы
5.1. Понятие массива. Описание массивов. Динамические массивы. Использование циклов и массивов. Лекции 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
5.2. Массивы Лабораторные 1 20 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
5.3. Понятие массива. Описание массивов. Динамические массивы. Использование циклов и массивов. Сам. работа 1 20 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 6. Встроенные функции
6.1. Встроенные математические функции. Встроенные текстовые функции. Встроенные функции для обработки массивов. Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
6.2. Встроенные математические функции. Встроенные текстовые функции. Встроенные функции для обработки массивов. Сам. работа 1 9 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 7. Ввод-вывод данных
7.1. Ввод-вывод данных Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
7.2. Операторы ввода-вывода. Атрибуты ввода-вывода. Сам. работа 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
7.3. Операторы ввода-вывода. Атрибуты ввода-вывода. Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 8. Программные компоненты
8.1. Функции. Подпрограммы. Модули Лекции 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
8.2. Функции Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
8.3. Подпрограммы Лабораторные 1 4 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
8.4. Функции. Подпрограммы. Модули Сам. работа 1 2 ОПК-4 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 9. Метки. Операторы перехода
9.1. Метки. Операторы перехода. Указатели. Ссылки. Данные произвольного типа. Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
9.2. Метки. Операторы перехода. Указатели. Ссылки. Данные произвольного типа. Сам. работа 1 2 ОПК-4 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 10. Математическая библиотека SLATEC
10.1. Математическая библиотека SLATEC/ Решение систем линейных алгебраических уравнений. Задачи оптимизации. Численное интегрирование. Лекции 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
10.2. Математическая библиотека SLATEC/ Решение систем линейных алгебраических уравнений. Задачи оптимизации. Численное интегрирование. Сам. работа 1 2 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 11. Графика
11.1. Графическая библиотека PGPLOT Лекции 1 2 ОПК-4 Л1.1, Л3.1, Л1.2, Л2.1
11.2. Графическая библиотека PGPLOT Лабораторные 1 6 ОПК-4 Л1.1, Л3.1, Л1.2, Л2.1
11.3. Графическая библиотека PGPLOT Сам. работа 1 2 ОПК-4 Л1.1, Л3.1, Л1.2, Л2.1
Раздел 12. Контроль
12.1. Выполнение экзаменационных заданий по курсу Экзамен 1 27 ОПК-4, ОПК-5, ПК-2 Л1.1, Л3.1, Л1.2, Л2.1

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

5.1. Контрольные вопросы и задания
Промежуточная аттестация подразумевает сдачу лабораторных работ по темам: линейные алгоритмы, условный оператор IF, оператор множественного выбора SELECT CASE, цикл со счетчиком, цикл с предусловием, массивы, ввод-вывод данных, функции, подпрограммы, графический вывод.
Типовые задачи.
1. Треугольник задается координатами своих вершин на плоскости A(x1,y1), B(x2,y2), C(x3,y3). Написать и отладить программу выполняющую вычисление площади треугольника.
2. С клавиатуры вводятся вещественные числа a, b, c. Написать и отладить программу для определения того, являются ли эти числа сторонами треугольника и, если да, определить его тип: тупоугольный, прямоугольный, остроугольный, равносторонний, равнобедренный. Напишите условие проверки экстремальных случаев, когда одна или несколько сторон равны нулю, либо когда одно из неравенств переходит в равенство (треугольник нулевой площади). Вывести результат работы программы (тип треугольника) на экран.
3. Написать и отладить программу-тест, состоящую из пяти вопросов с четырьмя возможными вариантами ответов к каждому вопросу (вопросы и варианты ответов придумать самостоятельно). Пользователь вводит номер ответа на каждый вопрос. За каждый правильный ответ пользователь получает по одному баллу. После прохождения теста на экран выводится суммарный балл пользователя. Предусмотреть возможность ввода несуществующего варианта ответа.
4. С клавиатуры вводится вещественное число V. Написать и отладить программу вывода на экран таблицы соответствия объема нефти от 1 до V в кубических метрах с объемом в баррелях США, в британских галлонах, в жидкостных британских унциях. Результат вывести на экран с шагом 0.5 м3 в четыре столбца (первый столбец - объем в кубометрах, второй - в баррелях США, третий - в британских галлонах, четвертый - в жидкостных британских унциях).
5. Написать и отладить программу поиска суммы всех чисел, вводимых с клавиатуры, предшествующих первому введенному нулю.
6. Дан двумерный вещественный массив A размерностью 10 × 10 заполненный «крестиками» (единицами) и «ноликами» (нули). Проверить не закончена ли игра выигрышем «крестиков»? Считается, что «крестики» выиграли, если на поле найдется по горизонтали, вертикали или диагонали цепочка, состоящая из пяти «крестиков» подряд.
7. Модифицируйте исходные коды программ, созданных вами при выполнении практических заданий 1–6 так, чтобы все операции ввода данных с клавиатуры и вывода данных на экран были заменены, соответственно, операциями чтения входных данных из файла и записи результата работы программы в выходной файл. Входной файл должен называться lab-NN-task-TT.in (in от англ. input — ввод), а выходной файл — lab-NN-task-TT.out (out от англ. output — вывод), где NN — номер практического задания (01, 02 и т. д.), а TT — номер варианта (01, 02 и т. д.).
8. Даны два натуральных числа больше 1000000 (вводятся из файла). Определить, в каком из них сумма цифр больше. Для решения этой задачи следует определить функцию для расчета суммы цифр натурального числа.
9. Квадратное уравнение задается тремя своими коэффициентами. Найти решения этого уравнения или сообщить, что уравнение не имеет решений. Для решения этой задачи следует определить процедуру вычисления дискриминанта и корней уравнения. Корни уравнения (если они существуют) возвращаются в виде массива.
5.2. Темы письменных работ (эссе, рефераты, курсовые работы и др.)
5.3. Фонд оценочных средств
См. приложение.
Приложения
Приложение 1.   ФОС Программирование.docx

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 А. Маркус Современный Fortran на практике: учебник ДМК Пресс, 2015 // ЭБС "Лань", 2016 http://e.lanbook.com/book/73073
Л1.2 И.В. Черпаков Основы программирования: учебник и практикум для прикладного бакалавриата Юрайт, 2018 // ЭБС Юрайт https://www.biblio-online.ru/book/7C1774D9-F5B5-4B45-85E1-BDE450DCC3E2
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Е.Д. Агафонов, Г.В. Ващенко Прикладное программирование: учебное пособие Красноярск: Сибирский федеральный университет, 2015 // ЭБС "Университетская библиотека Online" http://biblioclub.ru/index.php?page=book&id=435640
6.1.3. Дополнительные источники
Авторы Заглавие Издательство, год Эл. адрес
Л3.1 Н.В. Волков Программирование: учебное пособие Изд-во АлтГУ, 2014 // ЭБС АлтГУ, 2016 http://elibrary.asu.ru/xmlui/handle/asu/1081
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Электронная библиотечная система Алтайского государственного университета http://elibrary.asu.ru
Э2 Электронно-библиотечная система издательства «Лань» https://e.lanbook.com/
Э3 Электронно-библиотечная система «Университетская библиотека онлайн» http://biblioclub.ru/
Э4 Национальный Открытый Университет «ИНТУИТ» http://www.intuit.ru/
Э5 Курс на Едином образовательном портале АлтГУ https://portal.edu.asu.ru/course/view.php?id=102
6.3. Перечень программного обеспечения
Windows 7 Professional, № 60674416 от 17.07.2012 (бессрочная);
Office 2010 Professional, № 49464762 от 14.12.2011 (бессрочная);
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/
Lazarus, http://wiki.lazarus.freepascal.org/Lazarus_Faq#Licensing
Putty, https://putty.org.ru/licence.html
QTEPLOT, http://www.qtiplot.com/doc/manual-en/index.html
NETBEANS, https://netbeans.org/about/legal/index.html
R STUDIO (open source), http://www.rstudio.com/
MingGW, http://mingw.org/license
Scilab, http://www.scilab.org/en/scilab/license
6.4. Перечень информационных справочных систем
При выполнении лабораторных работ преимущество отдается изучению возможностей свободного программного обеспечения: gfortran - компилятор языка программирования Fortran (Лицензия: Стандартная общественная лицензия GNU (GENERAL PUBLIC LICENSE) https://www.gnu.org/licenses/gpl-3.0.ru.html), gcc - компилятор языков программирования C, C++ (Лицензия: Стандартная общественная лицензия GNU (GENERAL PUBLIC LICENSE) https://www.gnu.org/licenses/gpl-3.0.ru.html), FreePascal - компилятор языка программирования Pascal (Лицензия: Стандартная общественная лицензия GNU (GENERAL PUBLIC LICENSE) https://www.gnu.org/licenses/gpl-3.0.ru.html), Geany — среда разработки (Лицензия: Стандартная общественная лицензия GNU (GENERAL PUBLIC LICENSE) https://www.gnu.org/licenses/gpl-3.0.ru.html). Часть изучаемого программного обеспечения доступна в дисплейных классах факультета (Windows-аналоги программ), другая часть размещена на кафедральном сервере 10.0.10.60 под управлением системы GNU/Linux в модификации Ubuntu (Лицензия: Стандартная общественная лицензия GNU (GENERAL PUBLIC LICENSE) https://www.gnu.org/licenses/gpl-3.0.ru.html), доступ студентов к которому обеспечивается по сетевым протоколам SSH и HTTP.

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
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
Помещение для самостоятельной работы помещение для самостоятельной работы обучающихся Компьютеры, ноутбуки с подключением к информационно-телекоммуникационной сети «Интернет», доступом в электронную информационно-образовательную среду АлтГУ
308К лаборатория компьютерных технологий - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 15 посадочных мест; рабочее место преподавателя; доска маркерная; компьютеры Aquarius STd MS_SC140, монитор BENQ 17'' (5шт.), компьютеры Парус 945 MSI, монитор LG 17'' (5 шт.) Fast Ethernet Swich Allied Telesyn 1; методические рекомендации по выполнению лабораторных работ по курсам "Алгоритмы и языки программирования", "Численные методы и математическое моделирование", "Вычислительная физика", "Компьютерная радиофизика".

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

При выполнении лабораторных работ по каждой из тем рекомендуется разобрать примеры программ, демонстрировавшихся на лекции, откомпилировать и запустить их. Все лекционные материалы и практические задания расположены на Едином образовательном портале Алтайского госудаственного университета по адресу http://portal.edu.asu.ru/course/view.php?id=102 (для доступа к материалам необходима регистрация в домене STUD или MC). Часть лекционных материалов опубликована в учебном пособии «Программирование», размещенном в ЭБС Алтайского госуниверситета по ссылке http://elibrary.asu.ru/handle/asu/1081
При условии успешного выполнения всех практических заданий студент допускается к сдаче экзамена.
Продолжительность экзамена - 3 часа 00 минут. Экзаменационный билет состоит из двух разделов по две задачи в каждом разделе. Для получения оценки «удовлетворительно» достаточно для любой задачи написать интерфейс, позволяющий открыть файл с данными, прочитать их и сохранить в виде массивов. Для получения оценки «хорошо» достаточно решить одну задачу из любого раздела. Оценка «отлично» ставится за решение двух задач: любая задача из первого раздела и любая из второго.