Размер
На что способен школьник 10-11 класса и о будущем IT-сообщества в нашей стране
Play

На что способен школьник 10-11 класса и о будущем IT-сообщества в нашей стране

Об одном хорошем конкурсе научных проектов для школьников

Есть у нас в стране конкурсы, которые помогают талантливым школьникам раскрыть свой потенциал и поддерживают работу над подобными проектами. Один из таких конкурсов уже упоминался на Хабре — это Балтийский научно-инженерный конкурс. Мероприятие ежегодно собирает в Питере более 300 школьников со всей России и является отборочным этапом на международный конкурс молодых ученых Intel ISEF в США, на котором очень круто. В данном посте речь пойдет именно о Балтийском конкурсе. Разумеется, сегодня в 10-11 классах школьник может участвовать в огромном количестве разнообразных олимпиад, конкурсов и соревнований. Чтобы понять, почему Балтийский конкурс достоин отдельного поста на Хабре, достаточно взглянуть на примеры проектов прошлых лет:

Пример проекта №1: Технология Contract Shared Memory в ОС Microsoft Singularity

  1. Взял Microsoft Singularity, экспериментальную ОС компании Microsoft
  2. Проанилизровал производительность системы для некоторых задач
  3. Предложил более эффективный способ работы с памятью
  4. Реализовал это, провел тесты, подвел итог
  5. Представил работу на Балтийском конкурсе, выиграл поездку в Америку.
  6. Представил Россию в Америке на международном конкурсе Intel ISEF, стал победителем (2 место).

Стенд проекта на международной выставке Intel ISEF: (кликните, чтобы увеличить картинку)

Репортаж про школьника в новостях:

Пример проекта №2: Back-In-Time Debugger: отладчик под Linux с возможностью восстановления предыдущего состояния отлаживаемой программы

  1. Разрабатывая игрушку just4fun на C++, осознал все “прелести” отладки ПО. Особенно те моменты, когда причина возникновения ошибки находится где-то за 10000 строк до того места, где проблема реально появилась. (например, память “побилась” 3 минуты назад, а Segmentation Fault произошел только сейчас, когда попробовали обратится к побитой памяти)
  2. Придумал сделать отладчик с возможностью откатить программу до предыдущего состояния и таким образом научиться легко исправлять трудновоспроизводимые баги.
  3. Взял за основу исходники open source отладчика GDB. Собрал под Cygwin.
  4. В течение 6(!) месяцев безуспешно пытался реализовать затею из-под винды.
  5. Через 6 месяцев решил попробовать сделать это под Linux. В исполняемый код программы в памяти отлаживаемого процесса «на лету» вставлялись инструментации, включающие вызов системной функции клонирования процесса fork(). Клонирование процесса программы позволяло сохранять состояния программы и откатывать её назад.
  6. Сделал кастомизированную версию GDB с дополнительными функциями типа «restore program state», выложил код на SourceForge.
  7. Представил работу на Балтийском конкурсе, выиграл поездку в Америку.
  8. Представил Россию в Америке на международном конкурсе Intel ISEF, стал победителем (4 место).

Стенд проекта на международной выставке Intel ISEF: (кликните, чтобы увеличить картинку)

Пример проекта №3: Модификация Dalvik VM для бета-тестирования Android-приложений с возможностью воспроизведения пользовательских действий

  1. Ради интереса начал разрабатывать мобильные приложения под Android
  2. В процессе разработки столкнулся с проблемой, что если у кого-то из друзей, играющихся с приложением, приложение внезапно падает, ситуацию иногда довольно трудно воспроизвести и никак при этом нельзя использовать отладчик.
  3. Вдохновился проектом соотечественника про Back-In-Time отладчик. Решил сделать нечто подобное для Android-приложений.
  4. Сделал модификацию Dalvik VM (виртуальная машина java, используемая в Android), в которой в байт-код тестируемого приложения автоматически вставляется код, записывающий системные события и действия пользователя.
  5. Разработал «плеер», который позволяет по созданному таким образом специальному лог-файлу «проиграть» заново жизнь приложения, которая получилась у бета-тестера. При этом, разумеется, есть возможность использовать отладчик.
  6. Представил работу на Балтийском конкурсе, выиграл поездку в Америку.
  7. Представил Россию в Америке на международном конкурсе Intel ISEF. Главную премию не выиграл, но получил хорошие призы.

Другие проекты

  • Алгебра Йонеды одной из специальных бирядных алгебр
  • Новый тип слоистого двойного никель гидроксида для использования в гибридных суперконденсаторах
  • Когомологии p-групп ручного типа представлений
  • Изучение способов селекции Mytilus Edulis и Mytilus Trossulus мидий куликом-сорокой (Haemotopys Ostralegus) мидиями видов на территории Кандалакшского заповедника острова Ряжков
  • Синтез аналога стероидных гормонов, содержащего фтор в положении 2

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

  1. Комитет по науке не занимается школьниками
  2. Комитет по образованию не занимается наукой
  3. Комитет по молодежной политике не занимается ни наукой, ни школьниками, их стезя — развлекательные мероприятия
  4. Губернатор перенаправляет письма снова в Комитет по науке
  5. goto 1

Специфика научных проектов, отличие от олимпиад по программированию

  • Дается задача, которая уже 100% решена до тебя «умными дядями»;
  • Задачу нужно решить за 10 минут, школьник должен соображать очень быстро, быстро «тушить пожары»;
  • Качество кода не имеет значения. Главное — отправить на проверку файл с задачей (ну, тот, который «task3NewNewNewFinallyWorks.cpp») и получить заветное «Accepted»;
  • Используются только базовые элементы языка: массивы, строки, пара стандартных алгоритмов.
  • Дается задача с «открытым концом». Никто толком не знает, что получится в итоге и получится ли вообще;
  • Задачу невозможно решить за 10 минут. Задача сложная и, как правило, делается год;
  • Результат работы школьника — полнофункциональный программный продукт. Школьник вынужден учиться писать код проекта правильно, грамотно продумывать архитектуру;
  • Школьник «курит» 1000 манов, чтобы разобраться в сложных технологиях, причем в 90% случаев все это на английском.

О будущем IT-сообщества в нашей стране

Я думаю у многих участников сообщества есть мечта о «светлом будущем», в котором страна, где мы родились и написали свой первый Hello World, — не «сырьевой придаток», а мировой лидер в инновационных разработках. Когда более 50% постов теккранча — не про конторы из Кремниевой Долины, а про наши стартапы. Нет никаких сомнений в том, что главный компонент успеха для такого «светлого будущего» — это компании, в которых разрабатывается что-то новое и что-то сложное. В свою очередь, чтобы такие компании были, нужны люди, способные разрабатывать что-то новое и что-то сложное. Конкурсы, такие как Балтийский — как раз про это! Вот представьте себе двух студентов 1 курса. Один в 11м классе тренировался на сотнях олимпиадных задачек, а другой в это время делал один крупный проект на Балтийский конкурс. Какого из двух студентов вы бы взяли на стажировку в экспериментальный инновационный проект в свою компанию? Какой из двух студентов с большей вероятностью станет CTO в том самом «следующем Google» появления которого мы все так ждем? Думаю, ответ очевиден. Реальные софтверные проекты, меняющие окружающий мир — это, как правило, не олимпиадные задачки, где нужно за 10 минут в авральном режиме что-то закодить. В реальных проектах мы часами изучаем спецификации, продумываем сложную архитектуру, разбираемся в чужом коде и т.д. Важно ли нашему IT-сообществу обратить внимание на конкурсы, в которых рождаются специалисты, умеющие хорошо создавать что-то новое и сложное? По-моему, просто необходимо. Иначе в один прекрасный день мы проснемся и обнаружим, что все 50 кандидатов на вакансию для нашего супер-проекта-который-должен-изменить-мир способны лишь на что-то примитивное и одноходовое. А потом все дружно побежим сушить сухари писать вот такие посты на Хабре про «кадровый голод». Если уважаемый участник IT-сообщества Хабра, читающий данный пост, согласится с этим утверждением — для него я просто оставлю здесь ссылку на краудфандинговую страницу проекта, на которой до 16 января можно поддержать один из таких конкурсов. (кстати, этот пост в хабе «Краудфандинг», что, по идее, позволяет такую ссылку поместить)

📎📎📎📎📎📎📎📎📎📎