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

Основы программирования на языке Python

рабочая программа дисциплины
Закреплена за кафедройКафедра теоретической кибернетики и прикладной математики
Направление подготовки01.03.02. Прикладная математика и информатика
ПрофильПрикладной анализ данных и компьютерное моделирование
Форма обученияОчная
Общая трудоемкость6 ЗЕТ
Учебный план01_03_02_Прикладная математика и информатика_ПАДиКМ-2022
Часов по учебному плану 216
в том числе:
аудиторные занятия 72
самостоятельная работа 144
Виды контроля по семестрам
зачеты: 4
курсовой проект: 4

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

Курс (семестр) 2 (4) Итого
Недель 23
Вид занятий УПРПДУПРПД
Лабораторные 72 72 72 72
Сам. работа 144 144 144 144
Итого 216 216 216 216

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

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

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

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

составлена на основании учебного плана:
01.03.02 Прикладная математика и информатика
утвержденного учёным советом вуза от 29.10.2021 протокол № 1/1.

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

Протокол от 26.06.2023 г. № 4
Срок действия программы: 20232024 уч. г.

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


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

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

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

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


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

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

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

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

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

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

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

Код занятия Наименование разделов и тем Вид занятия Семестр Часов Компетенции Литература
Раздел 1. Введение в Python
1.1. История создания. Области примерения и перспективы. Инструкции и структура программы. Лабораторные 4 2 Л2.3, Л1.3, Л1.1
1.2. Установка Python. Доступ к документации. Вввод и вывод данных. Первая программа на языке Python. Лабораторные 4 2 Л2.3, Л1.3, Л1.1
Раздел 2. Типы данных и операции
2.1. Переменные: именование переменных, присваивание значения переменным, удаление переменных. Операторы: математические операторы, двоичные операторы, приоритет выполнения операторов. Лабораторные 4 2 Л2.3, Л1.3, Л1.1
2.2. Переменные. Операторы. Сам. работа 4 14 Л2.1, Л2.3, Л1.3, Л1.1
2.3. Типы данных: числовые типы, строки, списки, кортежи, множества, диапазоны, словари. Операторы для работы с последовательностями и отображениями. Лабораторные 4 4 Л2.3, Л1.3, Л1.1
2.4. Типы данных. Базовые функции для работы с различными типами данных. Лабораторные 4 4 Л2.3, Л1.3, Л1.1
2.5. Типы данных. Сам. работа 4 14 Л2.1, Л2.3, Л1.3, Л1.1
Раздел 3. Инструкции и синтаксис
3.1. Простые и составные инструкции в Python. Условные операторы и циклы. Лабораторные 4 6 Л2.1, Л1.3, Л1.1
3.2. Условные операторы и циклы. Обработка исключений. Лабораторные 4 4 Л2.1, Л1.3, Л1.1
3.3. Условные операторы и циклы. Обработка исключений. Сам. работа 4 14 Л2.1, Л1.3, Л1.1
Раздел 4. Функции, модули и пакеты
4.1. Встроенные и пользовательские функции. Итераторы и функции-генераторы. Декораторы функций. Лабораторные 4 4 Л2.3, Л1.3, Л1.1
4.2. Функции. Создание пользовательских функций. Аргументы функций. Область видимости. Модули, импортирование модулей. Пакеты модулей. Лабораторные 4 4 Л2.3, Л1.3, Л1.1
4.3. Создание пользовательских функций. Сам. работа 4 14 Л2.1, Л2.3, Л1.3, Л1.1
4.4. Модули. Основы программирования модулей. Модули стандартной библиотеки. Лабораторные 4 2 Л2.3, Л1.3, Л1.1
4.5. Модули и пакеты модулей. Сам. работа 4 14 Л2.1, Л2.3, Л1.3, Л1.1
4.6. Работа с файлами. Модули для работы с файлами. Лабораторные 4 4 Л2.3, Л1.3, Л1.1
4.7. Работа с файлами. Модули для работы с файлами. Сам. работа 4 14 Л2.1, Л2.3, Л1.3, Л1.1
Раздел 5. Объектно-ориентированное программирование (ООП)
5.1. Объектно-ориентированное программирование. Основы программирования классов. Создание экземпляров класса. Конструктор и деструктор класса. Лабораторные 4 4 Л2.2, Л2.3, Л1.2, Л1.3
5.2. Объектно-ориентированное программирование. Основы программирования классов. Создание экземпляров класса. Конструктор и деструктор класса. Лабораторные 4 4 Л2.2, Л2.3, Л1.2, Л1.3
5.3. Объектно-ориентированное программирование. Основы программирования классов. Перегрузка операторов. Лабораторные 4 4 Л2.2, Л2.3, Л1.2, Л1.3
5.4. Объектно-ориентированное программирование. Основы программирования классов. Создание экземпляров класса. Конструктор и деструктор класса. Перегрузка операторов. Сам. работа 4 14 Л2.2, Л2.3, Л1.2, Л1.3
5.5. Объектно-ориентированное программирование. Наследование. Композиция. Дополнительные возможности классов: абстрактные методы, декораторы классов. Лабораторные 4 4 Л2.2, Л2.3, Л1.2, Л1.3
5.6. Объектно-ориентированное программирование. Наследование. Композиция. Лабораторные 4 4 Л2.2, Л2.3, Л1.3
5.7. Объектно-ориентированное программирование. Наследование. Композиция.Абстрактные методы классов. Декораторы классов. Сам. работа 4 14 Л2.2, Л2.3, Л1.3
Раздел 6. Графический интерфейс пользователя
6.1. Графический интерфейс пользователя (GUI). Событийно-ориентированное программирование. Инструменты для создания графического интерфейса пользователя: модуль стандартной библиотеки tkinter, фреймворк PyQt. Лабораторные 4 4 Л2.2, Л2.3, Л1.2, Л1.3
6.2. Модуль tkinter. Класс Tk. Основные виджеты, упаковщики. Привязка событий. Лабораторные 4 4 Л2.2, Л2.3, Л1.2
6.3. Модуль tkinter. Сам. работа 4 10 Л2.2, Л2.3, Л1.2
6.4. Разработка оконного приложения. Сам. работа 4 22 Л2.2, Л2.3, Л1.2
6.5. Расширенные возможности tkinter: модуль ttk. Разработка оконного приложения. Лабораторные 4 6 Л2.2, Л2.3, Л1.2

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

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

ОЦЕНКА СФОРМИРОВАННОСТИ КОМПЕТЕНЦИИ
ОПК-5: Способен разрабатывать алгоритмы и компьютерные программы, пригодные для практического применения

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

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

КРИТЕРИИ ОЦЕНИВАНИЯ: Каждое задание оценивается 1 баллом. Оценивание КИМ в целом: «отлично» – верно выполнено 85-100% заданий; «хорошо» – верно выполнено 70-84% заданий; «удовлетворительно» – верно выполнено 51-69% заданий; «неудовлетворительно» – верно выполнено 50% или менее 50% заданий.
5.2. Темы письменных работ для проведения текущего контроля (эссе, рефераты, курсовые работы и др.)
Перечень примерных тем курсовых проектов:
1) Создание оконного приложения "Заметки"
2) Создание одностраничного веб-сайта
3) Реализация алгоритмов сортировки
4) Создание Telegram-бота
5) Реализация алгоритма k-ближайших соседей
5.3. Фонд оценочных средств для проведения промежуточной аттестации
Промежуточная аттестация заключается в проведении в конце семестра зачета. На зачете каждому студенту необходимо решить три задания. Защита выполненных заданий обучающимися происходят в виде беседы преподавателя с обучающимся на темы, связанные с изучаемой дисциплиной, с демонстрацией разработанной компьютерной программы.
Примеры типовых задач:
1. Лиса Алиса и кот Базилио вырастили денежное дерево с трехрублевыми и пятирублевыми золотыми монетами. Лиса Алиса себе взяла трехрублевые монеты, а коту Базилио отдала пятирублевые монеты. Она предложила рассчитываться за покупки вместе, деньги давать без сдачи и минимальным числом монет. Известно, что они сделали покупку стоимостью N (7 < N < 1000) рублей и при этом рассчитались без сдачи. Напишите программу, которая определяет: сколько монет внес кот Базилио, и сколько монет внесла лиса Алиса.
2. Напишите программу, которая из натурального числа N удалит заданную цифру M.
3. Дано число, введенное с клавиатуры. Определите сумму квадратов нечетных цифр в числе.
4. Два отрезка на плоскости заданы координатами своих концов в декартовой системе координат. Требуется определить, существует ли у них общая точка. Координаты целые и по модулю не превосходят 10000.
5. Есть n (1 ≤ n ≤ 20) камней известного веса w1, w2, …, wn (1 ≤ wi ≤ 100 000). Напишите программу, которая распределит камни в две кучи так, чтобы разность весов этих двух куч была минимальной.
6. Рассмотрим строчки, состоящие только из заглавных английских букв. Например, рассмотрим строку AAAABCCCCCDDDD. Длина этой строки равна 14. Поскольку строка состоит только из английских букв, повторяющиеся символы могут быть удалены и заменены числами, определяющими количество повторений. Таким образом, данная строка может быть представлена как 4AB5C4D. Длина такой строки 7. Описанный метод мы назовем упаковкой строки. Напишите программу, которая берет упакованную строчку и восстанавливает по ней исходную строку. Максимальная длина строки не превышает 80. Требуется вывести все различные представления натурального числа N (2 ≤ N ≤ 40) в виде суммы натуральных чисел. Представления, отличающиеся друг от друга порядком слагаемых, не являются различными.
8. Реализуйте функцию, которая из англо-латинского словаря сделает латино-английский.

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

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Северенс Ч. Введение в программирование на Python: Учебная литература для ВУЗов Национальный Открытый Университет «ИНТУИТ», 2016 biblioclub.ru
Л1.2 Федоров Д.Ю. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ PYTHON. Учебное пособие для прикладного бакалавриата: Гриф УМО ВО М.:Издательство Юрайт, 2018 biblio-online.ru
Л1.3 Златопольский Д.М. Основы программирования на языке Python: Учебники Издательство "ДМК Пресс", 2017 e.lanbook.com
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Хахаев И. А. Практикум по алгоритмизации и программированию на Python: курс М.: Национальный Открытый Университет «ИНТУИТ», 2016//ЭБС «Университетская библиотека online» biblioclub.ru
Л2.2 Тузовский А.Ф. Объектно-ориентированное программирование: Учебное пособие для прикладного бакалавриата М.: Издательство Юрайт, 2018 // ЭБС "Юрайт" urait.ru
Л2.3 Л. Рамальо Python. К вершинам мастерства: ДМК Пресс, 2016//ЭБС издательства «Лань» 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. Материально-техническое обеспечение дисциплины

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

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

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