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

Основы программирования на языке Python

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


Аннотация

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


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

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

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

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


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

Лекции

Лекция 1. Основные типы данных

Основные типы данных языка Python.

Выбор типов данных, адекватных поставленным задачам.

Простые типы

  • Целое число
  • Вещественные и комплексные числа
  • Логические значения и битовые операции

Составные типы

  • Строка
  • Список
  • Словарь
  • Кортеж
  • Файл

Лекция 2. Основные управляющие конструкции

Основные управляющие конструкции языка Python.

Управление ходом выполнения программы.

  • Операторы и инструкции
  • Переменные
  • Логические операции
  • Ветвления
  • Циклы с условием
  • Циклы с параметром
  • Исключения
  • Классы исключений

Лекция 3. Средства структурирования кода

Средства структурирования кода языка Python.

Декомпозиция сложных задач.

Функции

  • Определение функции
  • Вызов функции
  • Передача аргументов
  • Возвращаемые значения
  • Область видимости
  • Вложенные определения функций
  • Встроенные функции

Классы

  • Определение
  • Экземпляры
  • Методы
  • Атрибуты
  • Конструкторы
  • Наследование
  • Виртуальные методы

Модули

  • Использование модулей
  • Пространства имён

Лекция 4. Основные модули стандартной библиотеки

Основные модули стандартной библиотеки языка Python.

Использование модулей библиотеки для решения типовых задач.

  • Полезные утилиты
  • Взаимодействие с ОС
  • Работа с файловой системой
  • Обработка текста
  • Хранение данных
  • Криптографические функции
  • Работа с форматом XML
  • Взаимодействие с БД

Лекция 5. Работа с сетевыми протоколами

Библиотеки, предоставляющие функции сетевого взаимодействия.

Использование наиболее распространённых сетевых протоколов.

  • Протоколы TCP и UDP
  • Протокол Telnet
  • Протокол FTP
  • Протокол HTTP
  • Почтовые протоколы

Практические занятия

Основная цель практических занятий – формирование навыков самостоятельной разработки приложений.
Каждый слушатель получает техническое задание на разработку одной или нескольких утилит с интерфейсом командной сроки.

Примеры заданий:

Практика 1

  • Конвертер дня недели.
  • Конвертер месяца.
  • Словарь математических констант.
  • Генератор аббревиатур.
  • Генератор докладов.
  • Резольвер имён хостов.
  • Утилита копирования файлов.
  • Ввод последовательности чисел.
  • Архиватор.
  • Текстовый шаффлер.
  • Знакогенератор.

Практика 2

  • Определитель високосного года.
  • Файловый сплиттер.
  • Файловый фильтр.
  • Парсер ini формата.
  • Калькулятор последовательностей.
  • Обнаружитель числовых взаимосвязей.
  • Умножитель матриц.
  • Морской бой.

Практика 3

  • Быки и коровы.
  • Библиотека комбинаторных функций.
  • Firewall.
  • Router.
  • Контроллер самогонного аппарата.
  • Определитель палиндромов.
  • Парсер сетевого адреса.

Практика 4

  • Калькулятор рабочих дней.
  • Напоминалка.
  • Поиск исполняемых файлов.
  • Групповое перемещение.
  • Цифровая подпись.
  • Язык описания анекдотов.
  • Угадай животное (искусственный интеллект).
  • Поиск близких выражений.
  • Контроль целостности системных файлов.
  • Валидатор пользовательского ввода.
  • Архиватор с фильтрацией по размеру.

Практика 5

  • Сервер анекдотов.
  • Клиент анекдотов.
  • Сервер Time of the Day.
  • Клиент Time of the Day.
  • Почтовый агент.
  • Спам-бот.
  • Почтовая бомба.
  • Мониторинг сетевых сервисов.