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

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

Закреплена за кафедройКафедра теоретической кибернетики и прикладной математики
Направление подготовки02.03.01. Математика и компьютерные науки
Форма обученияОчная
Общая трудоемкость3 ЗЕТ
Учебный план02_03_01_МиКН-4-2020
Часов по учебному плану 108
в том числе:
аудиторные занятия 54
самостоятельная работа 54
Виды контроля по семестрам
зачеты: 5

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

Курс (семестр) 3 (5) Итого
Недель 19
Вид занятий УПРПДУПРПД
Лекции 18 18 18 18
Лабораторные 36 36 36 36
Сам. работа 54 54 54 54
Итого 108 108 108 108

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

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

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

разработана в соответствии с ФГОС:
Федеральный государственный образовательный стандарт высшего образования по направлению подготовки 02.03.01 МАТЕМАТИКА И КОМПЬЮТЕРНЫЕ НАУКИ (уровень бакалавриата) (приказ Минобрнауки России от 07.08.2014 г. № 949)

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

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

Протокол от 30.06.2020 г. № 6
Срок действия программы: 2020-2021 уч. г.

Заведующий кафедрой
к.т.н., доцент, Хворова Л.А.

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

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

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

Протокол от 30.06.2020 г. № 6
Заведующий кафедрой к.т.н., доцент, Хворова Л.А.

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

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

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

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

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

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

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

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

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

5.1. Контрольные вопросы и задания
См. приложение
5.2. Темы письменных работ (эссе, рефераты, курсовые работы и др.)
Не предусмотрено
5.3. Фонд оценочных средств
См. приложение
Приложения
Приложение 1.   ФОС_МКН-4_Python.docx

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

6.1. Рекомендуемая литература
6.1.1. Основная литература
Авторы Заглавие Издательство, год Эл. адрес
Л1.1 Федоров Д.Ю. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ PYTHON. Учебное пособие для прикладного бакалавриата: Гриф УМО ВО М.:Издательство Юрайт, 2018 https://biblio-online.ru/book/1EE056CF-F11A-4C18-8D33-40B703D49AC5
Л1.2 Гринберг М. Разработка веб-приложений с использованием Flask на языке Python: Издательство "ДМК Пресс", 2014 https://e.lanbook.com/book/90103
Л1.3 Златопольский Д.М. Основы программирования на языке Python: Учебники Издательство "ДМК Пресс", 2017 https://e.lanbook.com/book/97359
Л1.4 Северенс Ч. Введение в программирование на Python: Учебная литература для ВУЗов Национальный Открытый Университет «ИНТУИТ», 2016 http://biblioclub.ru/index.php?page=book_red&id=429184
6.1.2. Дополнительная литература
Авторы Заглавие Издательство, год Эл. адрес
Л2.1 Шелдон Р., Мойе Дж. MySQL. Базовый курс. Пер. с англ.: М.: Вильямс, 2007
Л2.2 Хахаев И. А. Практикум по алгоритмизации и программированию на Python: курс М.: Национальный Открытый Университет «ИНТУИТ», 2016//ЭБС «Университетская библиотека online» http://biblioclub.ru/index.php?page=book&id=429256&sr=1
Л2.3 Тузовский А.Ф. Объектно-ориентированное программирование: Учебное пособие для прикладного бакалавриата М.: Издательство Юрайт, 2018 // ЭБС "Юрайт" https://urait.ru/bcode/451429
Л2.4 Л. Рамальо Python. К вершинам мастерства: ДМК Пресс, 2016//ЭБС издательства «Лань» https://e.lanbook.com/book/93273
Л2.5 Митчелл Р. Скрапинг веб-сайтов с помощю Python: Самоучители и руководства Издательство "ДМК Пресс", 2016 https://e.lanbook.com/book/100903
6.2. Перечень ресурсов информационно-телекоммуникационной сети "Интернет"
Название Эл. адрес
Э1 Основы алгоритмизации и программирования на языке Python https://portal.edu.asu.ru/course/view.php?id=3237
6.3. Перечень программного обеспечения
Microsoft Windows
Microsoft Office
Дистрибутив Anaconda
7-Zip
AcrobatReader
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. Методические указания для обучающихся по освоению дисциплины

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