search icon

Программная инженерия финансовых технологий

Рынки НТИ: Сейфнет Рынки НТИ: Сейфнет
Сквозные технологии НТИ: Распределенные реестры Сквозные технологии НТИ: Распределенные реестры
III уровень РСОШ III уровень РСОШ
100 баллов к ЕГЭ 100 баллов к ЕГЭ
Рынки НТИ: Сейфнет Рынки НТИ: Сейфнет
Сквозные технологии НТИ: Распределенные реестры Сквозные технологии НТИ: Распределенные реестры
III уровень РСОШ III уровень РСОШ
100 баллов к ЕГЭ 100 баллов к ЕГЭ
Информатика Математика
  • Этап 1
    1 октября — 21 ноября
    2020
  • Этап 2
    16 ноября — 8 января
    2021
  • Финал. Предметный тур
    13 марта — 13 февраля
    2021
  • Финал. Командная задача
    22 марта — 27 марта
    2021

Расписание

* Внимание! Финал пройдет в распределенном формате!

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

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

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

Программная инженерия финансовых технологий1
Программная инженерия финансовых технологий2
Программная инженерия финансовых технологий3
Программная инженерия финансовых технологий4
Программная инженерия финансовых технологий5
Программная инженерия финансовых технологий6
Программная инженерия финансовых технологий7
Программная инженерия финансовых технологий8
Программная инженерия финансовых технологий9
Программная инженерия финансовых технологий10
Программная инженерия финансовых технологий11
Программная инженерия финансовых технологий12
Программная инженерия финансовых технологий13
Программная инженерия финансовых технологий14
Программная инженерия финансовых технологий15
Программная инженерия финансовых технологий16
Программная инженерия финансовых технологий17
Программная инженерия финансовых технологий18
Программная инженерия финансовых технологий19
Программная инженерия финансовых технологий20
Программная инженерия финансовых технологий21
Программная инженерия финансовых технологий22
Программная инженерия финансовых технологий23
01 23

Этапы соревнований

Этап 1

На первом этапе участникам предстоит решать задания по математике и информатике.

Этап 2

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

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

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

Финал. Предметный тур

На этом этапе участникам предстоит решать задачи по информатике и математике.

Этап пройдет в распределенном формате.

Финал. Командная задача

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

Финалисты должны будут создать решение, которое позволяло бы передавать информацию из одной блокчейн платформы в другую. Решение должно быть отказоустойчивым и максимально децентрализованным. Для достижения второй цели участникам финала нужно будет разрабатывать контракты для платформ, поддерживающих Ethereum Virtual Machine.

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

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

На финале понадобятся все описанные ниже hard и soft skills, для подготовки используйте материалы прикрепленные на странице профиля.

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

Рекомендуем ознакомиться со списком hard skills, а также всеми ссылками с текущей страницы профиля Программная инженерия финансовых технологий.

Требования к команде

ЧТО ДОЛЖЕН ЗНАТЬ УЧАСТНИК

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

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

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

HARD SKILLS

  • Написание элементов ПО для решения конкретной задачи.
  • Декомпозиция задачи.
  • Использование парадигм ООП для написания программного обеспечения.
  • Создание аккаунта для сети, совместимой с Ethereum, и выполнения простейших операций — получение баланса, проведение транзакций.
  • Работа с публичной тестовой сетью, совместимой с Ethereum посредством JSONRPC.
  • Извлечение данных из сети Ethereum, совместимой с Ethereum: информация о блоках, о транзакциях, о выписках транзакций.
  • Написание Python приложений для работы с узлами блокчейн сети, совместимой с Ethereum.
  • Написание и отладка контрактов для блокчейн, совместимым Ethereum, в онлайн среде программирования Remix.
  • Применение методик оптимизации работы контрактов Ethereum для уменьшения потребления gas и использования storage.
  • Написание приложений на языке Python для работы с контрактами в блокчейн, совместимым Ethereum.
  • Применение многопоточной архитектуры для создания серверных приложений.
  • Применение микросервисной архитектуры для создания серверных приложений.
  • Определение таких ограничений сетевых приложений, как отзывчивость и пропускная способность.
  • Проверка сетевых приложений на заявленные ограничения
  • Работа с простыми базами данных: базовая настройка, внесение информации, поиск информации.
  • Построение и использование docker контейнеров.
  • Работа с базовыми командами консоли Linux, запуск процессов в фоне, остановка фоновых процессов, перенаправление ввода и вывода.
  • Использование итеративного процесса разработки.
  • Использование систем версифицирования исходного кода (git) для командной разработки программного обеспечения.
  • Базовое понимание настройки систем непрерывной интеграции (напр., GitLab CI/CD)

SOFT SKILLS

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

Численность команды и роли

Состав команды — 2-3 человека:

Программист, специализирующийся на написании серверных приложений: выстраивание архитектуры многопоточных или микросервисных приложений, понимание особенностей написания ПО для работы в сети и работы с блокчейн узлами, знание RPC API.

Программист, ответственный за компоненты работающие в окружении Ethereum Virtual Machine: понимание транзакционной природы функционирования EVM контрактов, разработка контрактов на языке Solidty или Vyper, понимание концепции gas, оптимизация контрактов для уменьшения вычислительной сложности контрактов и нагрузки на хранилище данных.

DevOps инженер/тестировщик: оформление многопоточного или микросервисного приложения в виде docker сервисов, развертывание частей приложения посредством dockercompose, интеграция с системой ведения версий и системой автоматического тестирования, обеспечение процесса своевременной диагностики на ошибки и несоответствие требованиям.

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

Материалы подготовки

Разработчики

background image background image background image background image background image background image background image background image background image background image background image background image
background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image background image