Бакалавриат
2021/2022
Программирование на Python
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс обязательный (Компьютерные науки и анализ данных)
Направление:
01.03.02. Прикладная математика и информатика
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1 модуль
Формат изучения:
с онлайн-курсом
Онлайн-часы:
30
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
4
Контактные часы:
56
Программа дисциплины
Аннотация
Язык программирования Python является одним из самых популярных языков современности. Python используется для написания кода в самых разных сферах, например, в бэкенд-разработке, анализе данных и машинном обучении. Это обусловлено простотой языка и обширной экосистемой. В курсе будет рассмотрен синтаксис языка, основные структуры данных, основы ООП и показаны некоторые применения языка Python.
Цель освоения дисциплины
- Понимать фундаментальные принципы объектно-ориентированного программирования и уметь применять их в Python
- Иметь навыки программирования на языке высокого уровня, декомпозиции кода, придерживаться стиля написания программ
- Понимать основные сферы применения языка Python, уметь оценивать производительность кода и эффективность использования языка для решения задачи из конкретной области
Планируемые результаты обучения
- Знать основные структуры данных в Python, сложность выполнения операций при работе с ними
- Знать синтаксис языка Python, основные типы
- Иметь навыки работы со сторонними библиотеками, уметь быстро разбираться в API и создавать MVP
- Понимать основы многопоточности и уметь работать с реализацией этой идеи в языке Python
- Уметь работать со стандартной библиотекой языка, знать основные модули
Содержание учебной дисциплины
- Немного об истории. Hello, world! Понятие переменной, целочисленная арифметика. Представление целых чисел в памяти компьютера. Битовые операции. Питон как простейший калькулятор. Команда id. Модель copy-on-write. Операторы сравнения, присваивания. Правила именования переменных.
- Логический тип. None. Условный оператор. Ленивые вычисления. Понятие приоритета операций. Закон де Моргана. Вложенные условия, базовое определение области видимости переменной
- Цикл while. Использование break, continue, else. Вещественные числа. Представление вещественных чисел в памяти компьютера. Сравнение вещественных чисел. Строки. Сравнение строк, их обозначение.
- Списки и строки. Изменяемые и неизменяемые типы. Срезы, индексы, операции над строками и списками (методы). Форматирование строк. Кортежи. Хранение массивов в памяти компьютера (и динамических массивов соответственно)
- Функции. Передача параметров в функцию. Глобальные и локальные переменные. Вложенные функции. Рекурсия. functools.partial. Функции all и any. Понятие стека вызовов. Декораторы, параметрические декораторы
- Цикл for. Инструкция range. range в Python2. Генераторы. List comprehension. Понятие iterable-объекта. Лямбда-функции. Итераторы. Основы обработки ошибок
- Словари и множества. Понятие хэша, хэштаблицы, методы разрешения коллизий. Модуль collections, обзор структур данных.
- Основы функционального программирования. Сортировки. Бинарный поиск.
- Основы ООП. Классы, объекты, атрибуты, методы. Понятие конструктора, callable. Основные magic(dunder)-методы. Статические методы, методы класса.
- Наследование. Множественное наследование. Композиция классов. Абстрактные классы. Декораторы классов.
- Исключения. Обработка исключений. Пользовательские исключения. Контекстные менеджеры. Класс-итератор. Устройство базовых протоколов HTTP
- Основы многопоточности и асинхронности. Понятия процесса, потока. Описание клиент-серверной архитектуры.
- Система модулей языка Python. Утилита pip. Использование виртуального окружения. Модуль argparse. Устройство CPython.
Элементы контроля
- Накопленная оценкаФормула накопленной оценки: Накоп = 0.1 * (дз1 + дз2 + дз3 + дз4 + дз5 + дз6 + дз7 + дз8 + дз9 + Пр1 + Пр2 – МИН(дз1, дз2, дз3, дз4, дз5, дз6, дз7, дз8, дз9, Пр1, Пр2)) Из 11 оценок не учитывается минимальная. В каждом ДЗ могут быть бонусные баллы, за счет чего за ДЗ оценка может быть больше 100%.
- Домашние заданияНа курсе предусмотрены 9 домашних заданий
- ПроектыНа курсе предусмотрено два проекта с устной защитой
- ЭкзаменПроходит дистанционно в системе Яндекс.Контест с прокторингом.
Список литературы
Рекомендуемая основная литература
- Лучано, Р. Python. К вершинам мастерства / Р. Лучано ; перевод с английского А. А. Слинкин. — Москва : ДМК Пресс, 2016. — 768 с. — ISBN 978-5-97060-384-0. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/93273 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Eric Matthes. (2019). Python Crash Course, 2nd Edition : A Hands-On, Project-Based Introduction to Programming: Vol. 2nd edition. No Starch Press.