Финансовые технологии

  • информатика
  • математика
  • Дает 100 баллов на ЕГЭ

Алгоритмы и данные давно являются частью современного общества. Они — в смартфоне, в телевизоре, в транспорте, в больницах и учебных заведениях. Именно от них зависит,  какие новости вы получаете, как быстро общаетесь, насколько хорошо вы учитесь и качественно путешествуете. Мобильные операторы превращаются в центры разработки ПО, традиционные банки модифицируются в высокотехнологические компании. Квалифицированный инженер информационных технологий, программист — сейчас проектировщик реальности и будущего.

Профиль “Программная инженерия финансовых технологий” о программировании и современных технологиях, использующихся как в финансовом секторе, так и далеко за его пределами. Он посвящен телекоммуникациям, информационной безопасности, анализу и обработке данных, а также главному — современным инструментам создания программного обеспечения.

Профиль приглашает участников Олимпиады НТИ почувствовать себя частью стартап-движения — теми, кто может создавать актуальные ИТ-проекты на переднем плане технологий!

Профиль входит в список олимпиад РСОШ и дает победителям и призерам 100 баллов к ЕГЭ по профильным предметам при поступлении.

Рекомендуемый состав команды: 2-3 человека

  • Программист, специализирующийся на диалоговых системах (чат-ботах): выстраивание логики работы диалоговой системы, обработка естественного языка для распознавания действий пользователя, работа с базой данных.
  • Программист, ответственный за децентрализованное приложение: разработка web-приложения для взаимодействия с блокчейн сетью и контрактами Ethereum.
  • DevOps инженер/тестировщик: развертывание частей приложения посредством docker контейнеров, интеграция с системой ведения версий и системой автоматического тестирования, обеспечение процесса своевременной диагностики на ошибки и несоответствие требованиям.

Разработчик

АНО ВО Университет Иннополис

Отборочные этапы

Во втором этапе Олимпиады КД НТИ участникам предстоит решить несколько заданий, которые требуют не только и не столько навыков решения классических задач по программированию, сколько умения самостоятельно разбираться в API существующего программного обеспечения, способности в небольшие сроки найти и изучить информацию по какой-либо технологии, применять знания языков программирования, алгоритмов и структур данных для решения реальных, хоть и сильно упрощенных, задач из индустрии.

Для решения задач необходимо уметь работать в команде, поскольку в ограниченное для второго этапа время один человек может не успеть и изучить новый материал, и разработать решение, и обеспечить для него достаточный набор тестовых данных.

В решении заданий второго этапа помогут ссылки на материалы для самостоятельного изучения. Также заранее рекомендуется посмотреть на разборы заданий прошлых лет — это сформирует понимание того, какого рода задачи могут встретиться.

Заключительный этап

Задача заключительного этапа будет лежать на стыке технологий: чат-боты и блокчейн. Финалисты должны создать решение, которое бы позволило экономически мотивировать пользователей участвовать в жизни тематических Telegram-чатов, облегчило бы некоторые аспекты взаимодействия в рабочих группах и обычных семейных болталках.

Решение должно быть безопасным с точки зрения хранения персональной информации, т. е. даже получив доступ к коду чат-бота или базе-данных, злоумышленник не сможет нанести финансовый урон отдельным пользователям.

Для проверки решения задачи финала будет использоваться система автоматического тестирования на базе GitLab CI/CD. А для успешного создания многокомпонентного приложения участникам рекомендуется внедрить технологию контейнеризации c применением Docker.

Во время финала проводятся различные командообразующие мероприятия, которые помогают участникам не сдаваться и идти сплоченной командой до конца.

Материалы для участников

Что должен знать участник

Математика: начальные главы аналитической алгебры, геометрия, комбинаторика, отдельные разделы теории чисел, статистики и теории вероятности, теории графов и линейной алгебры.

Информатика: кодирование и декодирование информации, структуры хранения и обработки данных, комбинаторные алгоритмы, алгоритмы перебора и сортировки, обработка графов, обработка строк, битовые операции.

Специальные знания в области информатики: ООП, прикладное применение теории автоматов, базовые подходы к построению систем обработки естественного языка, криптография с публичным ключом.

Hard skills

  • Написание элементов ПО для решения конкретной задачи.
  • Декомпозиция задачи.
  • Использование парадигм ООП для написания программного обеспечения.
  • Создание аккаунта для сети, совместимой с Ethereum, и выполнения простейших операций — получение баланса, проведение транзакций.
  • Работа с публичной тестовой сетью, совместимой с Ethereum посредством JSON-RPC.
  • Извлечение данных из сети Ethereum, совместимой с Ethereum: информация о блоках, о транзакциях, о выписках транзакций.
  • Написание Python приложений для работы с узлами блокчейн сети, совместимой с Ethereum.
  • Написание web-приложений для для работы с узлами блокчейн сети, совместимой с Ethereum.
  • Написание и отладка контрактов для блокчейн, совместимым Ethereum, в онлайн среде программирования Remix.
  • Написание приложений на языке Python для работы с контрактами в блокчейн, совместимым Ethereum.
  • Написание web-приложений для работы с контрактами в блокчейн, совместимым Ethereum.
  • Работа с простыми базами данных: базовая настройка, внесение информации, поиск информации.
  • Анализ наборов данных, определение закономерностей в этих данных.
  • Навыки написания отказоустойчивых многопользовательских диалоговых ботов для Telegram.
  • Построение моделей машинного обучение, верификация моделей.
  • Выявление ключевых характеристик в наборах «грязных» данных, позволяющих улучшить результативность моделей обучения.
  • Основы Natural Language Processing, знание способов улучшения показателей эффективности моделей обработки естественного языка.
  • Построение и использование docker контейнеров.
  • Работа с базовыми командами консоли Linux, запуск процессов в фоне, остановка фоновых процессов, перенаправление ввода и вывода.
  • Использование итеративного процесса разработки.
  • Использование систем версифицирования исходного кода (git) для командной разработки программного обеспечения.
  • Базовое понимание настройки систем непрерывной интеграции (напр., GitLab CI/CD)

Soft skills

  • Навыки чтения документации и понимания поставленной задачи.
  • Навыки генерации и обсуждения идей, навык выслушать чужое мнение.
  • Навыки критического мышления.
  • Навыки рефлексии и предоставления обратной связи.
  • Принятие ответственности за выполняемый фронт работ.
  • Навыки взаимопомощи.
  • Навыки работы в команде разработки, навыки управления командой разработки.
  • Стрессоустойчивость.

Рынки НТИ

  • FinNet
  • SafeNet