Привет хабраюзер, меня зовут Климов Николай и сегодня я расскажу вам о нашей школе - Летней Школе Юных Программистов имени А.П. Ершова (сокращенно ЛШЮП). Она довольно известна в узких кругах (в основном в IT и университетской тусовке Новосибирска), но на хабре о ней мало кто слышал. Пришло время исправить этот недочет. Шутка ли, первая наша школа проводилась в далеком 1976 году. Я думаю, что мы самая старая действующая школа программирования в России. Возможно даже и в мире (но тут не поручусь, этот факт нужно исследовать). "Мы не учим, мы создаем обстановку, чтобы Вы научились сами." -  Один из наших негласных принципов В обычных школах программирования обучение выглядит примерно так. Есть расписание, стандартный план занятий. Ученики слушают лекции, изучают на них алгоритмы и структуры данных. После лекции идет семинар, где они в группе ~10-15 человек на практике пробуют какой-то язык программирования, решают задачки. После занятий возвращаются домой с домашним заданием. К концу школы пишется индивидуальный проект или, если школа с олимпиадным уклоном, проходит олимпиадный контест. У нас все по-другому. Начнем с того, что у нас нет никаких домашних заданий, так как нет никакого дома. На время школы преподаватели с учениками выезжают на 2 недели в какой-нибудь лагерь, где едят, программируют, разговаривают, развлекаются вместе. Фактически находятся друг с другом 24/7. А ещё наша школа - проектная. Цель учеников не пройти квест по сдаче выпускного экзамена, а вместе написать работающий проект. Базовая ячейка школы - мастерская. В мастерской "мастер" (иногда вместе с "подмастерьем") анонсирует проект, которым они собираются заниматься. Все ученики школы в первый день выбирают в какой мастерской они хотят работать следующие 2 недели. Обычно в школе обучаются чуть меньше 100 учеников на ~17 мастерских. В среднем на мастерскую приходится 4-6 учеников, больше 6 на мастера брать не позволяем.   Для мастеров нет никаких закрепленных учебных планов, квот на лекции, он волен сам выбирать конкретный проект, язык, технологии, темп обучения. Более того, в зависимости от опыта его учеников, он может корректировать сложность проекта на ходу. Также он сам выбирает подход к обучению: читать лекции или больше полагаться на решение задач; давать задания и не мешать или же наоборот все время проводить с учениками, подсказывать что-то и т.п.   Благодаря такой свободе у нас огромное количество самых разных проектов. Каждый год у нас есть мастерская на лого для ребят 4-6 классов. Есть большой костяк "мастерских начального уровня". Так мы между собой называем мастерские, в которых ребята изучают первый "серьезный" язык и пишут какой-то нетривиальный проект. Популярный пример такой мастерской - написание архиватора Хаффмана на Си. И есть мастерские для более опытных, где частенько пишутся довольно крутые проекты. В них обычно попадают ребята, которые ездят к нам не первый год (а таких очень много).   Некоторые примеры тем мастерских: Клон игры DOOM на ascii символах в терминале. Создание своих микросхем на Verilog. Множество мастерских по написанию компиляторов и интерпретаторов. Система по автоматическому доказательству геометрических теорем. Разные приложения генетических алгоритмов. Реализация Forth-машины для микроконтроллеров. 3d рендер на CPU по замечательным статьям @haqreu (https://habr.com/ru/post/248153/). Управление и решение задач на Lego NXT. Каждый год есть несколько мастерских по геймдеву. От простых flappy bird клонов, до сетевых игр или мирами с процедурной генерацией. Часто с самописными же движками. И ещё много-много всего. Как видите, большую часть дня занимает работа в мастерской. Бывает к нам приезжают лекторы из города и в 12 часов начинается общая лекция. Лекции бывают самые разные. Кто-то читает про архитектуру компьютера или интересные алгоритмы. А кто-то рассказывает о вещах из других областей - биология, биоинформатика, физика.   После ужина наступает свободное время. Кто-то смотрит фильмы (мы показываем что-нибудь хорошее на проекторе), кто-то играет в настолки или на улице. А кто-то продолжает работу в мастерской. Это уже не обязательно, но всегда находятся несколько человек, кто будет фигачить проект все свободное время (сам был таким). Но это не вся активность. На 3-4 день у нас проходит мероприятие "показ визиток". Каждая мастерская готовит сценку или юмористическую постановку на тему того, что они делают в мастерской. А в середине школы наступает выходной день, как же без него? В этот день мастера организуют разные спортивные состязания и игры. Но главным мероприятием всегда было КВН, где несколько команд от учеников соревнуются с командой мастеров в юморе. Но развлечения развлечениями, а главное все-таки работа в мастерских. И ближе к концу школы все начинают потихоньку напрягаться, так как подходит дедлайн - сдача проектов. Все ветки мерджатся в мастер (обязательно с криками "да откуда опять конфликт!"), в срочном порядке фиксятся баги, проект проверяется на работоспособность, по необходимости вставляются костыли. В общем обычная предрелизная чехарда. В последний день школы у нас проходит конференция. К ней ученики готовят презентацию, где рассказывают что они делали, что получилось и что не успели. (Проводить конференцию в удаленном формате было в новинку, получилось много накладок. Из плюсов - впервые осталось видео процесса. В описании видео есть таймкоды) После конференции проходит некая официальная часть, учеников награждают грамотами, а особо отличившихся дипломами. Потом наступает последнее мероприятие - вечерний костер. Ради него даже отбой сдвигается на один час. Много того, о чем я написал, касается именно оффлайн школы. К сожалению, последние 2 года мы живем немного в другом мире. Если сказать кратко - было непросто. Отсутствие четких планов, индивидуальный подход, "зажигание" учеников - все это очень здорово, но плохо переносится на удаленный режим. Лично мне больше всего не хватало живого общения на темы не касающиеся проекта напрямую. Часто бывало так, что я начинал рассказывать про работу рекурсии и стека, но ученикам было скучно и рассказ как-то сам переходил на техники взлома через stack overflow и защиту от них. На удаленке сложно заводить разговор "не по теме". Для удаленной работы пришлось сильно перестраиваться. Слишком молодых не брали (только после 7 класса) и вообще сократили количество учеников, подбирали темы мастерских для асинхронной работы (где можно просто объяснить что делать и заниматься уже ревью PR с периодическими созвонами). В целом эти школы 2020-2021 прошли довольно неплохо, но её дух был все-таки не тот. В этом году мы, наконец-то проведем школу вживую! Правда есть нюансы. До последнего не было понятно сможем ли провести оффлайн школу, а когда поняли, что можем, уже не успевали договориться с лагерями (обычно этим начинаем заниматься ещё весной). Поэтому у нас будет не "круглосуточное" обучение, а дневное, на базе центра "Альтаир" Академгородка. Количество мастерских в этот раз тоже будет чуть меньше, чем обычно (но больше, чем в ковидные времена). Школа будет проходить в 2 этапа. 11 июля начнется "подготовительный этап", на котором будут онлайн лекции по языкам. 15 числа будет проходить "олимпиада", по результатам которой ребята будут зачисляться в мастерские. Основной этап школы - с 18 июля по 30 июля на площадке центра "Альтаир", Новосибирск. Подробности и контакты можно узнать на сайте - https://ssyp.ru Я сам был учеником в ЛШ в далеких 2007-2009 годах. А потом, как поступил в вуз, начал ездить уже в роли мастера. И моя история тут не уникальна, почти все мастера были учениками этой школы, а большая часть учеников ездит много лет подряд. А это лучший показатель того, что ребята довольны. Мне кажется учредителям школы удалось создать (а нам сохранить) свою особую атмосферу обучения. Если искать аналогии этой атмосферы, то мне постоянно в голову приходит НИИЧАВО. Место где помимо непосредственно знаний, ты зажигаешься интересными задачами и ещё более интересными людьми вокруг тебя. Место, где работая, приходит понимание, что ты вполне способен делать крутые вещи, которые раньше казались волшебством. Если думаете чем занять своих детей на каникулах, welcome.   Ленивый энтузиаст.