Цели и задачи дисциплины
Дать студентам системное представление о современных языках программирования (Rust, Go, Kotlin, TypeScript) и их экосистемах, сформировать практические навыки разработки надёжных, производительных и масштабируемых приложений для серверной обработки, распределённых систем, аналитики и фронтенд-интерфейсов для ML-приложений; научить осознанно выбирать язык и инструменты под конкретные инженерные и исследовательские задачи.
Задачи дисциплины
Обеспечить понимание ключевых концепций и парадигм каждого языка (Rust: безопасность памяти и ownership; Go: простота и конкурентность; Kotlin: JVM-экосистема и функциональные приёмы; TypeScript: типизация и фронтенд-интеграция).
Научить проектировать и реализовывать многопоточные и асинхронные системы без ошибок состояния (гонок), использовать корутины и асинхронные конструкции.
Ознакомить с экосистемой, инструментами сборки и управления зависимостями, профилирования и отладки для каждого языка.
Обучить интеграции с платформами обработки данных и ML (Spark, MLib), созданию API и сетевых сервисов, а также разработке дашбордов и визуализаций для интерпретируемости моделей.
Формировать навыки профилирования, оптимизации производительности и мониторинга приложений.
Развить умение выбирать язык и архитектурные решения с учётом требований к производительности, безопасности, масштабируемости и скорости разработки.
Краткое содержание дисциплины
Rust: ownershipб многопоточность без гонок, экосистема, асинхронизация, профилирование
Go: скорость, feature stones, model service, корутины, работа с сетью, управление зависимостями
Kotlin: экосистема JVM, функциональное программирование, работа по Spark, интеграция с MLib
TypeScript: фронтенд для ML-приложений, дашборды, визуализация данных, интерпретируемость моделей