Бакалавриат
2023/2024
Научно-исследовательский семинар "Программирование на Python: популярные библиотеки и решение практических задач"
Статус:
Курс по выбору (Программная инженерия)
Направление:
09.03.04. Программная инженерия
Кто читает:
Департамент программной инженерии
Где читается:
Факультет компьютерных наук
Когда читается:
1-й курс, 1-3 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для всех кампусов НИУ ВШЭ
Преподаватели:
Полицын Сергей Александрович
Язык:
русский
Кредиты:
3
Контактные часы:
48
Программа дисциплины
Аннотация
Введение в программирование на Python: этот курс представляет собой всестороннее введение в язык программирования Python. Рассматриваемые темы включают структуры данных, управляющие структуры, функции и объектно-ориентированное программирование. Студенты узнают, как писать "чистый" и эффективный код, а также получат практический опыт решения реальных задач. Курс также охватывает лучшие практики кодирования и разработки программного обеспечения с применением языка Python. К концу курса студенты будут иметь прочную основу для программирования на Python и смогут применять эти навыки в различных проектах.
Цель освоения дисциплины
- Быстрый старт в новом для себя языке программирования и его «экосистеме»; ознакомление с типовыми структурами данных языка и их применением на практике;
- Научиться решать типовые задачи эффективно и быстро; научиться применять типовые встроенные и сторонние библиотеки языка для решения практических задач
Планируемые результаты обучения
- Научимся решению задач, где применяются арифметические операции для целых чисел
- Научимся решать задачи, где используются строки
- Выясним, что же такое «истина» (что является истиной). Разберем примеры применения условий: с оператором if и без него.
- Поймем почему 2 + 1 не всегда равно 3 и другие задачи на применение вещественных чисел.
- В этом разделе вы научитесь создавать и использовать функции, которые позволяют повторно использовать код и делать его более структурированным.
- Начнем разбирать задачи на списки и многомерные массивы. Попробуем начать со своих «велосипедов», для тренировки.
- Вы познакомитесь с применением поиска и сортировки данных, которая облегчает решение многих задач и широко используется на практике.
- Множества позволяют эффективно сопоставлять различные объекты и широко используются в самых разных задачах.
- Словари позволяют эффективно работать с различными данными и широко используются во многих прикладных задачах.
- В этом разделе вы научитесь использовать стандартные функции языка Python для обработки последовательностей.
- В рамках раздела мы научимся применять подходы объектно-ориентированного программирования и познакомимся с их особенностями на языке Python.
- Научимся решать более сложные задачи на строках и текстах.
- Научимся использовать сериализацию и десериализацию данных на практических примерах.
- Научимся решать типичные задачи, требующие работу с временем и календарем. Подготовимся к решению задач по подготовке данных для машинного обучения.
- Научимся решать задачи, требующие загрузки и/или выгрузки данных по сети.
- Мы научимся типичным приемам программирования, связанным с параллельным выполнением задач. Научимся избегать ситуации «гонок» (race condition) и мертвых блокировок(deadlock).
- Мы научимся решать типичные задачи, в которых может быть применена библиотека async.io.
- Научимся решать разные популярные задачи поиска, выбора и др. с помощью запросов xPath.
- Мы научимся основным приемам автоматизированного тестирования Web-страниц с помощью framework’a Selenium.
- Создадим несколько Web-приложений, изучим возможности Django по созданию frontend и backend частей web-приложения
Содержание учебной дисциплины
- Целые числа, ввод-вывод
- Строки
- Условия и цикл while
- Вещественные числа
- Структурное программирование. Функции и рекурсия.
- Кортежи, списки, перебор элементов в цикле.
- Поиск и сортировка
- Множества
- Словари
- Основы функционального программирования
- Классы
- Основы регулярных выражений
- Сеть. Протокол HTTP.
- Процессы и потоки
- Асинхронное программирование
- Сериализация. Json.
- Работа с датой и временем. Библиотека NumPy.
- Работа с Xml. Язык xPath
- Selenium framework
- Фреймворк Django
Элементы контроля
- ДЗ_1...206 ДЗ в 1 модуле, 7 ДЗ во 2м модуле, 7ДЗ в 3 модуле
- КР_1...73 КР - 1 модуль, 2 КР - 2 модуль, 2 КР - 3 модуль