SlideShare a Scribd company logo
Девятая независимая
научно-практическая конференция
«Разработка ПО 2013»
23 - 25 октября, Москва

Научите вашего ребенка
программировать!
Дмитрий Сошников
dmitri@soshnikov.com | twitter.com/shwars
Magic happens here.
Девятая независимая
научно-практическая конференция
«Разработка ПО 2013»
23 - 25 октября, Москва

Раскройте потенциал вашего
ребенка с помощью технологий
Дмитрий Сошников
dmitri@soshnikov.com | twitter.com/shwars
Проблема
Решение:
Показать ребенку, что компьютер –
это инструмент, позволяющий
решать задачи
Категории инструментов

Исследование мира

Коллективное
творчество

Обучение

Программирование
Программирование
Компьютер для
исследования
(exploration)

Компьютер для
(коллективного)
творчества

Обучение

Программирование
Kodu

Bing Maps

Всемирный
телескоп

PhotoSynth

Image
Composite
Editor

OneNote
Small Basic
Mathematics
Robotics

AutoCollage

Visio
C#

Movie Maker

Office
F#

Expression
Web

Live Writer
WebMatrix
Исследуем мир с помощью компьютера
Создаѐм мир с помощью компьютера
Ссылки
http://worldwidetelescope.org
http://maps.bing.com
http://photosynth.net или мобильное
приложение (Windows Phone, iOS)
http://research.microsoft.com/enus/um/redmond/groups/ivm/ice/
Программирование для школьников

Kodu Game Lab

7+ лет

Small Basic

12+ лет

Robotics
Studio

C# / F#
Visual Studio

14+ лет
Что такое Kodu?
Лаборатория игр:
•
•

создание трехмерных миров
создание (программирование) игр

Разработан в лаборатории Microsoft Research
Каждый персонаж и объект в Kodu запрограммирован индивидуально
и взаимодействует с миром по-своему, почти как умный агент
Kodu – высокоуровневый визуальный язык
Язык Kodu "event driven", где каждая строка в программе – это условие
и действие (правило)
Можно программировать на Xbox 360
Kodu Game Lab
Игра за 5 минут
Фокус - демонстрация

#msdevcon
Kodu Game Lab
Концепции программирования:
•
•
•

•
•
•

Конечный автомат
Управление персонажами /
исполнителями
Вводит концепцию класса-объекта
(через Creatable / Родитель)
Переходы (для изменения
поведения персонажей)
Логика: И (вложение), ИЛИ
Условия ЕСЛИ-ТО (продукционное
описание поведения)

Сценарии использования:
•
•

•

•
•

Визуализация прочитанного –
можно построить свой мир
Объяснение концепций
площади, параметра, координат,
путей
Ограниченность ресурсов в
мире и игры на тему
сохранение окружающей среды
Преломление света
Создание простых мелодий
Следующее поколение Kodu –
Project Spark
Small Basic
Старый
добрый
язык
программ.

Сложные
задачи просто
(flickr, RSS, T
urtle GFX)

Export во
взрослый
Visual Basic

Удобная
среда с
подсказками

Мгновенный sharing
(blog
embed, link,
silverlight)

Русифицирован и
есть
литература
на русском
Small Basic - ресурсы
http://smallbasic.ru
http://ms-kodu.ru
Использование SmallBasicLibrary
на C#
static void House(int len)
{
// Рисуем тело домика
Turtle.Turn(90);
square(len);

// Рисуем окошко
Turtle.PenUp();
Turtle.Move(2*len/3);
Turtle.Turn(90);
Turtle.Move(len / 3);
Turtle.PenDown();
square(len / 3);
Turtle.PenUp();
Turtle.Move(2*len/3);
Turtle.TurnRight();
Turtle.Move(2*len/3);
Turtle.PenDown();

// Рисуем крышу
Turtle.Turn(-60);
Turtle.Move(len);
Turtle.Turn(120);
Turtle.Move(len);
Turtle.Turn(30);
}
Треугольник Серпинского
int x = 100, y = 100;
var Rnd = new Random();
for (int i = 0; i < 10000; i++)
{
GraphicsWindow.SetPixel(x, y, "Black");
var r = Rnd.Next(1, 30);
if (r < 10) Move(ref x, ref y, 100, 500);
else if (r < 20) Move(ref x, ref y, 600, 500);
else Move(ref x, ref y, 350, 100);
}

static void Move(ref int x, ref int y, int nx, int ny)
{
x = (x + nx) / 2;

y = (y + ny) / 2;
}
Анонс
Курс «Введение в программирование на
C#» в ближайшее время на
MicrosoftVirtualAcademy.com!
Вспоминаем детство
….и черепашью графику!

#msdevcon
Microsoft Robotics Developer Studio
На поверхности:

http://www.microsoft.com/robotics

Среда, позволяющая разрабатывать поведение роботов как с помощью
визуального языка Visual Programming Language, так и на C#
Содержит эмулятор популярных моделей роботов (LEGO
Mindstorm, iRobot), поддерживающий физику реального мира
Версия 4.0 Beta поддерживает эмуляцию Kinect!

Поддерживает популярные модели роботов (LEGO, iRobot) с помощью
Bluetooth-управления

Изнутри:
Роботы – это сложные устройства, состоящие из асинхронно
взаимодействующих сервисов
Функциональное программирование
как первый подход к программированию
Парадигма программирования, естественная для человека,
которая рассматривает программу как функцию, которая
перерабатывает входные данные в выходные, и в свою
очередь строится из более простых функций.
Подходы к обучению F#
“Это почти как математика”
let solve a b c =
let d = b*b-4.*a*c
((-b-sqrt(d))/2/a,(-b+sqrt(d))/2/a)

> solve 1. 2. -3.
(1.0, 2.0)

Функции, обрабатывающие сложные объекты
(геометрические фигуры)
Fun.fillColor Color.Gold (Fun.circle 200.0f) $
Fun.fillColor Color.Red (Fun.circle 150.0f) $
Fun.fillColor Color.Gold (Fun.move 0.0f 15.0f
(Fun.circle 160.0f)) $
Fun.fillColor Color.Green
(Fun.move -50.0f 25.0f (Fun.circle 50.0f) $
Fun.move 50.0f 25.0f (Fun.circle 50.0f))
В заключение – решаем
квадратное уравнение
Без ошибок!

#msdevcon
Другие опробованные подходы
Разработка приложений Windows Phone
(13+)
Разработка приложений под Kinect / Leap
Motion Sensor (16+)
Детский ИТворческий лагерь JUNIO-R
SECR2013: Как научить ваших детей программировать
SECR2013: Как научить ваших детей программировать
Технологии Майкрософт достаточно
просты, чтобы позволить детям 8-17
лет делать реальные проекты.
Вывод
Если вам интересна эта тема – я хочу с вами
общаться!
http://blogs.msdn.com/sos | dmitryso@microsoft.com
Childcast
Kodu Cup
Функциональное программирование
ДМИТРИЙ СОШНИКОВ
Технологический евангелист,
Microsoft
@shwars | blogs.msdn.com/sos

More Related Content

PPTX
Среды динамической геометрии: настоящее и будущее
PDF
Python для GameDev
PPTX
Николай Гусев «Функциональное программирование для C# разработчиков»
PPTX
DevCon 2014: Вдохновляем детей с помощью технологий
PPTX
Функциональное программирование для разработки распределённых, облачных и веб...
PPTX
Языки программирования
PPTX
Принципы создания приложений виртуальной и расширенной реальности с примерами...
PPT
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...
Среды динамической геометрии: настоящее и будущее
Python для GameDev
Николай Гусев «Функциональное программирование для C# разработчиков»
DevCon 2014: Вдохновляем детей с помощью технологий
Функциональное программирование для разработки распределённых, облачных и веб...
Языки программирования
Принципы создания приложений виртуальной и расширенной реальности с примерами...
SECR2013: F# и обработка потоковых данных: от потока твиттер-сообщений до сен...

Similar to SECR2013: Как научить ваших детей программировать (20)

PDF
Scratchduino - Инновационный класс для обучения информатике, робототехнике, 3...
PDF
Отчёт с HackDay#23
PPTX
Интернет вещей: программа Intel Developer Zone для разработчиков
PDF
Трукшин Николай - Как зарабатывать на технологиях виртуальной реальности - T...
PPTX
Увлекательный мир программирования.
PPTX
презентация C tutur
PDF
Interaction using kinect
PDF
HackDay #35 в ИТ-парке Набережных Челнов
PPTX
RST2014_Taganrog_AugmentedRealityTechnology
PPT
Оцифровка движений
PPTX
Ефимов, презентация на финале DeepHack
PPTX
DevPro-2014: Кроссплатформенное приложение за 15 минут или Беды и победы моби...
PDF
Spider Group
PDF
EligoVision: Интерактивные технологии и 3D визуализация для WOW презентаций
PDF
3D пойнтер
PDF
Возлюби робота
PPT
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...
PPT
EligoVision_Autodesk_Forum
PDF
Ml and its bright future
PPT
Robotronica ru 10 min
Scratchduino - Инновационный класс для обучения информатике, робототехнике, 3...
Отчёт с HackDay#23
Интернет вещей: программа Intel Developer Zone для разработчиков
Трукшин Николай - Как зарабатывать на технологиях виртуальной реальности - T...
Увлекательный мир программирования.
презентация C tutur
Interaction using kinect
HackDay #35 в ИТ-парке Набережных Челнов
RST2014_Taganrog_AugmentedRealityTechnology
Оцифровка движений
Ефимов, презентация на финале DeepHack
DevPro-2014: Кроссплатформенное приложение за 15 минут или Беды и победы моби...
Spider Group
EligoVision: Интерактивные технологии и 3D визуализация для WOW презентаций
3D пойнтер
Возлюби робота
MoITvation - презентация-размышление о роли IT в современном мире с конкретны...
EligoVision_Autodesk_Forum
Ml and its bright future
Robotronica ru 10 min
Ad

SECR2013: Как научить ваших детей программировать