Бакалавриат
2024/2025





Программирование для лингвистов
ID 841213
Лучший по критерию «Полезность курса для Вашей будущей карьеры»
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Статус:
Курс по выбору (Фундаментальная и прикладная лингвистика)
Направление:
45.03.03. Фундаментальная и прикладная лингвистика
Где читается:
Факультет гуманитарных наук (Нижний Новгород)
Когда читается:
3-й курс, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Ураев Дмитрий Юрьевич
Язык:
русский
Кредиты:
4
Программа дисциплины
Аннотация
Курс посвящён углубленному изучению программирования на языке Python, получению навыков решения практических лингвистических задач, освоению промышленных стандартов написания и оформления кода.
Цель освоения дисциплины
- Углубление навыков программирования в части развития навыков логического мышления.
- Углубление навыков программирования в части развития навыков моделирования абстракций.
- Углубление навыков программирования в части улучшения стилевых навыков написания кода.
- Знакомство с принципами и методами написания промышленного кода.
- Развитие навыков алгоритмического мышления для решения задач по заданным требованиям.
- Ознакомление с процессами, сопутствующими написанию промышленного кода: инфраструктура, тестирование, документирование.
Планируемые результаты обучения
- Знать принципы работы компиляторов и интепретаторов
- Уметь использовать базовые алгоритмы анализа текстов
- Уметь составлять алгоритмы и оценивать сложность алгоритма
- Уметь моделировать абстракции различных уровней для написания программного кода в стиле ООП (Объектно-ориентированное программирование)
- Улучшить стилевые навыки для написания четкого и ясного кода по принципам SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation и Dependency inversion)
- Уметь проводить морфологический, синтаксический и семантический анализ текстов автоматическими методами
- Уметь находить и использовать актуальные библиотеки для решения поставленных задач
- Уметь анализировать функционал рассматриваемой библиотеки, анализировать несколько библиотек-кандидатов с последующим выбором итоговой технологии
- Уметь формировать список требуемых библиотек, технологий на основе заданных требований
- Уметь программировать комплексное решение, содержащее несколько технологий/библиотек/баз данных
- Уметь презентовать программное решение потенциальному заказчику за заданное время
- Знать принципы работы компиляторов и интерпретаторов
- Уметь организовывать и стандартизировать Python-проект, разрабатывать асинхронные веб-сервисы и подготавливать приложения к эксплуатации
- Уметь разрабатывать комплексные программные решения, включая базовые агентные системы и интеграцию нескольких технологий/библиотек/баз данных, с применением генеративного ИИ
- Понимать основные процессы DevOps, контейнеризации, CI/CD и жизненного цикла программного продукта
- Уметь соблюдать регламент командной разработки с использованием Git
Содержание учебной дисциплины
- Тема 1. Введение в ООП, Базовые принципы тестирования
- Тема 2. Система контроля версий Git, Сложность алгоритмов
- Тема 3. Структуры данных, Принципы тестирования, Принципы SOLID
- Тема 5. Организация Python проекта
- Тема 4. Введение в коммерческую разработку
- Тема 6. Стандартизация проекта, контроль качества и логирование
Элементы контроля
- Активность
- Итоговый проект
- Работа на занятиях
- Активность
- ПроектЦель проекта - продемонстрировать способность студента: - проектировать структуру кода и его архитектуру; - реализовывать функциональность, применяя продвинутые возможности Python; - писать читаемый, поддерживаемый и тестируемый код; - использовать навыки, полученные на курсе, и выполнять самостоятельные доработки.
Промежуточная аттестация
- 2024/2025 2nd module0.3 * Итоговый проект + 0.7 * Активность
- 2025/2026 2nd module0.1 * Работа на занятиях + 0.75 * Проект + 0.15 * Активность
Список литературы
Рекомендуемая основная литература
- Á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
- 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
- Грокаем алгоритмы : иллюстрированное пособие для программистов и любопытствующих, Бхаргава, А., 2023
- Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. - 978-5-4461-0923-4 - Бхаргава А. - 2022 - Санкт-Петербург: Питер - https://ibooks.ru/products/376971 - 376971 - iBOOKS
Рекомендуемая дополнительная литература
- 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
- Теоретический минимум по Computer Science. Все, что нужно программисту и разработчику - 978-5-4461-0587-8 - Владстон Ф.Ф - 2020 - Санкт-Петербург: Питер - https://ibooks.ru/products/358138 - 358138 - iBOOKS
- Чистый код: создание, анализ и рефакторинг - 978-5-4461-0960-9 - Мартин Роберт - 2019 - Санкт-Петербург: Питер - https://ibooks.ru/products/361844 - 361844 - iBOOKS