| Закреплена за кафедрой | Кафедра теоретической кибернетики и прикладной математики |
|---|---|
| Направление подготовки | 02.04.01. Математика и компьютерные науки |
| Профиль | Алгебра и дискретная математика |
| Форма обучения | Очная |
| Общая трудоемкость | 4 ЗЕТ |
| Учебный план | 02_04_01_Математика и компьютерные науки_АиДМ-2024 |
|
|
||||||||||||
Распределение часов по семестрам
| Курс (семестр) | 1 (2) | Итого | ||
|---|---|---|---|---|
| Недель | 22 | |||
| Вид занятий | УП | РПД | УП | РПД |
| Лекции | 16 | 16 | 16 | 16 |
| Практические | 26 | 26 | 26 | 26 |
| Сам. работа | 102 | 102 | 102 | 102 |
| Итого | 144 | 144 | 144 | 144 |
| 1.1. | Цель освоения дисциплины – овладеть навыками математического моделирования и программирования на Python необходимыми для анализа поведения сложных систем, состоящих из множества взаимодействующих компонентов, в том числе природных и социальных систем. |
|---|
| Цикл (раздел) ООП: Б1.В.ДВ.01.01 |
| ПК-3 | Способен представлять и адаптировать математические знания и информационные технологий для решения собственных задач в области алгебры и дискретной математики. |
| ПК-3.1 | Умеет осуществлять теоретическое обобщение научных данных, результатов экспериментов и наблюдений. |
| ПК-3.2 | Владеет навыками оформления результатов научноисследовательских работ с использованием ИКТ. |
| В результате освоения дисциплины обучающийся должен | |
| 3.1. | Знать: |
|---|---|
| 3.1.1. | Язык программирования Python и его возможности для моделирования сложных систем и проведения научных исследований |
| 3.2. | Уметь: |
| 3.2.1. | Создавать математическое модели реальных процессов и сложных систем, моделировать взаимодействие систем на языке Python |
| 3.3. | Иметь навыки и (или) опыт деятельности (владеть): |
| 3.3.1. | Программированием на языке Python, инструментами библиотек языка для моделирования сложных систем и проведения научных исследований |
| Код занятия | Наименование разделов и тем | Вид занятия | Семестр | Часов | Компетенции | Литература |
|---|---|---|---|---|---|---|
| Раздел 1. Объектно-ориентированное программирование | ||||||
| 1.1. | Объектно-ориентированный анализ. Объектно-ориентированное программирование. Основы программирования классов. Основные принципы ООП. Паттерны проектирования | Лекции | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 1.2. | Объектно-ориентированное программирование на Python | Практические | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 1.3. | Объектно-ориентированное программирование на Python | Сам. работа | 2 | 8 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 1.4. | Паттерны проектирования | Сам. работа | 2 | 8 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| Раздел 2. Python для научных исследований | ||||||
| 2.1. | Работа с базами данных в Python (SQLite, MySQL, PostgreSQL) | Лекции | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.2. | Работа с базами данных в Python | Практические | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.3. | Работа с базами данных в Python | Сам. работа | 2 | 8 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.4. | Работа с многомерными массивами в NumPy | Практические | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.5. | Работа с многомерными массивами в NumPy | Сам. работа | 2 | 10 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.6. | Визуализация в Matplotlib. Научная графика | Практические | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.7. | Визуализация в Matplotlib. Научная графика | Сам. работа | 2 | 10 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.8. | Возможности библиотеки SciPy | Практические | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 2.9. | Возможности библиотеки SciPy | Сам. работа | 2 | 8 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| Раздел 3. Моделирование сложных систем | ||||||
| 3.1. | Введение в моделирование сложных систем. Динамическое программирование | Лекции | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.2. | Динамическое программирование: решение сложных задач путем разбиения | Практические | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.3. | Динамическое программирование | Сам. работа | 2 | 10 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.4. | Алгоритмы поиска и сортировки | Лекции | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.5. | Анализ последовательностей ДНК | Практические | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.6. | Алгоритмы поиска и сортировки | Сам. работа | 2 | 10 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.7. | Графовые алгоритмы | Лекции | 2 | 4 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.8. | Графовые алгоритмы: анализ социальных сетей | Практические | 2 | 4 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.9. | Графовые алгоритмы | Сам. работа | 2 | 10 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.10. | Задачи с ограничениями | Лекции | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.11. | Задачи с ограничениями: задача восьми ферзей | Практические | 2 | 4 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.12. | Задачи с ограничениями | Сам. работа | 2 | 10 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.13. | Генетические алгоритмы | Лекции | 2 | 2 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.14. | Генетические алгоритмы: составление рабочего графика | Практические | 2 | 4 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 3.15. | Генетические алгоритмы | Сам. работа | 2 | 10 | Л1.1, Л2.1, Л1.2, Л2.2 | |
| 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.1. Рекомендуемая литература | ||||
| 6.1.1. Основная литература | ||||
| Авторы | Заглавие | Издательство, год | Эл. адрес | |
| Л1.1 | Л. Рамальо | Python. К вершинам мастерства: | ДМК Пресс, 2016//ЭБС издательства «Лань» | e.lanbook.com |
| Л1.2 | Буйначев С. К., Боклаг Н. Ю. | Основы программирования на языке Python: Учебники и учебные пособия для ВУЗов | Издательство Уральского университета, 2014 | biblioclub.ru |
| 6.1.2. Дополнительная литература | ||||
| Авторы | Заглавие | Издательство, год | Эл. адрес | |
| Л2.1 | Саммерфилд М. | Python на практике: Учебные пособия | Издательство "ДМК Пресс", 2014 | e.lanbook.com |
| Л2.2 | Прохоренок Н., Дронов В. | Python 3. Самое необходимое.: | БХВ-Петербург, 2016 | bhv.ru |
| 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/ | ||||
| Аудитория | Назначение | Оборудование |
|---|---|---|
| 107Л | лаборатория информационных технологий - компьютерный класс - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации | Учебная мебель на 18 посадочных мест; компьютеры: марка HP, модель ProOne 400 - 18 единиц; проектор: марка SMART, модель UF70 - 1 единица; интерактивная доска: марка SMART Board модель SMB680 - 1 единица |
| Учебная аудитория | для проведения занятий лекционного типа, занятий семинарского типа (лабораторных и(или) практических), групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации, курсового проектирования (выполнения курсовых работ), проведения практик | Стандартное оборудование (учебная мебель для обучающихся, рабочее место преподавателя, доска) |
| 408Л | лаборатория математического моделирования - учебная аудитория для проведения занятий семинарского типа (лабораторных и(или) практических); проведения групповых и индивидуальных консультаций, текущего контроля и промежуточной аттестации | Учебная мебель на 15 посадочных мест; рабочее место преподавателя; доска меловая 1 шт.; компьютер Depo - 10 шт., 5 шт. с мониторами LG и 5 шт. с мониторами Philips; мультимедиа-проектор Sony - 1 шт.; МФУ Canon - 1 шт.; стационарный экран: марка Digis Optima C - 1 шт. |
| Для успешного освоения дисциплины студент должен посещать лекции и практические занятия, вовремя выполнять все задания, пользоваться основной и дополнительной литературой, рекомендованной настоящей программой. Во время лекции рекомендуется вести краткий конспект. Навыки моделирования и программирования на языке Python студент приобретает на практических занятиях. Для выполнения заданий каждому студенту необходимо: - получить задание у преподавателя; - скачать документ с описанием задания с образовательного портала (https://portal.edu.asu.ru/course/view.php?id=8703); - внимательно прочитать задание. Вопросы, возникающие в процессе выполнения работ, необходимо грамотно сформулировать и обратиться за помощью к преподавателю на консультации или ближайшем занятии; - разработать, отладить и оттестировать программы, решающие поставленные задачи. Для каждого задания предусмотрена процедура защиты, в ходе которой преподаватель проводит устный опрос студентов для контроля понимания выполненных ими заданий. При подготовке к зачету в дополнение к изучению конспектов лекций и учебной литературы, рекомендуется посещать консультации и пользоваться свободными Интернет-ресурсами. |