BSc: FTD.03 MFAI 2024 Python programming 1s
Программирование на Python
Квалификация выпускника: бакалавр
Направление подготовки: 09.03.01 Информатика и вычислительная техника
Направленность (профиль) образовательной программы: Математические основы искусственного интеллекта
Программу разработал(а): Златанов Н.
1. Краткая характеристика дисциплины
Изучение дисциплины (модуля) «Программирование на Python» обеспечивает формирование и развитие компетенций обучающихся в области программирования, алгоритмического мышления, работы с данными, разработки программного обеспечения, их применение для решения различных прикладных задач в рамках профессиональной деятельности.
2. Перечень планируемых результатов обучения
Целью освоения дисциплины (модуля) является формирование знаний, умений и навыков в рамках профессиональной деятельности, позволяющих успешно работать в избранной отрасли, а также обладать компетенциями, способствующими социальной мобильности, устойчивости и конкурентоспособности обучающегося в условиях современных рыночных отношений.
Задачами дисциплины являются введение в Python; рассмотрение управляющих конструкций и функций, а также работа с данными; изучение модулей и библиотек; рассмотрение объектно-ориентированного программирования; а также изучение практических проектов и применение Python.
Общая характеристика результата обучения по дисциплине
Знания: сформированы систематические знания предмета в полном объеме рабочей программы.
Умения: сформированы умения анализировать, сравнивать, классифицировать, обобщать, конкретизировать и систематизировать изученный материал, выделять в нем главное: устанавливать причинно-следственные связи.
Навыки (владения): сформировано владение навыками формулировки ответов; навыками свободного чтения результатов анализов и других исследований и решения ситуационных задач повышенной сложности; навыками работы с основной литературой и методами исследования большого объема, необходимого для практической деятельности; навыками соединения теоретических аспектов предмета с задачами практического значения.
3. Структура и содержание дисциплины
| № раздела | Наименование раздела дисциплины (модуля) | Содержание дисциплины (модуля) по темам |
| 1. | Введение в Python | История и особенности языка Python.
Установка и настройка окружения (IDE, интерпретаторы). Основные синтаксические конструкции (переменные, типы данных, операторы). |
| 2. | Управляющие конструкции и функции | Условия и ветвление (if, else, elif).
Циклы (for, while). Определение и использование функций. Аргументы функций и возврат значений. |
| 3. | Работа с данными | Строки и их методы.
Списки, кортежи и множества. Словари: создание и использование. Ввод и вывод данных. |
4. Методические и оценочные материалы
Задания для практических занятий:
| №
п/п |
Наименование раздела дисциплины (модуля) | Перечень рассматриваемых тем (вопросов) |
| 1. | Введение в Python | Эволюция языка Python: от создания до современности.
Исследуются ключевые этапы развития языка Python, начиная с его создания Гвидо ван Россумом в конце 1980-х годов и заканчивая последними версиями. Особенности синтаксиса и парадигмы программирования в Python. Изучаются уникальные особенности синтаксиса Python, такие как читаемость кода, использование отступов и динамическая типизация. Установка Python и настройка окружения разработки. Выбор и настройка IDE для разработки на Python. Работа с переменными и типами данных в Python. Операторы и выражения в Python. |
| 2. | Управляющие конструкции и функции | Основы условного ветвления: if, else, elif.
Сложные условия и логические операторы. Ветвление в играх: создание простого текстового квеста. Основы циклов: for и while. Циклы с условием: использование break и continue. Работа с коллекциями: перебор списков и строк. Основы определения функций: синтаксис и параметры. Функции с переменным числом аргументов и значение по умолчанию. Рекурсивные функции: концепция и применение. Передача аргументов в функции: позиционные и именованные. Использование аргументов по умолчанию и переменного числа аргументов. Возврат нескольких значений из функции. |
| 3. | Работа с данными | Основные методы строк: манипуляции и форматирование.
Работа с подстроками: поиск и извлечение. Регулярные выражения для работы со строками. Списки: создание, модификация и методы. Кортежи: неизменяемые структуры данных. Множества: уникальность и операции. Основы работы со словарями: создание, доступ и модификация. Методы словарей: перебор, фильтрация и сортировка. Словари и вложенные структуры данных. Основы ввода и вывода: работа с консолью. Чтение и запись текстовых файлов. Работа с CSV-файлами: ввод и вывод табличных данных. |
Текущий контроль успеваемости обучающихся по дисциплине:
| №
п/п |
Наименование раздела дисциплины (модуля) | Форма текущего контроля | Материалы текущего контроля |
| 1. | Введение в Python | Устный / письменный опрос | Устный / письменный опрос:
Когда был создан язык Python и кто его автор? Назовите три ключевые особенности языка Python, которые отличают его от других языков программирования. Какова основная философия Python, и какие принципы она включает? Объясните разницу между Python 2 и Python 3. Какие изменения были внесены в Python 3? Как установить Python на операционной системе Windows? Опишите процесс установки. Что такое виртуальное окружение в Python, и зачем оно нужно? Как его создать? Назовите три популярных IDE для разработки на Python и опишите их основные особенности. Как можно установить дополнительные библиотеки в Python? Приведите пример использования pip. Что такое переменная в Python? Как объявить переменную и присвоить ей значение? Перечислите основные типы данных в Python и приведите примеры для каждого типа. Объясните разницу между операторами сравнения и логическими операторами в Python. Приведите примеры использования. Как выполнить конкатенацию строк в Python? Приведите пример кода. |
| 2. | Управляющие конструкции и функции | Устный / письменный опрос | Устный / письменный опрос:
Объясните структуру условного оператора if в Python. Как он работает? Приведите пример. Что такое оператор elif, и как он используется в цепочке условий? Приведите пример использования if-elif-else. Как можно проверить несколько условий одновременно с помощью логических операторов в конструкции if? Приведите пример. Что произойдет, если условие в операторе if будет ложным? Как можно обработать этот случай? Опишите, как работает цикл for в Python. Как его можно использовать для перебора элементов списка? Приведите пример кода. Что такое цикл while, и как он отличается от цикла for? Приведите пример использования цикла while. Как можно прервать выполнение цикла с помощью оператора break? Приведите пример кода, где это может быть полезно. Как можно пропустить текущую итерацию цикла с помощью оператора continue? Приведите пример. Как определить функцию в Python? Приведите синтаксис и пример определения простой функции. Что такое область видимости переменных в контексте функций? Как это влияет на использование переменных внутри и вне функции? Как передать аргументы в функцию? Объясните разницу между позиционными и именованными аргументами с примерами. Как функция возвращает значение в Python? Приведите пример функции, которая возвращает результат выполнения операции. |
| 3. | Работа с данными | Устный / письменный опрос | Устный / письменный опрос:
Как создать строку в Python? Приведите пример создания строки с использованием одинарных и двойных кавычек. Перечислите и объясните основные методы строк в Python (например, .upper(), .lower(), .strip()). Приведите примеры их использования. Как можно объединить несколько строк в одну? Приведите пример использования метода join(). Что такое индексация строк в Python? Как можно получить отдельный символ из строки? Приведите пример. Как создать список в Python? В чем основные отличия между списками и кортежами? Приведите примеры. Как добавить элемент в список и удалить элемент из него? Приведите примеры использования методов .append() и .remove(). Что такое множество в Python, и как оно отличается от списка? Как можно создать множество и добавить в него элементы? Как можно выполнить операции над множествами (например, объединение и пересечение)? Приведите примеры кода. Как создать словарь в Python? Приведите пример создания словаря с использованием различных типов данных в качестве ключей и значений. Как получить значение по ключу в словаре? Что произойдет, если ключ не существует? Приведите пример использования метода .get(). Как получить ввод пользователя в Python с помощью функции input()? Приведите пример кода, который запрашивает у пользователя его имя и выводит приветствие. Как записать данные в файл и прочитать их обратно с помощью встроенных функций open(), write() и read()? Приведите пример кода, который демонстрирует эти операции. |
Контрольные вопросы для подготовки к промежуточной аттестации:
| №
п/п |
Наименование раздела дисциплины (модуля) | Наименование вопроса |
| 1. | Введение в Python | Опишите историю языка Python. Кто его создал, в каком году и какие ключевые версии языка вы можете назвать?
Каковы основные особенности языка Python, которые отличают его от других языков программирования? Приведите примеры. Как установить Python на вашу операционную систему? Какие шаги необходимо выполнить для настройки окружения? Что такое IDE? Назовите несколько популярных IDE для разработки на Python и опишите их основные функции. Объясните, что такое интерпретатор Python. Каковы его основные функции и как он отличается от компилятора? Перечислите основные типы данных в Python. Приведите примеры использования каждого из них. Что такое переменные в Python? Каковы правила именования переменных и какие типы данных могут быть присвоены переменным? Опишите основные операторы в Python (арифметические, логические и сравнительные). Приведите примеры их использования в коде. |
| 2. | Управляющие конструкции и функции | Объясните, как работает оператор if в Python. Приведите пример использования if, else и elif в одном коде.
Каковы основные отличия между циклами for и while? Приведите примеры, когда предпочтительнее использовать каждый из этих циклов. Что такое бесконечный цикл? Как его можно избежать при использовании цикла while? Приведите пример. Опишите, как определяются функции в Python. Какова структура определения функции и какие ключевые слова используются? Как передаются аргументы в функции? Объясните разницу между позиционными и именованными аргументами с примерами. Что такое значение по умолчанию для аргументов функции? Приведите пример функции с аргументами, имеющими значения по умолчанию. Как функция возвращает значение? Объясните, как используется оператор return, и приведите пример функции, которая возвращает результат вычисления. Как можно использовать вложенные условия и циклы в Python? Приведите пример кода, в котором используются вложенные конструкции. |
| 3. | Работа с данными | Что такое строка в Python? Перечислите и объясните несколько основных методов строк (например, upper(), lower(), strip()) с примерами их использования.
Как создаются и используются списки в Python? Приведите пример создания списка и методов, которые можно применять к спискам (например, append(), remove(), sort()). В чем разница между списками и кортежами в Python? Приведите примеры, когда следует использовать каждый из этих типов данных. Что такое множество в Python? Каковы основные операции с множествами (например, объединение, пересечение)? Приведите примеры. Как создаются и используются словари в Python? Объясните, что такое пары "ключ-значение", и приведите пример создания и доступа к элементам словаря. Как можно перебрать все элементы словаря? Приведите пример использования метода .items() для получения ключей и значений. Как осуществляется ввод данных от пользователя в Python? Приведите пример использования функции input() и объясните, как преобразовать введенные данные в нужный тип. Как осуществляется вывод данных на экран в Python? Объясните разницу между функциями print() и форматированием строк (например, f-строки). Приведите примеры. |
Вопросы/Задания к промежуточной аттестации в устной/письменной форме:
Выберите правильный вариант ответа.
1. Когда была создана первая версия языка Python?
A) 1989
B) 1991
C) 1995
D) 2000
Правильный ответ: B) 1991
2. Какой из следующих операторов используется для деления с остатком в Python?
A) /
B) //
C) %
D) div
Правильный ответ: C) %
3. Какой из следующих типов данных является неизменяемым (immutable) в Python?
A) list
B) dict
C) set
D) tuple
Правильный ответ: D) tuple
4. Какой интерпретатор Python является наиболее распространенным и поддерживает большинство библиотек?
A) Jython
B) IronPython
C) CPython
D) PyPy
Правильный ответ: C) CPython
5. Какой из следующих вариантов является правильным способом создания переменной в Python?
A) 1variable = 10
B) variable-1 = 10
C) variable_1 = 10
D) variable.1 = 10
Правильный ответ: C) variable_1 = 10
6. Какой метод используется для установки пакетов в Python с помощью pip?
A) install
B) get
C) add
D) fetch
Правильный ответ: A) install
7. Какой из следующих операторов используется для проверки равенства двух значений в Python?
A) =
B) ==
C) ===
D) !=
Правильный ответ: B) ==
8. Какой символ используется для обозначения комментариев в одной строке в Python?
A) //
B) #
C) --
D) /* */
Правильный ответ: B) #
9. Что произойдет, если попытаться изменить элемент кортежа (tuple)?
A) Элемент будет изменен.
B) Будет вызвано исключение TypeError.
C) Кортеж будет преобразован в список.
D) Ничего не произойдет.
Правильный ответ: B) Будет вызвано исключение TypeError.
10. Какой из следующих способов установки окружения является наиболее рекомендуемым для работы с проектами на Python?
A) Установка всех библиотек глобально.
B) Использование виртуальных окружений (venv).
C) Установка библиотек через системный пакетный менеджер.
D) Использование Docker только для продакшн-среды.
Правильный ответ: B) Использование виртуальных окружений (venv).
11. Какой из следующих операторов используется для проверки нескольких условий в Python?
A) and
B) or
C) not
D) все вышеперечисленные
Правильный ответ: D) все вышеперечисленные
12. Что будет выведено в результате выполнения следующего кода?
A) Больше 5
B) Меньше 5
C) Равно 5
D) Ошибка
Правильный ответ: A) Больше 5
13. Какой из следующих вариантов корректно создает бесконечный цикл с использованием while?
A) while True:
B) while 1:
C) while x != 0:
D) A и B
Правильный ответ: D) A и B
14. Какой результат будет возвращен функцией sum() при вызове sum([1, 2, 3], 10)?
A) 6
B) 10
C) 16
D) Ошибка
Правильный ответ: C) 16
15. Что произойдет, если функция не содержит оператора return?
A) Функция вернет None.
B) Функция завершится с ошибкой.
C) Функция вернет пустую строку.
D) Функция вернет 0.
Правильный ответ: A) Функция вернет None.
16. Какой из следующих фрагментов кода корректно определяет функцию с аргументами по умолчанию?
A) def func(a=1, b):
B) def func(a, b=2):
C) def func(a=1, b=2):
D) Все вышеперечисленные
Правильный ответ: C) def func(a=1, b=2):
17. Какой из следующих циклов будет выполнен ровно 5 раз?
A) 0, 1, 2, 3, 4
B) 1, 2, 3, 4, 5
C) Ошибка
D) Ничего не выведет
Правильный ответ: A) 0, 1, 2, 3, 4
18. Что будет выведено в результате выполнения следующего кода?
A) Положительное
B) Отрицательное
C) Ноль
D) Ошибка
Правильный ответ: B) Отрицательное
19. Какой из следующих методов позволяет передать переменное количество аргументов в функцию?
A) *args
B) **kwargs
C) both A and B
D) none of the above
Правильный ответ: C) both A and B
20. Какой результат будет возвращен при вызове функции foo()?
A) 1
B) 2
C) 3
D) Ошибка
Правильный ответ: C) 3
21. Какой из следующих методов строк удаляет все пробелы в начале и конце строки?
A) strip()
B) trim()
C) remove_spaces()
D) clean()
Правильный ответ: A) strip()
22. Что будет выведено в результате выполнения следующего кода?
A) 3
B) 5
C) 4
D) Ошибка
Правильный ответ: C) 4
23. Какой из следующих способов корректно создает множество в Python?
A) my_set = {1, 2, 3}
B) my_set = set([1, 2, 3])
C) my_set = set((1, 2, 3))
D) Все вышеперечисленные
Правильный ответ: D) Все вышеперечисленные
24. Что произойдет при выполнении следующего кода?
A) 0
B) None
C) Ошибка KeyError
D) 'c'
Правильный ответ: C) Ошибка KeyError
25. Какой метод используется для объединения двух строк в Python?
A) concat()
B) join()
C) combine()
D) Оператор +
Правильный ответ: D) Оператор +
26. Какой результат будет возвращен при вызове функции len() для кортежа (1, 2, 3)?
A) 2
B) 3
C) Ошибка
D) 4
Правильный ответ: B) 3
27. Что будет выведено в результате выполнения следующего кода?
A) [1, 4, 5, 3]
B) [1, 2, 4, 5, 3]
C) [1, 4, 5]
D) Ошибка
Правильный ответ: A) [1, 4, 5, 3]
28. Какой из следующих способов позволяет получить все ключи из словаря?
A) my_dict.keys()
B) my_dict.all_keys()
C) my_dict.get_keys()
D) my_dict.keys_all()
Правильный ответ: A) my_dict.keys()
29. Какой из следующих методов позволяет считать количество вхождений элемента в список?
A) count()
B) index()
C) find()
D) occurrences()
Правильный ответ: A) count()
30. Какой результат будет возвращен при выполнении следующего кода?
A) "HELLO WORLD"
B) "hello world"
C) "Hello world"
D) Ошибка
Правильный ответ: B) "hello world"
Перечень учебно-методического обеспечения дисциплины
Основная литература:
1. Сузи, Р. А. Язык программирования Python: учебное пособие / Р. А. Сузи. — 4-е изд. — Москва: Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2024. — 350 c. — Режим доступа: https://www.iprbookshop.ru/142310.html — ЭБС «IPRbooks».
Дополнительная литература:
1. Протодьяконов, А. В. Алгоритмы Data Science и их практическая реализация на Python: учебное пособие / А. В. Протодьяконов, П. А. Пылов, В. Е. Садовников. — Москва, Вологда: Инфра-Инженерия, 2022. — 392 c. — Режим доступа: https://www.iprbookshop.ru/124000.html — ЭБС «IPRbooks».
2. Raschka, S. Python Machine Learning. — Publishing House: Packt Publishing, 2016. — 430 p. — Режим доступа: https://portal.university.innopolis.ru/reading_hall/detail.php?ID=99020 — Электронный каталог научно-технической библиотеки АНО ВО «Университет Иннополис».
Методические указания для обучающихся по освоению дисциплины
| Вид учебных занятий/деятельности | Деятельность обучающегося |
|---|---|
| Лекция | Написание конспекта лекций: кратко, схематично, последовательно фиксировать основные положения лекции, выводы, формулировки, обобщения; помечать важные мысли, выделять ключевые слова, термины. Обозначить вопросы, термины или другой материал, который вызывает трудности, пометить и попытаться найти ответ в рекомендуемой литературе. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. |
| Практическое (семинарское) занятие | При подготовке к семинарскому (практическому) занятию необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. На основании обработанной информации постараться сформировать собственное мнение по выносимой на обсуждение тематике. Обосновать его аргументами, сформировать список источников, подкрепляющих его.
Во время семинарского (практического) занятия активно участвовать в обсуждении вопросов, высказывать аргументированную точку зрения на проблемные вопросы. Приводить примеры из источниковой базы и научной и/или исследовательской литературы. |
| Устный/письменный опрос | Отвечать, максимально полно, логично и структурировано, на поставленный вопрос. Основная цель – показать всю глубину знаний по конкретной теме или ее части. |
| Подготовка к промежуточной аттестации | При подготовке к промежуточной аттестации необходимо проработать вопросы по темам, которые рекомендуются для самостоятельной подготовки. При возникновении затруднений с ответами следует ориентироваться на конспекты лекций, семинаров, рекомендуемую литературу, материалы электронных и информационных справочных ресурсов, статей.
Если тема вызывает затруднение, четко сформулировать проблемный вопрос и задать его преподавателю. |
| Практические (лабораторные) занятия | Практические занятия предназначены прежде всего для разбора отдельных сложных положений, тренировки аналитических навыков, а также для развития коммуникационных навыков. Поэтому на практических занятиях необходимо участвовать в тех формах обсуждения материала, которые предлагает преподаватель: отвечать на вопросы преподавателя, дополнять ответы других студентов, приводить примеры, задавать вопросы другим выступающим, обсуждать вопросы и выполнять задания в группах. Работа на практических занятиях подразумевает домашнюю подготовку и активную умственную работу на самом занятии. Работа на практических занятиях в форме устного опроса заключается прежде всего в тренировке навыков применять теоретические положения к самому разнообразному материалу. В ходе практических занятий студенты работают в группах для обсуждения предлагаемых вопросов. |
| Самостоятельная работа | Самостоятельная работа состоит из следующих частей: 1) чтение учебной, справочной, научной литературы; 2) повторение материала лекций; 3) составление планов устных выступлений; 4) подготовка видеопрезентации. При чтении учебной литературы нужно разграничивать для себя материал на отдельные проблемы, концепции, идеи. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис. |
| Дискуссия | Публичное обсуждение спорного вопроса, проблемы. Каждая сторона должна оппонировать мнение собеседника, аргументируя свою позицию. |
| Контрольная работа | При подготовке к контрольной работе необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме. |
| Тестирование (устное/письменное) | При подготовке к тестированию необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме. Основная цель тестирования – показать уровень сформированности знаний по конкретной теме или ее части. |
| Индивидуальная работа | При выполнение индивидуальной работы необходимо взять задание у преподавателя, ознакомиться с требованиями к выполнению работы, изучить поставленную проблему, найти решение проблемы. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. Оформить результаты работы. |
| Разработка отдельных частей кода | Разработать часть кода, исходя из поставленной задачи и рекомендаций преподавателя. При выполнении работы рекомендуется обращаться к материалам лекций и семинарских (практических) занятий. Если возникают затруднения, необходимо проконсультироваться с преподавателем. |
| Выполнение домашних заданий и групповых проектов | Для выполнения домашних заданий и групповых проектов необходимо получить формулировку задания от преподавателя и убедиться в понимании задания. При выполнение домашних заданий и групповых проектов необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. |