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 for Linguists

2024/2025
Academic Year
RUS
Instruction in Russian
4
ECTS credits
Delivered at:
Department of Applied Mathematics and Informatics (Faculty of Informatics, Mathematics, and Computer Science (HSE Nizhny Novgorod))
Course type:
Elective course
When:
3 year, 2 module

Instructor


Ураев Дмитрий Юрьевич

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

Аннотация

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

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

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

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

  • Знать принципы работы компиляторов и интепретаторов
  • Уметь использовать базовые алгоритмы анализа текстов
  • Уметь составлять алгоритмы и оценивать сложность алгоритма
  • Уметь моделировать абстракции различных уровней для написания программного кода в стиле ООП (Объектно-ориентированное программирование)
  • Улучшить стилевые навыки для написания четкого и ясного кода по принципам SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation и Dependency inversion)
  • Уметь проводить морфологический, синтаксический и семантический анализ текстов автоматическими методами
  • Уметь находить и использовать актуальные библиотеки для решения поставленных задач
  • Уметь анализировать функционал рассматриваемой библиотеки, анализировать несколько библиотек-кандидатов с последующим выбором итоговой технологии
  • Уметь формировать список требуемых библиотек, технологий на основе заданных требований
  • Уметь программировать комплексное решение, содержащее несколько технологий/библиотек/баз данных
  • Уметь презентовать программное решение потенциальному заказчику за заданное время
Содержание учебной дисциплины

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

  • Тема 1. Введение в ООП, Базовые принципы тестирования
  • Тема 2. Система контроля версий Git, Сложность алгоритмов
  • Тема 3. Структуры данных, Принципы тестирования, Принципы SOLID
  • Тема 5. Использование библиотек для решения лингвистических задач
  • Тема 4. Разработка простых веб-приложений
  • Работа в команде и создание проекта
Элементы контроля

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

  • неблокирующий Активность
  • неблокирующий Итоговый проект
Промежуточная аттестация

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

  • 2024/2025 2nd module
    0.7 * Активность + 0.3 * Итоговый проект
  • 2025/2026 2nd module
    1 * 2024/2025 2nd module
Список литературы

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

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

  • Álvaro Scrivano. (2019). Coding with Python. Minneapolis: Lerner Publications ™. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1947372
  • Daigneau, R. (2012). Service Design Patterns : Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley Professional.
  • Freeman, E., Freeman, E., Sierra, K., & Bates, B. (2004). Head First Design Patterns : A Brain-Friendly Guide. Sebastopol, CA: Reilly - O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=415229
  • Gamma, E., Helm, R., Johnson, R. E., & Vlissides, J. (2009). Design Patterns : Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley Professional. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1599365
  • Hetland, M. L. (2014). Python Algorithms : Mastering Basic Algorithms in the Python Language (Vol. Second edition). [New York, N.Y.]: Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1174465
  • Lasater, C. G. (2007). Design Patterns. Plano, Tex: Jones & Bartlett Learning. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=186036
  • Грокаем алгоритмы : иллюстрированное пособие для программистов и любопытствующих, Бхаргава, А., 2023
  • Теоретический минимум по Computer Science : все что нужно программисту и разработчику, Феррейра Фило, В., 2023
  • Теоретический минимум по Computer Science : сети, криптография и data science, Феррейра Фило, В., 2023
  • Чистый код : cоздание, анализ и рефакторинг, Мартин, Р., 2023

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

  • Andrew Bird, Dr Lau Cher Han, Mario Corchero Jiménez, Graham Lee, & Corey Wade. (2019). The Python Workshop : A New, Interactive Approach to Learning Python. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2291496
  • Kurdi, M. Z. (2017). Natural Language Processing and Computational Linguistics 2 : Semantics, Discourse and Applications. London, UK: Wiley-ISTE. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1642577

Авторы

  • Климова Маргарита Андреевна
  • Сафарян Анна Карэновна
  • Трехлеб Ольга Юрьевна