+7 (812) 703-02-02 info@hse.spbstu.ru

DEV-PY100. Основы процедурного программирования на языке Python

Длительность дисциплины: 56 ак.ч.


Аннотация

Курс предназначен для изучения синтаксиса и конструкций языка Python, необходимых для любого уровня программирования. Кроме конструкций и синтаксиса в курсе также будут рассмотрены такие важные темы, как импорт дополнительных библиотек и исключения, применение продвинутого синтаксиса и конструкций языка Python, которые часто применяются в промышленном программировании, а также помогают писать более чистый, красивый и понятный код. Дополнительно рассматриваются такие важные темы, как отладка программ и документирование кода.

Курс DEV-PY100. Процедурное программирование на языке Python является базовым в линейке курсов направления программирования на языке Python.

Основные цели курса:

  • изучить базовые и продвинутые конструкции и синтаксис языка Python;
  • обучиться работе с интегрированной средой разработки PyCharm;
  • получить первичный опыт разработки и решения практических задач;
  • познакомиться c инфраструктурным окружением языка, необходимым для промышленной разработки (отладчики, документация).

Перед изучением курса рекомендуем пройти бесплатный курс, посвященый знакомству с языком Python и средой разработки PyCharm - DEV-PY001. Знакомство с Python.


Знания и умения, полученные в результате изучения

В результате освоения программы, обучающийся должен уметь:
•   
грамотно формировать структуру текста программы, выполнять декомпозицию задачи;
•    осуществлять отладку кода и анализировать выполнение программы;
•    корректно и эффективно использовать операторы и инструкции языка Python;
•    разрабатывать функции, корректно и эффективно передавать параметры;
•    разрабатывать и применять анонимные функции;
•    использовать средства стандартной библиотеки Python;
•    перехватывать и обрабатывать исключения;
•    работать с файловой системой;
•    использовать менеджер контекста при работе с файлами;
•    работать с форматами сериализации данных;
•    оформлять и анализировать код.

В результате освоения программы обучающийся должен знать:
•   
базовые понятия алгоритмизации и процедурного программирования;
•    отличия процедурных и объектно-ориентированных языков программирования высокого уровня;
•    этапы получения исполняемого файла;
•    встроенные типы данных в языках программирования Python;
•    основные синтаксические конструкции языка Python;
•    основные способы организации данных;
•    понятия, относящиеся к функциям;
•    понятие анонимных функций;
•    стандартные исключения и способы их перехвата и обработки;
•    основные модули стандартной библиотеки и их назначение;
•    понятие менеджера контекста;
•    понятие и распространенные форматы сериализации данных;
•    правила оформления и анализа кода.

В результате освоения программы обучающийся должен приобрести практический опыт:
•   
работы в интегрированной среде разработки PyCharm и Jupyter Notebook;
•    отладки программного кода;
•    создания структур данных, соответствующих задаче;
•    использования процедурных возможностей стандартной библиотеки Python;
•    написания эффективных консольных программ на базе языка программирования Python.
•    планирования собственной деятельности по реализации простых приложений с использованием процедурного программирования;
•    особенности отладки кода и анализа выполнения программы;
•    оформления и анализа кода.

Содержание дисциплины

Тема 1. Введение в программирование на языке Python
1.1    Краткий обзор аспектов языка Python. Установка и настройка среды разработки   
    Введение в программирование на Python.
    Интерпретаторы Python’а.
    Установка интерпретатора Python.
    Знакомство со средами разработки.
    Краткий обзор аспектов языка (Дзен Python’а).
    Рекомендации по написанию кода на Python.
1.2    Структура программы на языке Python.   
    Основные элементы программирования: модули, инструкции, выражения и объекты.
Практические занятия   
    1.    Настройка среды разработки PyCharm
    2.    Установка интерпретатора Python
    3.    Настройка проекта
    4.    Выполнение инструкций в интерактивном режиме
    5.    Запуск скриптов в среде разработки
    6.    Настройка плагина для работы с практическими и лабораторными заданиями

Тема 2. Отладка кода и анализ выполнения программы
2.1    Отладка кода.
    Анализ выполнения программы   
    Использование точек останова, типы точек останова.
    Просмотр состояния объекта в режиме отладки.
Самостоятельная работа   
    1.    Запуск программ в режиме отладки
    2.    Работа с точками останова

Тема 3. Базовые объектные типы языка Python и работа с ними.
3.1    Обзор объектных типов языка Python.
    Особенности работы с простыми объектными типами    
    Использование переменных в Python.
    Динамическая типизация: особенности, преимущества и недостатки.
    Особенности работы с простыми типами: целое число, вещественные числа, логические значения (булевы значения) и None.
3.2    Особенности работы с составными объектными типами   
    Обзор и особенности работы с составными типами: строки, словари, списки, кортежи, множества.
    Изменяемые и неизменяемые объекты.
Практические занятия
    1.    Работа с простыми типами.
    2.    Работа с составными типами.
    3.    Изменяемые и неизменяемые объекты.

Тема 4. Базовые инструкции языка Python
4.1    Обзор основных управляющих инструкций языка Python.
    Условная инструкция if и синтаксические правила.   
    Обзор основных управляющих инструкций языка Python.
    Проверка истинности.
    Конструкция if, конструкция if – else, конструкция if – elif – else.
4.2    Циклы while и for.    
    Организация циклов.
    Инструкции break и continue в циклах.
    Приемы программирования циклов.
    Использование встроенных функций range и enumerate.
Практические занятия   
    1.    Использование условной инструкции if
    2.    Использование цикла for
    3.    Использование цикла while

Тема 5. Функции. Создание и использование функций
5.1    Функции.
    Создание функций.   
    Функции.
    Типы функций.
    Создание функций.
    Области видимости.
5.2    Аргументы функции.   
    Аргументы.
    Режимы сопоставления аргументов.
    Параметры по умолчанию и способы вызова.
    Изменяемые и неизменяемые типы данных как аргументы функции.
    Распаковка и упаковка списков и словарей.
5.3    Методы.   
    Основные методы строк, списков, множеств и словарей.
Практические занятия   
    1.    Создание простой функции
    2.    Создание функции с аргументами
    3.    Использование функции
    4.    Использование методов

Тема 6. Работа с библиотеками.
6.1    Модули и пакеты.
    Модули и пакеты.
    Способы импортирования кода.
6.2    Работа с библиотеками   
    Обзор стандартных библиотек (collections, random, pprint, time).
    List comprehension или списковые вложения.
6.3    Анонимные lambda-функции   
    Создание анонимных lambda-функций.
    Применение анонимных lambda-функций.
Практические занятия   
    1.    Импортирование кода
    2.    Работа со стандартными библиотеками
    3.    Списковые вложения
    4.    Создание и использование lambda-функций

Тема 7. Исключения и обработка исключений.
7.1    Исключения   
    Понятие об исключении.
    Стандартные исключения.
    Выброс исключения Raise.
7.2    Обработка исключений   
    Перехват исключения Try… Except.
    Определения условия продолжения выполнения программы Assert
Практические занятия   
    1.    Использование Try… Except
    2.    Использование Raise, Assert

Тема 8. Работа с источниками данных
8.1    Работа с файловой системой   
    Работа с файловой системой: работа с файлами, работа с каталогами.
    Назначение и использование менеджера контекста with
8.2    Сериализация данных    CSV, JSON
Практические занятия   
    1.    Работа с файлами и папками
    2.    Сериализация в формат JSON

Тема 9. Оформление модулей и документирование
9.1    Способы создания и использования модулей.   
    Создание модулей и их импортирование.
    Конструкция if __name__ == “__main__”.
9.2    Документация   
    Docstring, документирование модуля и функций.
9.3    Правила оформления кода    Правила оформления кода.
    PEP 8 и style guide
9.4    Аннотация типов   
    Аннотация типов - назначение и примеры использования.
    Типизация переменных.
    Типизация аргументов функций и возвращаемых значений. 
Самостоятельная работа   
    1.    Создание модулей
    2.    Документирование кода
    3.    Типизация аргументов функций

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