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

Python для научных исследований и моделирования сложных систем

рабочая программа дисциплины
Закреплена за кафедройКафедра теоретической кибернетики и прикладной математики
Направление подготовки02.04.01. Математика и компьютерные науки
ПрофильАлгебра и дискретная математика
Форма обученияОчная
Общая трудоемкость4 ЗЕТ
Учебный план02_04_01_Математика и компьютерные науки_АиДМ-2023
Часов по учебному плану 144
в том числе:
аудиторные занятия 42
самостоятельная работа 102
Виды контроля по семестрам
зачеты: 2

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

Курс (семестр) 1 (2) Итого
Недель 22
Вид занятий УПРПДУПРПД
Лекции 16 16 16 16
Практические 26 26 26 26
Сам. работа 102 102 102 102
Итого 144 144 144 144

Программу составил(и):
Препод., Кротова О.С.

Рецензент(ы):
к.ф.-м.н., доцент, Пономарев И.В.

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

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

составлена на основании учебного плана:
02.04.01 Математика и компьютерные науки
утвержденного учёным советом вуза от 26.06.2023 протокол № 4.

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

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

Заведующий кафедрой
к.т.н., доцент Понькина Е.В.


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

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

Кафедра теоретической кибернетики и прикладной математики

Протокол от 29.06.2022 г. № 11
Заведующий кафедрой к.т.н., доцент Понькина Е.В.


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

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

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

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

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

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

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Объектно-ориентированное программирование
1.1. Объектно-ориентированный анализ. Объектно-ориентированное программирование. Основы программирования классов. Основные принципы ООП. Паттерны проектирования Лекции 2 2 Л1.1, Л2.2, Л1.2, Л2.1
1.2. Объектно-ориентированное программирование на Python Практические 2 2 Л1.1, Л2.2, Л1.2, Л2.1
1.3. Объектно-ориентированное программирование на Python Сам. работа 2 8 Л1.1, Л2.2, Л1.2, Л2.1
1.4. Паттерны проектирования Сам. работа 2 8 Л1.1, Л2.2, Л1.2, Л2.1
Раздел 2. Python для научных исследований
2.1. Работа с базами данных в Python (SQLite, MySQL, PostgreSQL) Лекции 2 2 Л1.1, Л2.2, Л1.2, Л2.1
2.2. Работа с базами данных в Python Практические 2 2 Л1.1, Л2.2, Л1.2, Л2.1
2.3. Работа с базами данных в Python Сам. работа 2 8 Л1.1, Л2.2, Л1.2, Л2.1
2.4. Работа с многомерными массивами в NumPy Практические 2 2 Л1.1, Л2.2, Л1.2, Л2.1
2.5. Работа с многомерными массивами в NumPy Сам. работа 2 10 Л1.1, Л2.2, Л1.2, Л2.1
2.6. Визуализация в Matplotlib. Научная графика Практические 2 2 Л1.1, Л2.2, Л1.2, Л2.1
2.7. Визуализация в Matplotlib. Научная графика Сам. работа 2 10 Л1.1, Л2.2, Л1.2, Л2.1
2.8. Возможности библиотеки SciPy Практические 2 2 Л1.1, Л2.2, Л1.2, Л2.1
2.9. Возможности библиотеки SciPy Сам. работа 2 8 Л1.1, Л2.2, Л1.2, Л2.1
Раздел 3. Моделирование сложных систем
3.1. Введение в моделирование сложных систем. Динамическое программирование Лекции 2 2 Л1.1, Л2.2, Л1.2, Л2.1
3.2. Динамическое программирование: решение сложных задач путем разбиения Практические 2 2 Л1.1, Л2.2, Л1.2, Л2.1
3.3. Динамическое программирование Сам. работа 2 10 Л1.1, Л2.2, Л1.2, Л2.1
3.4. Алгоритмы поиска и сортировки Лекции 2 2 Л1.1, Л2.2, Л1.2, Л2.1
3.5. Анализ последовательностей ДНК Практические 2 2 Л1.1, Л2.2, Л1.2, Л2.1
3.6. Алгоритмы поиска и сортировки Сам. работа 2 10 Л1.1, Л2.2, Л1.2, Л2.1
3.7. Графовые алгоритмы Лекции 2 4 Л1.1, Л2.2, Л1.2, Л2.1
3.8. Графовые алгоритмы: анализ социальных сетей Практические 2 4 Л1.1, Л2.2, Л1.2, Л2.1
3.9. Графовые алгоритмы Сам. работа 2 10 Л1.1, Л2.2, Л1.2, Л2.1
3.10. Задачи с ограничениями Лекции 2 2 Л1.1, Л2.2, Л1.2, Л2.1
3.11. Задачи с ограничениями: задача восьми ферзей Практические 2 4 Л1.1, Л2.2, Л1.2, Л2.1
3.12. Задачи с ограничениями Сам. работа 2 10 Л1.1, Л2.2, Л1.2, Л2.1
3.13. Генетические алгоритмы Лекции 2 2 Л1.1, Л2.2, Л1.2, Л2.1
3.14. Генетические алгоритмы: составление рабочего графика Практические 2 4 Л1.1, Л2.2, Л1.2, Л2.1
3.15. Генетические алгоритмы Сам. работа 2 10 Л1.1, Л2.2, Л1.2, Л2.1

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

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

ОЦЕНКА СФОРМИРОВАННОСТИ КОМПЕТЕНЦИИ ПК-3: Способен представлять и адаптировать математические знания и информационные технологий для решения собственных задач в области алгебры и дискретной математики.

ПРИМЕРЫ ЗАДАНИЙ ЗАКРЫТОГО ТИПА - ttps://disk.yandex.ru/i/uoF64AepsRz_-g

ПРИМЕРЫ ЗАДАНИЙ ОТКРЫТОГО ТИПА - https://disk.yandex.ru/i/dLQvh4p7d3VWVQ

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

Дезоксирибонуклеиновая кислота (ДНК) – макромолекула, обеспечивающая хранение, передачу из поколения в поколение и реализацию генетической программы развития и функционирования живых организмов. Молекула ДНК хранит биологическую информацию в виде генетического кода, состоящего из последовательности нуклеотидов.
В компьютерных программах гены обычно представляются в виде последовательности символов A, G, T, C, где каждая буква обозначает нуклеотид (аденин (A), гуанин (G), тимин (T) и цитозин (C), а комбинация трех нуклеотидов называется кодоном (единицей генетического кода).
Классическая задача биоинформатики – найти в гене определенный кодон.
Задание
1. Ген, как правило, представлен в виде строки, содержащей нуклеотиды (буквы A, G, T, C) в той последовательности, в которой они представлены в гене. Определите такую строку gene_str.
2. Определите строку key_codon, состоящую из трех нуклеотидов. Это и будет искомый кодон.
3. Определите функцию, которая берет каждые три символа строки gene_str и записывает их в список codon. Если функция обнаруживает, что два нуклеотида после текущего отсутствуют, то это означает, что достигнут конец строки и функция завершает свою работу.
4. Реализуйте функцию, осуществляющую линейный поиск, и возвращающую True, если key_codon найден.
5. Реализуйте функцию, осуществляющую бинарный поиск, и возвращающую True, если key_codon найден.

Критерии оценивания:
85-100 баллов (повышенный уровень): Задание решено студентом самостоятельно. При этом составлен правильный алгоритм решения задачи, в логических рассуждениях и в выборе алгоритма решения нет ошибок, получен верный ответ.
70-84 баллов (базовый уровень): Задание решено с подсказкой преподавателя. При этом составлен правильный алгоритм решения задания, в логическом рассуждении и решении нет существенных ошибок; задание решено нерациональным способом или допущено не более двух несущественных ошибок, получен верный ответ.
50-69 баллов (пороговый уровень): Студентом задание решено с подсказками преподавателя. При этом задание понято правильно, в логическом рассуждении нет существенных ошибок, но допущены существенные ошибки в выборе алгоритма или в математических расчетах; задание решено не полностью или в общем виде.
0-49 баллов (уровень не сформирован): Задание не решено.
Для того, чтобы задание было зачтено, студенту необходимо набрать более 50 баллов.

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Л. Рамальо Python. К вершинам мастерства: ДМК Пресс, 2016//ЭБС издательства «Лань» e.lanbook.com
Л1.2 Буйначев С. К., Боклаг Н. Ю. Основы программирования на языке Python: Учебники и учебные пособия для ВУЗов Издательство Уральского университета, 2014 biblioclub.ru
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Прохоренок Н., Дронов В. Python 3. Самое необходимое.: БХВ-Петербург, 2016 bhv.ru
Л2.2 Саммерфилд М. Python на практике: Учебные пособия Издательство "ДМК Пресс", 2014 e.lanbook.com
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Python для научных исследований и моделирования сложных систем portal.edu.asu.ru
6.3. Перечень программного обеспечения
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);
Дистрибутив Anaconda (бессрочно).
6.4. Перечень информационных справочных систем
1. Основы алгоритмизации и программирования на языке Python [Электронный ресурс]: https://portal.edu.asu.ru/course/view.php?id=3237
2. Издательство «Лань» - электронно-библиотечная система [Электронный
ресурс]: http://e.lanbook.com
3. Издательство МЦНМО. Свободно распространяемые книги издательства
Московского центра непрерывного математического образования
[Электронный ресурс]: www.mccme.ru/free-books
4. Электронная библиотечная система Алтайского государственного
университета [Электронный ресурс]: http://elibrary.asu.ru
5. Электронная база данных ZBMATH: https://zbmath.org/

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

Аудитория Назначение Оборудование
408Л лаборатория математического моделирования - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 15 посадочных мест; рабочее место преподавателя; доска меловая 1 шт.; компьютер Depo - 10 шт., 5 шт. с мониторами LG и 5 шт. с мониторами Philips; мультимедиа-проектор Sony - 1 шт.; МФУ Canon - 1 шт.; стационарный экран: марка Digis Optima C - 1 шт.
Учебная аудитория для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска)
107Л лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации Учебная мебель на 18 посадочных мест; компьютеры: марка HP, модель ProOne 400 - 18 единиц; проектор: марка SMART, модель UF70 - 1 единица; интерактивная доска: марка SMART Board модель SMB680 - 1 единица

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

Для успешного освоения дисциплины студент должен посещать лекции и практические занятия, вовремя выполнять все задания, пользоваться основной и дополнительной литературой, рекомендованной настоящей программой. Во время лекции рекомендуется вести краткий конспект.
Навыки моделирования и программирования на языке Python студент приобретает на практических занятиях. Для выполнения заданий каждому студенту необходимо:
- получить задание у преподавателя;
- скачать документ с описанием задания с образовательного портала (https://portal.edu.asu.ru/course/view.php?id=8703);
- внимательно прочитать задание. Вопросы, возникающие в процессе выполнения работ, необходимо грамотно сформулировать и обратиться за помощью к преподавателю на консультации или ближайшем занятии;
- разработать, отладить и оттестировать программы, решающие поставленные задачи.
Для каждого задания предусмотрена процедура защиты, в ходе которой преподаватель проводит устный опрос студентов для контроля понимания выполненных ими заданий.
При подготовке к зачету в дополнение к изучению конспектов лекций и учебной литературы, рекомендуется посещать консультации и пользоваться свободными Интернет-ресурсами.