• A
  • A
  • A
  • ABC
  • ABC
  • ABC
  • А
  • А
  • А
  • А
  • А
Regular version of the site

Programming Basics

2024/2025
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Course type:
Compulsory course
When:
1 year, 1, 2 module

Instructor


Фирсанова Виктория Игоревна

Программа дисциплины

Аннотация

Курс направлен на освоение языка программирования Python. Целью курса является изучение и отработка основных навыков использования языка программирования Python для решения задач анализа данных и обработки естественного языка. Курс подходит для студентов, которые ранее не имели опыта программирования. Для студентов, которые ранее осваивали программирование на языке Python, также предусмотрены дополнительные задания. В программу курса входит изучение теоретической базы программирования (основные операции вычисления, структуры и типы данных, алгоритмы). Основное внимание уделяется практике программирования: решение задач, объектно-ориентированное программирование, анализ данных. В результате освоения курса студент научится использовать язык программирования Python для решения исследовательских задач в области компьютерной лингвистики, станет уверенным пользователям таких библиотек, как Numpy, Pandas, Matplotlib. Студент, который успешно освоит курс, будет подготовлен к освоению анализа данных и машинного обучения.
Цель освоения дисциплины

Цель освоения дисциплины

  • Изучить типы и структуры данных в Python, овладение основными операциями с ними
  • Узнать основные программные ошибки и способы их обработки
  • Овладеть синтаксисом, логикой и применением функций на языке Python
  • Изучить концепции и принципы объектно-ориентированного программирования и уметь применять их на практике
  • Ознакомиться с основными инструментами библиотек для анализа данных
  • Ознакомиться с основными инструментами библиотек для обработки естественного языка
  • Научиться самостоятельно формулировать исследовательскую задачу в области компьютерной лингвистики, описывать алгоритм её решения и решать её средствами языка Python
  • Познакомиться с технологиями больших языковых моделей (LLM) и уметь применять их для обработки и анализа данных
Планируемые результаты обучения

Планируемые результаты обучения

  • Овладеть основными операциями на языке программирования Python
  • Овладеть основными инструментами библиотек для анализа данных (Pandas, Numpy, Scipy, Matplotlib, Seaborn, Scikit Learn)
  • Овладеть основными инструментами библиотек для обработки естественного языка (Gensim, Spacy, NLTK, Pymorphy2, Pymystem)
  • Самостоятельно формулировать исследовательскую задачу в области компьютерной лингвистики, описать алгоритм ее решения и решить ее средствами языка Python
  • Настроено рабочее окружение, запущен скрипт, который запрашивает имя пользователя и выводит приветствие.
  • Консольный калькулятор с выбором операции (+, -, *, /); скрипт, определяющий характеристику введенного числа (четное/нечетное, положительное/отрицательное); программа проверки имени и пароля пользователя на соответствие условиям.
  • Скрипт, который считывает информацию из файла *.txt и выводит данные на экран по заданным условиям, производит поиск и вносит изменения с помощью регулярных выражений, сохраняет данные в структуры данных (списки, кортежи, множества).
  • Скрипт для форматирования промпта для разработки виртуального ассистента на основе больших языковых моделей: считывание данных из файла, поиск по файлу, использование переменных, обработка данных из входных данных пользователя, конкатенация строк в единый промпт (входные данные для большой языковой модели).
  • Создание блока данных для конфигурации настроек программного обеспечения в формате JSON и шифрование данных с помощью криптографических библиотек.
  • Скрипт, который читает данные из файла, обрабатывает возможные ошибки (например, отсутствие файла) и сохраняет результат в новый файл.
  • Создание класса для модели реального объекта с методами и атрибутами. Варианты решения задачи: построение модели приватного блокчейна, создание архитектуры виртуального ассистента, создание модели ORM/CRM.
  • Скрипт, который получает данные с открытого API и выводит их в консоль, или скрипт, который получает список постов с JSONPlaceholder.
  • Парсер, который собирает заголовки новостей или цены товаров с выбранного сайта и сохраняет их в CSV-файл или БД.
  • Скрипт, который предсказывает выживание пассажира на Титанике.
  • Разработка прототипа приложения "виртуальный ассистент": создание консольного скрипта, веб-интерфейса и Telegram-версии приложения.
  • Решение 10-15 классических задач с LeetCode или HackerRank. Завершенный финальный проект (на выбор: веб-приложение с элементами NLP, продвинутый парсер с анализом данных, ML-модель для классификации текста с простым API на Flask). Код выложен на GitHub. Презентация финальных проектов. Ответы на вопросы. Советы по составлению резюме, поиску первых заказов/вакансий и прохождению собеседований. Обзор перспектив карьерного развития: углубление в ML, Deep Learning, специализация в NLP и т.д.
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Основы Python. Введение в экосистему
  • Циклы. Базовые структуры данных. Работа с файлами
  • Функциональное программирование. Работа со строками
  • Объектно-ориентированное программирование (ООП)
  • Основы Data Science
  • Подготовка к собеседованию и финальный проект
Элементы контроля

Элементы контроля

  • неблокирующий Домашняя работа
    Письменная работа, которая предполагает решение задачи методами программирования на языке Python. Задания выполняются студентом вне аудитории. Задания направляются преподавателю по электронной почте.
  • неблокирующий Проект
    Проект представляет подготовку решения исследовательской задачи и устное сообщение с отчетом по выполненной работе. Устное сообщение не должно занимать более 7-10 минут и должно быть основано на собственных наблюдениях студента и выводах, сделанных в процессе решения исследовательской задачи. По своему усмотрению студент может сопровождать устное сообщение слайдами PowerPoint или раздаточным материалом. Презентация, текст которой полностью заимствован из печатного или Интернет-источника и никак критически не переработан студентом, оценивается в 0 баллов.
  • неблокирующий Экзаменационная письменная работа
    Студенту предлагается выбрать задачу для решения методами программирования на языке Python. Время на подготовку – 60 минут.
Промежуточная аттестация

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

  • 2024/2025 2nd module
    0.6 * Домашняя работа + 0.2 * Проект + 0.2 * Экзаменационная письменная работа
Список литературы

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

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

  • Python crash course : a hands-on, project-based introduction to programming, Matthes, E., 2023

Рекомендуемая дополнительная литература

  • Python for data analysis : data wrangling with pandas, numPy, and IPhython, Mckinney, W., 2017

Авторы

  • Фирсанова Виктория Игоревна
  • Кессель Ксения Витальевна