• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2021/2022

Программирование на Python

Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус: Курс обязательный (Компьютерные науки и анализ данных)
Направление: 01.03.02. Прикладная математика и информатика
Когда читается: 1-й курс, 1 модуль
Формат изучения: с онлайн-курсом
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 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 домашних заданий
  • неблокирующий Проекты
    На курсе предусмотрено два проекта с устной защитой
  • неблокирующий Экзамен
    Проходит дистанционно в системе Яндекс.Контест с прокторингом.
Промежуточная аттестация

Промежуточная аттестация

  • 2021/2022 учебный год 1 модуль
    0.7 * Накопленная оценка
Список литературы

Список литературы

Рекомендуемая основная литература

  • Лучано, Р. 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.