We use cookies in order to improve the quality and usability of the HSE website. More information about the use of cookies is available here, and the regulations on processing personal data can be found here. By continuing to use the site, you hereby confirm that you have been informed of the use of cookies by the HSE website and agree with our rules for processing personal data. You may disable cookies in your browser settings.

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

Programming Basics

2024/2025
Academic Year
RUS
Instruction in Russian
6
ECTS credits
Category 'Best Course for Career Development'
Category 'Best Course for Broadening Horizons and Diversity of Knowledge and Skills'
Category 'Best Course for New Knowledge and Skills'
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 и выводит данные на экран по заданным условиям, производит поиск и вносит изменения с помощью регулярных выражений, сохраняет данные в структуры данных (списки, кортежи, множества).
  • Скрипт для форматирования промпта для разработки виртуального ассистента на основе больших языковых моделей: считывание данных из файла, поиск по файлу, использование переменных, обработка данных из входных данных пользователя, конкатенация строк в единый промпт (входные данные для большой языковой модели).
  • Создание класса для модели реального объекта с методами и атрибутами. Варианты решения задачи: построение модели приватного блокчейна, создание архитектуры виртуального ассистента, создание модели ORM/CRM.
  • Решение 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

Авторы

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