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





Программирование для лингвистов
Статус:
Курс обязательный (Фундаментальная и прикладная лингвистика)
Направление:
45.03.03. Фундаментальная и прикладная лингвистика
Где читается:
Факультет гуманитарных наук (Нижний Новгород)
Когда читается:
3-й курс, 2 модуль
Формат изучения:
без онлайн-курса
Охват аудитории:
для своего кампуса
Преподаватели:
Ураев Дмитрий Юрьевич
Язык:
русский
Кредиты:
4
Контактные часы:
40
Программа дисциплины
Аннотация
Курс посвящён углубленному изучению программирования на языке Python, получению навыков решения практических лингвистических задач, освоению промышленных стандартов написания и оформления кода.
Цель освоения дисциплины
- Углубление навыков программирования в части развития навыков логического мышления.
- Углубление навыков программирования в части развития навыков моделирования абстракций.
- Углубление навыков программирования в части улучшения стилевых навыков написания кода.
- Знакомство с принципами и методами написания промышленного кода.
- Развитие навыков алгоритмического мышления для решения задач по заданным требованиям.
- Ознакомление с процессами, сопутствующими написанию промышленного кода: инфраструктура, тестирование, документирование.
Планируемые результаты обучения
- Знать принципы работы компиляторов и интепретаторов
- Уметь использовать базовые алгоритмы анализа текстов
- Уметь составлять алгоритмы и оценивать сложность алгоритма
- Уметь моделировать абстракции различных уровней для написания программного кода в стиле ООП (Объектно-ориентированное программирование)
- Улучшить стилевые навыки для написания четкого и ясного кода по принципам SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation и Dependency inversion)
- Уметь проводить морфологический, синтаксический и семантический анализ текстов автоматическими методами
- Уметь находить и использовать актуальные библиотеки для решения поставленных задач
- Уметь анализировать функционал рассматриваемой библиотеки, анализировать несколько библиотек-кандидатов с последующим выбором итоговой технологии
- Уметь формировать список требуемых библиотек, технологий на основе заданных требований
- Уметь программировать комплексное решение, содержащее несколько технологий/библиотек/баз данных
- Уметь презентовать программное решение потенциальному заказчику за заданное время
Содержание учебной дисциплины
- Тема 1. Введение в ООП, Базовые принципы тестирования
- Тема 2. Система контроля версий Git, Сложность алгоритмов
- Тема 3. Структуры данных, Принципы тестирования, Принципы SOLID
- Тема 5. Использование библиотек для решения лингвистических задач
- Тема 4. Разработка простых веб-приложений
- Работа в команде и создание проекта
Элементы контроля
- ПосещаемостьПосещаемость занятий
- АктивностьАктивность на занятиях: ответы на вопросы, решение задач
- ПроектВыполнение проектной работы в командах
Промежуточная аттестация
- 2023/2024 учебный год 2 модуль0.3 * Активность + 0.3 * Активность + 0.2 * Посещаемость + 0.2 * Посещаемость + 0.5 * Проект + 0.5 * Проект
- 2024/2025 учебный год 2 модуль1 * 2023/2024 учебный год 2 модуль + 1 * 2023/2024 учебный год 2 модуль
Список литературы
Рекомендуемая основная литература
- Á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