Skip to content

Latest commit

 

History

History
189 lines (107 loc) · 24.2 KB

2019.md

File metadata and controls

189 lines (107 loc) · 24.2 KB

2019

Мастер: Климов Николай

Если вам не приходилось бегать по комнате, хватаясь за голову, приговаривая «Ну вот зачем я это удалил», то ещё придется. Если, конечно, вы не начнете использовать системы контроля версий. Это такие программы, которые позволяют фиксировать слепки ваших данных, чтобы потом к ним можно было возвращаться, смотреть историю изменений или делится с другими. Так получилось, что в мире программирования стандартной программой такого плана является Git. Поэтому независимо от языка на котором вы пишите, изучить git вам придется. А лучший способ что-то изучить — попытаться повторить.

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

Требования к участникам: 8+ класс, умение писать простые программы на языках Pascal, C или других подобных

Инструментарий: gcc, gdb, vim

Мастер: Феофанов Вячеслав и Кузюков Андрей

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

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

Требования к участникам: 7+ класс, базовые знания и умения в программировании; желательно знание теории звуковых волн по физике Инструментарий: VS Code, node. js, JavaScript, HTML, CSS, Git

Мастер: Бояршин Андрей

Каждый профессиональный (и не очень) программист должен знать язык C или его аналог (даже если никогда в жизни не собирается на нём писать рабочий код). В этой мастерской участники смогут освоить ту часть языка C++, которую можно изучить в строгих временных рамках летней школы. ООП и слова вроде «инкапсуляция» и «полиморфизм» не будут вам сниться в ночных кошмарах.

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

Требования к участникам: 6−9 классы, наличие хотя бы небольшого опыта программирования в языках программирования типа C, C++, C#, Pascal, Java.

Инструментарий: Visual Studio/Visual Studio Code, GCC/Clang/MSVC, CMake, Git

Мастер: Файфель Борис Леонидович

Тема «искусственный интеллект» последнее время не сходит с новостных полос. Ту тут, то там раздается «с помощью систем искусственного интеллекта удалось решить…» А ведь еще недавно к искусственному интеллекту относились весьма скептически; многие в него откровенно «не верили». Но мир меняется у нас на глазах. И то, с чего искусственный интеллект начинался, сейчас становится «классикой жанра». Такой «классикой» стали экспертные системы.

Что это такое? Чтобы понять суть экспертной системы, нужно уяснить, чем знания отличаются от простых данных на машинных носителях. Здесь нет секрета — существует простая формула: «Знания = данные + правила вывода». Другими словами, система обработки знаний может на основе существующих данных строить (вычислять) новые!

Такие системы обработки знаний и называются экспертными системами. Предлагаю построить простую, но работающую экспертную систему! Путь к результату будет непрост: нужно разобраться в том, как хранятся знания, что такое правила вывода, как они программируются и многое другое. А в качестве языка программирования мы возьмем Лисп. Это очень красивый и интересный язык, знание основ Лиспа можно назвать «витамином программирования». За время, отводимое для работы мастерской, нам придется основательно разобраться в Лиспе (что полезно само по себе).

Приглашаю всех, кто не боится логики и математики и готов изучать незнакомый язык программирования!

Требования к участникам: 6−7 класс и старше; знание школьной математики. Предварительные знания Лиспа не требуются — мы все выучим в процессе работы.

Инструментарий: Lisp

Мастер: Заварзин Евгений

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

Сначала мы изучим два языка — Kotlin для сервера, JS для клиента, потом распределим задачи и будем пилить убийцу Fortnite и PUBG!

Требования к участникам: Опыт работы с Си-подобными языками (С, С++; идеально — Java, C#). Готовность изучать новое и проектировать сложное :)

Инструментарий: VS Code, InteliJ IDEA

Мастер: Коваль Данил

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

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

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

Требования к участникам: Желание изучить новый язык и желание работать.

Инструментарий: Visual Studio, С/С++

Мастер: Братусь Михаил Витальевич

В мастерской мы изучим язык Lua, будем решать задачи, изучать алгоритмы, познакомимся с базовой теорией графов и используем полученные знания для создания «всегда разного, но всегда проходимого» замка Графа.

В мастерской хочется написать проект процедурной генерации замка Графа (и визуализации), в котором все комнаты должны быть связаны друг с другом проходами, дверьми с различными замками. Да так, чтобы при желании, Граф мог попасть в любую комнату с учетом запертых дверей. Если останется время, то сделать фрактальную процедурную генерацию местности вокруг замка Графа.

Требования к участникам: Четкое знание и понимание циклов, массивов и функций (на любом языке программирования), хорошая фантазия

Инструментарий: Язык Lua, IDE: ZeroBrane Studio / Visual Studio Code, Библиотека Love2D 11. x

Мастер: Федорова Марина

Подмастерье: Блинов Евгений

Если ваш путь программиста (ниндзя) только начинается, или если вы уже устали от однообразных цифр и символов, которые выдает компилятор, то эта мастерская — отличный для вас выбор. Здесь мы будем много работать с графикой, а поможет в этом чудесный язык Processing. Реализацию привычных (или еще нет) алгоритмов мы сможем видеть буквально на экране.

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

Требования к участникам: Любовь к картинкам и/или их созданию, желание учиться и узнавать новое, хорошо бы какое-то знание английского

Инструментарий: Processing 3.5.3

Мастер: Светлана Николаевна Коваль

Начни обучаться программированию с игр! Не играть в созданные кем-то компьютерные «квесты» и «бродилки», а сам создай свою первую компьютерную игру. В нашей мастерской вы научитесь делать небольшие оконные приложения, получите первые представления о разработке игровых программ.

Требования к участникам: Желание учиться.

Инструментарий: Python

Мастер: Колобов Василий

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

Требования к участникам: Опыт работы с любым языком программирования.

Инструментарий: Visual Studio

Мастер: Колобов Фёдор

Как научить компьютер видеть в 3D? Придумано множество способов: механические щупы, структурированная подсветка, лидары, time-of-flight камеры… большинство из них требует специального оборудования. Однако вполне возможно построить трёхмерную модель всего лишь по нескольким фотографиям интересующего объекта, а при некоторых допущениях даже по одной. Этим в мастерской и займёмся.

Требования к участникам: Отсутствие ненависти к геометрии, особенно к алгебраической её разновидности.

Инструментарий: Python

Мастерская 12. Изучаем C#

(Проект №1, Проект №2)

Мастер: Александр Гурьевич Марчук

Будет изучаться язык программирования C#, будут программироваться несложные алгоритмы, фрагменты программ. Коллективный творческий проект будет сформирован в процессе работы мастерской. Он будет учитывать возможности и интересы учеников. Предположительно, общий проект будет Web-приложением, интегрирующим отдельные решенные задачи: простую информационную систему, простой чат, простую поисковую систему.

Требования к участникам: Небольшой или большой опыт программировании на алгоритмическом языке..

Инструментарий: С#, VisualStudio 2017 или 2019

Мастер: Горбунов Дмитрий

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

К счастью, строгие рассуждения Евклида идеально подходят к холодной логике компьютеров, а особенно -- к парадигме «логического программирования», реализованной в языке Prolog.

Мы напишем простой построитель для геометрических чертежей и транслятор с языка чертежей в язык Prolog и обратно, позволяющий автоматически доказывать теоремы. Попутно, разумеется, придётся научиться использовать фреймворк Qt и понять, как же программировать на Прологе.

Требования к участникам: 7+ класс, любовь к геометрии, уверенное знание хотя бы одного императивного языка программирования (в идеале — Python 3).

Инструментарий: Python, Qt, SWI-Prolog

Мастер: Насибулов Илья

За рубежом «А» — отличная оценка, у нас — первое, что можно увидеть в букваре. Мастерская объединит эти два факта на примере программирования. Наша цель — создать что-нибудь 2D-шное на unity. В процессе нам придется потрогать C#. Итого, мы изучим что-то новенькое и сделаем шикарный проект.

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

Требования к участникам: Некоторое знакомство с алгоритмическим (и) языком (ами).

Инструментарий: MS VS, unity

Мастер: Насибулов Егор Генетические алгоритмы (ГА) -- с одной стороны, простой в понимании и, с другой, крайне мощный метод в применении к решению задач, принципиально не решаемых простым перебором. ГА, являясь одним из методов машинного обучения, относится к алгоритмам, работающим лучше с числом повторений. ГА являются адаптивным поисковым методом, основанный на выборе лучших из имеющегося набора моделей и получении из них нового набора, аналогично теории эволюции Ч. Р. Дарвина.

В мастерской участники на примере генетических алгоритмов познакомятся с элементами машинного обучения, узнают, что такое селекция и мутации, освоят основы языка программирования C. Те, кто окажется знаком с C/C++, смогут освоить параллельное программирование с использованием программного интерфейса MPI (API Message Passing Interface).

Требования к участникам: Желание узнавать что-то новое, а не играть в телефоны.

Инструментарий: C, gcc, gdb

Мастер: Черный Никита Если бы файлы хранились как есть, то нам потребовались бы огромные объемы памяти. Поэтому были придуманы различные алгоритмы для кодирования информации. Один из них мы и будем реализовывать.

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

Требования к участникам: Терпимость к криптографии и желание работать.

Инструментарий: C