Летняя школа юных программистов им. академика А.П. Ершова
  • Новости
  • Информация
  • Оргкомитет
  • ЛШЮП'12
  • ЛШЮП'11
  • ЛШЮП'10
  • Место проведения
  • Мастерские
  • Участники
  • Фотографии
  • Спонсоры
  • ЛШЮП'09
  • ЛШЮП'08
  • ЛШЮП'07
  • ЛШЮП'06
  • ЛОГО
  • Форум
  • Твиттер

Мастерские

  1. Интерактивный физический 3D-симулятор (А. Пальянов)
  2. C Code Coverage (CCC) (В. Соловьёв)
  3. Архиватор на Erlang (М. В. Братусь)
  4. Фрактальная графика (Н. А. Русакова)
  5. AI for kids (Е. Дмитриева)
  6. Разработка логических игр на Java (А. Подстригайло)
  7. Умненькая Соня (А. Г. Марчук)
  8. Web-сервер на Perl (А. Салмин)
  9. Социальная сеть нового поколения (С. Щербина, И. Дульцев)
  10. Scratch (С. Н. Коваль)
  11. Лаборатория у вас на столе (В. А. Сакерин)
  12. Конструктор сайтов (А. Сакерин)
  13. Сетевые технологии (В. И. Бауэр)
  14. Компиляторы (Е. Насибулов)
  15. Язык C + пресс-центр (А. Мирзуитова)

1. Интерактивный физический 3D-симулятор: проектируем и создаем сложные управляемые модели.

Мастер: Андрей Пальянов

Имеется готовый «самодельный» физический симулятор (главным образом Ньютоновская механика, но при необходимости функциональность может быть расширена), разрабатываемый в ИСИ СО РАН для научных и образовательных целей с 2007 года. На его основе был создан ряд демонстраций и проектов, в том числе динамическая управляемая модель робота «Johnny 5», возможно, знакомая вам по фильму «Короткое замыкание», действующая виртуальная копия реального биологического организма (нематоды C. Elegans), включающая его мышечную систему и нейронную сеть, а также созданный нашей командой на ЛШЮП 2009 несложный автосимулятор. Все описанные проекты будут показаны при ознакомлении.

Как видите, довольно много возможностей для фантазии и действия. В зависимости от интересов и уровня группы при совместном обсуждении будет принято решение о конкретном объекте, который будет интересен всем (есть готовые идеи, есть возможность развивать один из существующих проектов, а можно будет создать вообще что-нибудь новое, от модели экскаватора до модели муравья). Несмотря на кажущуюся сложность, большинство материала будет на интуитивно-понятном уровне, и как показала практика предыдущего года, все получилось удачно. В симуляторе визуализация реализована с помощью OpenGL. Код написан на С++. Реализовано базовое управление движениями моделей с клавиатуры и управление 3D-сценой с помощью мыши. Возможно создание автономных моделей, управляемых нейронными сетями, поддержка которых также встроена в симулятор.

Желательно знакомство с языком С/С++ и школьной физикой :). В ходе работы удастся познакомиться с библиотеками STL, OpenGL, основами трехмерной графики. Дополнительно, при наличии интереса, возможен экскурс в такие области, как основы искусственного интеллекта, биологические нейронные сети, моделирование живых систем.

Язык разработки: С++ (Microsoft Visual Studio) + STL + OpenGL.


2. C Code Coverage (CCC)

Мастер: Владимир Соловьёв

Важную роль в процессе разработки программ играет тестирование, т.е. исполнение написанной программы на некотором наборе тестов с ожиданием определенных результатов. Однако даже совпадение всех результатов с ожидаемыми не является гарантией корректности программы, так как набор тестов может быть слишком мал и может не охватывать все возможные пути исполнения программы. Таким образом, часть кода может просто ни разу не исполниться, и тогда нельзя ничего сказать про его корректность. Дополнительным критерием качества тестирования является определение множества инструкций, исполненных в процессе тестирования программы. Это множество называется «покрытием кода» (code coverage).

Цель мастерской: реализовать определитель code coverage для программ на языке C с помощью автоматического инструментирования исходного кода. Минимальный вариант — работа с одним «.c» файлом, результат в виде отдельного текстового лога. Далее можно прикручивать визуализацию результата, поддержку проектной системы какой-нибудь IDE (Visual Studio, например) и т.д.

Требуемый уровень школьников: знание C. Желательно знание С++ (достаточно просто знать, что такое класс), так как разработка будет вестись на нем, но не обязательно.

Инструментарий: Visual Studio, C++ Builder (если доберемся до визуализации и не будет адептов MFC).



3. Архиватор на Erlang

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

Цель мастерской:
- Освоить Erlang (функциональный язык программирования с динамической типизацией, предназначенный для создания распределённых вычислительных систем);
- Написать проект, использующий распределённые вычисления (в т.ч. одновременно на нескольких ПК).
Мы постараемся не только создать работающий Архиватор, но и извлечь максимум пользы от "многоядерности" Эрланга. Для этого наш Архиватор будет тестироваться с разным количеством ядер на разном количестве ПК, соединенных через TCP/IP.

Требуемый уровень школьников: знание любого функционального языка. Например: C/C++, Pascal, Lua (функции, циклы, рекурсия, массивы, работа со строками, работа с графикой)

Инструментарий: Erlang и Блокнот (Windows XP Pro SP3 / Windows 7)


4. Фрактальная графика

Мастер: Нина Александровна Русакова

Если вас восхищает зрелище молнии, вы любите разглядывать узоры на морозных окнах и разнообразные формы снежинок, то фрактальная графика для вас.

За время работы в мастерской вы узнаете о том, что такое фракталы, научитесь создавать их самостоятельно.

Среда разработки — Delphi.
Для работы необходимо знание языка Pascal.


5. AI for kids

Мастер: Екатерина Дмитриева

В ходе работы этой мастерской планируется изучение элементарных принципов генетического программирования и алгоритмов cамообучения.

Цели:
- создать приложение, моделирующее поведение черепахи на открытой поверхности в различных условиях;
- освоить основы программирования на языке ActionScript.

Требование к участникам: знание понятий «условный оператор», «цикл», «массив» на уровне «я про это слышал» и выше.


6. Разработка логических игр на Java

Мастер: Алёна Подстригайло

На сегодняшний день Java, несмотря на свою «молодость», остаётся одним из наиболее популярных объектно-ориентированных языков программирования. И не случайно: надёжность, безопасность исполнения, архитектурная независимость и при этом — относительная лёгкость изучения являются весомыми аргументами в его пользу.

Цель мастерской — изучение основ и особенностей объектно-ориентированного программирования на Java. Результатом работы будет создание кроссплатформенного сапёра (по типу того, что идет в стандартной поставке Windows).

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

Среда разработки: NetBeans IDE.


7. Умненькая Соня

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

Подмастерье: Сергей Лештаев

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

В результате выполнения проекта школьники приобретут знания по построению интеллектуальных диалоговых систем и баз данных, основам клиент-серверного программирования, элементам лингвистического анализа, современной платформе .NET/Silverlight, программированию использования мультимедиа и программированию визуальных эффектов. Программа будет создаваться в среде Visual Studio, на языке C#, в технологии .NET. Для участников желателен опыт программирования на языках типа Паскаль или C.


8. Web-сервер на Perl

Мастер: Алексей Салмин

В ходе работы мастерской планируется создать веб-сервер, обрабатывающий подключения по протоколу HTTP. Программы данного класса принимают запросы от браузеров (таких как Firefox, Opera или IE) и в ответ передают им веб-страницы, изображения и другие данные.

Если позволит время, также будут реализованы различные депрессивные расширения, как то SSI и CGI.

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

Требования к участникам: знание Pascal, C или другого языка этого класса.

Предполагаемый возраст участников: 8-10 класс.

Средства разработки: perl, vim, subversion.


9. Социальная сеть нового поколения

Мастера: Святослав Щербина, Игорь Дульцев

В рамках мастерской участники изучат основы языка программирования Python, языка разметки HTML5 и скриптового языка JavaScript. Всё приложение будет построено на перспективной клиент-серверной технологии с использованием веб-сокетов.

В процессе работы мастерской вместо классического веб-приложения будет написан клиент на HTML5+JavaScript+jQuery, работающий в любом хорошем браузере (Google Chrome), и сервер на Python, работающий в любой хорошей операционной системе (Linux). Эти две части будут написаны разными командами под руководством разных мастеров.

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

Разработка будет вестись под Ubuntu Linux.

Средства разработки: Python, HTML5, CSS, JavaScript, jQuery, MySQL, Salmin Web Server (когда Он его напишет), Subversion.

Требования к участникам: >8 класс, знание любого алгоритмического языка программирования (желательно С или Python).


10. Scratch

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

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

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


11. Лаборатория у вас на столе

Мастер: Виктор Алексеевич Сакерин

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

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

Нет, в нашей мастерской мы не будем делать игры (ну, разве что так, по ходу дела, в качестве упражнений). Мы сделаем на экране физическую лабораторию и будем производить опыты. Будем учиться применять физические законы к компьютерным объектам. А уж для чего Вы примените эти умения в жизни — для создания игр, разработки станков или для науки — дело ваше.

Будем разрабатывать с помощью: Delphi или Pascal, в зависимости от того, кто пойдёт в мастерскую. А если Вы не знаете этих языков — научу. Кто не знает и боится физики — не бойтесь. У нас будет с собой шпаргалка. Так что не пропадём!

Желательный возраст: лучше всего от 9 класса и старше.

Желательно знание: жизни.


12. Конструктор сайтов

Мастер: Алексей Сакерин

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

Приветствуются знания C++, PHP, HTML. Основы программирования — обязательны.


13. Сетевые технологии

Мастер: Владислав Иванович Бауэр

Целью мастерской будет создание клиент-серверного приложения на Java. Конкретный проект будет определён в процессе работы.


14. Компиляторы

Мастер: Егор Насибулов

Мастерская посвящена написанию компилятора или интерпретатора (обсуждается, во многом зависит от состава мастерской), целью мастерской являются освоение базовых принципов компиляции и написание компилятора или интерпретатора какого-либо языка программирования.

Язык реализации: C++

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

 


15. Язык C + пресс-центр

Мастер: Александра Мирзуитова

Если вы когда-либо слышали о линуксе и интересовались, что это такое — эта мастерская для вас. В мастерской будет две основных задачи: знакомство с операционной системой Ubuntu Linux и изучение основ языка С. Дополнительной задачей будет являться регулярный выпуск газеты ЛШЮП и разнообразных объявлений, афиш для лекций и т.д.

Результатом работы мастерской предполагается выпуск газет о жизни ЛШЮП, знакомство с Линуксом и создание толкового или языкового словаря.

Требования к участникам: 7 класс и старше, знание какого-либо языка программирования до ЛШЮП.

ОС: Ubuntu Linux 10.04

Cредства разработки: Geany, OpenOffice (для пресс-центра).

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