Оффтоп Alexander Lashkov
6 889

Microsoft запускает игру для обучения программированию Code Hunt

Исследовательское подразделение Microsoft Research выпустило браузерную игру Code Hunt, при помощи которой пользователи могут изучать программирование. Для того, чтобы перейти на следующий уровень, игрок должен написать определенный программный код. О запуске проекта сообщается в блоге компании.

После запуска Code Hunt пользователям демонстрируются участки кода, которые необходимо модифицировать так, чтобы получить требуемый результат. Изучать таким образом можно языки программирования Java и C#. За решенные задачи начисляются очки, причем учитывается не только корректность решения, но и его «элегантность» — например, если нужного результата удастся добиться с помощью меньшего числа строк кода, игрок получит больше очков. Для большей реалистичности интерфейс игры имитирует привычные программистам среды разработки.

Как говорится в сообщении компании, подход к обучению, предлагаемый в Code Hunt, отличается от стандартного.

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

Code Hunt основана на разработанном в Microsoft Research средстве анализа кода Pex и работает на Microsoft Azure. Участвовавшие в разработке игры исследователи Николай Тильман, Джудит Бишом, Найджел Хорспул, Дэниел Перелман и Тао Зи (Tao Xie) выпустили документ с описанием процесса работы над проектом.

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

В Code Hunt игрок должен изучать образцы кода и подсказки, которые представлены в виде результатов тестов. Необходимо пошагово модифицировать код, чтобы добиться требуемой функциональности — при этом, что конкретно должен делать код, игроку неизвестно.Такой подход к обучению отличается от привычного, когда сначала необходимо изучить спецификацию, а затем писать код с нуля.

Microsoft Research утверждает, что во время прохождения Code Hunt игроки освоят самые разные темы, связанные с программированием: алгоритмические и условные операторы, строки, циклы и алгоритмы сортировки. Разнообразие заданий должно сделать игру интересной и для более опытных программистов, которые также смогут почерпнуть для себя что-то новое.

Игроки могут не только выполнять стандартные задания, но и разрабатывать собственные уровни в разделе игры Extras. Также существует возможность прохождения уровней, разработанных другими пользователями Code Hunt. Весь код, используемый в игре, доступен по лицензии, которая позволяет использовать его для организации открытых и закрытых соревнований по программированию.

#microsoft #программирование #обучение #геймификация #Code_Hunt

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
Статьи по теме
Девять сервисов для обучения программированию
Facebook начал прием заявок в программу помощи разработчикам FbStart
{ "author_name": "Alexander Lashkov", "author_type": "self", "tags": ["\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435","\u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435","\u0433\u0435\u0439\u043c\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f","microsoft","code_hunt"], "comments": 12, "likes": 15, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 3812, "is_wide": true }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15395' + '50799') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 3812, "author_id": 729, "diff_limit": 1000, "urls": {"diff":"\/comments\/3812\/get","add":"\/comments\/3812\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/3812"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

12 комментариев 12 комм.

Популярные

По порядку

Написать комментарий...
3

А мне вот интересно, г-н Загоруйко следит за такими метриками (делает рисёрч) как кол-во комментариев под статьями, нажатия на лайк, твит и прочую пользовательскую вовлеченность?
У меня твердое ощущение, что в последнее время блок к комментриями почти всегда пуст.

Ответить
0

Это неправда. Просто все ушли играть и программировать, очевидно же

Ответить
0

Это точно. Сначала потерли старые суперские комменты, которые были интереснее статей. А сейчас или людей стало меньше, либо огромный потом постов не дает вовлеченности.

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

0

Напомнило:

7 элементов системы образования XXI века
http://slon.ru/ipad/7_elementov_sistemy_obrazovaniya_xxi_veka-786760.xhtml

Ответить
0

Я один застрял на java lvl 1.06 ?

Ответить
0

Не один, я уже 30 минут на 1.06

Ответить
0

Аналогично. Залип тут и забросил, ну его в бейсик по самый паскаль:)

Ответить
0

Подсказка: разделите некое число на X

Ответить
0

1.12 залип

Ответить
0

Налуркайте в википедии Деление с остатком.

Ответить
0

Чо то нифига не понял как делать 2.01

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Команда калифорнийского проекта
оказалась нейронной сетью
Подписаться на push-уведомления