ݺߣ

ݺߣShare 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

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