В Новосибирске проходит летняя школа юных программистов

Летняя школа юных программистов (ЛШЮП) проводится с 1976 года: цель ее — развить в детях их интерес к науке, сформировать навыки современного программирования и использования перспективных информационных технологий.

Мероприятие для школьников 4—10 классов проходит в новосибирском Академгородке с 11 по 30 июля. Его инициаторы — Институт систем информатики имени А. П. Ершова СО РАН, Новосибирский государственный университет, Международный математический центр, а также Министерство науки и образования Новосибирской области и региональный центр «Альтаир».

Вначале в дистанционном формате читались онлайн-лекции, ребята изучали выложенные в сеть материалы, получали консультации преподавателей для подготовки и освоения языков программирования, необходимых для работы над проектами. На этом этапе принимали участие около 300 человек не только из Новосибирска и Новосибирской области, но и из Саратова, Москвы, Санкт-Петербурга, Нижнего Новгорода, городов Кемеровской области и Приморского края. После этого состоялась олимпиада, которая помогла определить уровень подготовки участников, а затем — собеседование, по итогам которого школьников распределили в мастерские.

С 18 июля начался этап по выполнению проектов. Работа проходит на базе регионального центра «Альтаир» в Академпарке и в компьютерных классах НГУ. Две недели ребята работают в командах по 5—8 человек под руководством опытных наставников — докторов наук, аспирантов, студентов и сотрудников IT-компаний. Спектр тематик мастерских разнообразен и охватывает не только области классического программирования, но и прикладные задачи других наук: математики, физики, биоинформатики, медицины и так далее. 

Летняя школа юных программистов — 2022

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

Школьники помладше делают проекты на языке программирования Лого. Несмотря на простоту, он обладает полнотой по Тьюрингу. Это значит, что на нем можно написать что угодно, от простенькой игры до компилятора другого языка.

Еще одна команда создает тренажер для изучения логических элементов. Главная особенность в том, что приложение разрабатывается на языке Си для консоли Sega Genesis 1988 года выпуска. Работа с ограниченным объемом памяти, скудными средствами для отладки кода позволит погрузится в ретро-программирование низкого уровня. Готовый же образ приложения может работать на любой платформе, даже на эмуляторах в браузерах и смартфонах. Программирование на реальном hardware не предусмотрено.

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

Создание чего-то нового — крайне интригующая задача, с которой в последние годы неплохо справляется машинное обучение. Речь идет о глубоких генеративных моделях, которые способны, обучившись на каких-нибудь данных, синтезировать уникальные экземпляры такого же рода. В мастерской этой тематики потребуется освоить основы теории вероятностей, разобраться, как работают нейронные сети и из чего они строятся. Ребята познакомятся с уже прижившимися структурами генеративных моделей (GANы, VAE, flow-based модели) и многообещающими диффузионными моделями (к ним, например, относится нашумевший DALLE-2).

Еще одно направление ЛШЮП — создание информационной системы на основе базы данных, параллельно или последовательно разрабатываемых интерфейсов, используя клиент-серверные технологии.

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

Еще один проект ЛШЮП предполагает использовать классические алгоритмы машинного обучения (Natural language processing, направление машинного обучения, выделяющее смысл из текстовых последовательностей) для программирования в биологии: для этого в качестве текста берется последовательность ДНК или белковую последовательность. Рассматривается, развитие нейросетей для работы с текстовыми последовательностями и способы их обучать. В конце планируется научить нейросеть предсказывать свойства белка по его аминокислотной последовательности.

Научно-практическая конференция и демонстрация выполненных работ в мастерских — завершающий этап работы. Следуя сложившейся традиции, предусматривается проведение обзорных и учебных лекций, мастер-классов и соревнований по проблемам современной информатики и других научных направлений, экскурсии. Повышение квалификации и общей эрудиции — важная составляющая ЛШЮП. 

Интересно отметить, что пользуются популярностью лекции не только мэтров науки, но и тех, кто сегодня еще учится в НГУ или совсем недавно был аспирантом. Главное качество лекторов — стремление поделиться знаниями, почувствовать связь поколений, вызвать неподдельный интерес к образованию и развитию творческого начала.

В этом году будут прочитаны лекции, тематика которых, согласно традиции ЛШЮП, разнообразно представит, как основополагающие для программистов материалы, так и философские рассуждения, исторические материалы и биографические подробности ведущих ученых из разных областей науки и техники. Объединят усилия по представлению в лекции взглядов на современное программирование представители компьютерных фирм «Ледас», ЦФТ, «Софтлаб-НСК».

С каждым годом состав Летней школы молодеет. Раннее включение в изучение основ программирование позволяет за время школьных лет освоить на практике не только базовые понятия. В арсенале юных программистов остается несколько языков программирования (как классические С, Паскаль, Java, так и экзотические на сегодняшний день Лисп, Erlang и даже ассемблер, в том числе бывают и появляющиеся новинки, а также Питон, Perl, C# и другие). Осваивают не только процедурное программирование, но и объектно-ориентированный подход, функциональный, параллельное программирование (в том числе и на видеокартах) и даже логическое.

Новосибирск был в числе основоположников образовательных дисциплин в области информатики и на протяжении десятилетий является лидером подготовки программистов. IT-кадры из Новосибирска востребованы в различных областях: науке, производстве, сфере информационной безопасности и бизнесе. Высококвалифицированных специалистов необходимо готовить со школьного возраста. Метод интенсификации учебного процесса в виде Летних школ зарекомендовал себя с лучшей стороны. Такие мероприятия развивают творческое начало (как школьников, так и преподавателей), помогают раскрыться личностно и объединить коллектив. Ребята могут выполнять проекты и общаться со специалистами из научных институтов, компаний, ведущих университетов, найти единомышленников и определиться с профессиональными интересами. Ежегодное проведение Летней школы юных программистов — лучшее мероприятие в память основателя направления школьной информатики, пионера и большого энтузиаста раннего обучения школьников программированию, академика Андрея Петровича Ершова.

Татьяна Тихонова, Группа образовательной информатики ИСИ СО РАН