Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DojoCon2021-Siv3D
Search
Ryo Suzuki
December 18, 2021
Education
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DojoCon2021-Siv3D
Ryo Suzuki
December 18, 2021
More Decks by Ryo Suzuki
See All by Ryo Suzuki
C++ MIX #9
cpp
4
5.4k
tfcon-2022-cpp
cpp
5
8.1k
JSSST2021-Siv3D
cpp
1
1k
CEDEC2020
cpp
54
46k
Other Decks in Education
See All in Education
第2部-高校生とAI活用/high-school2026-2
okana2ki
0
160
批判的応用言語学ワークショップ(2026-08-12 お茶の⽔⼥⼦⼤学)
terasawat
0
190
私たちはなんでテストするんだっけ? Ver.東北IT物産展2026 in 会津若松
camel_404
3
190
AIがコードを書く時代に、何を教えるのか / What Should We Teach in the Age of AI-Generated Code?
ichiroc
1
550
解決策を教えても次期リーダーは育たない ─ 器の発達に伴走するために / Partnering with leaders in their vertical development
matsu0228
1
710
Geografía y fútbol. Atlanta. la megalópolis del fútbol
juanmartin2026
1
12k
観察、仮説、実行、検証、計画、提案を一年で3000回トレーニングする方法/3000 Thinking Loops in 365 Days
moriyuya
5
1.3k
形骸化しない社内勉強会の取り組み - オーナーシップの作り方 / In-house study session
soudai
PRO
1
260
An Experiment in "Cross-Cultural Exchange" as a Method for Content Creation
naoji_taniguchi_ksk_0827
0
170
SFプロトタイピング体験(滝中学校)
yusk1450
PRO
0
130
AIの力を100%引き出すために
frievea
0
500
Gitがない時代 インターネットがない時代の 開発話
sapi_kawahara
0
390
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
What's in a price? How to price your products and services
michaelherold
247
13k
Amusing Abliteration
ianozsvald
1
290
Between Models and Reality
mayunak
4
450
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
700
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Designing for Performance
lara
611
70k
WENDY [Excerpt]
tessaabrams
13
39k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
980
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
Transcript
プログラミング研究と CoderDojo 鈴木 遼 (早稲田大学 / Siv3D) C++ ライブラリ「Siv3D」の開発と CoderDojo
でのワークショップ事例
プログラミングを楽しく簡単にする活動 1/4 小中高生の開発者に、開発費・技術メンタリングを支援する U-17 未踏ジュニアのメンター (2016~) 画像引用: https://jr.mitou.org/projects/
プログラミングを楽しく簡単にする活動 2/4 C++ プログラミングを学べる本の出版、Web サイトの運営 『冒険で学ぶ はじめてのプログラミング』 技術評論社 cppmap.github.io CEDEC
2020 での講演
プログラミングを楽しく簡単にする活動 3/4 C++ / Siv3D / Viscuit を使ったワークショップ 子ども~社会人へのオンライン個人レッスン CoderDojo
宜野湾 & 浦添
プログラミングを楽しく簡単にする活動 4/4 新しいプログラミングツールの開発と研究 Siv3D Siv3D for Kids Enrect
中・高・大学生 Siv3D ユーザの活躍 1/4 ゲームやメディアアートを制作 英語・中国語版も リリース 海外 YouTuber の
ゲーム実況も多数 画像引用: https://twitter.com/Shibaken_8128/status/1344967321454931969 https://twitter.com/r193333333/status/1377613363929247746 https://twitter.com/takara2314/status/1415649264085069829 https://www.freem.ne.jp/win/game/14167 https://www.freem.ne.jp/win/game/14961
中・高・大学生 Siv3D ユーザの活躍 2/4 十代のクリエータが Siv3D 作品でコンテスト入賞 PCN こどもプロコン 最優秀賞
日本ゲーム大賞 U-18 部門予選通過 学力向上アプリコンテスト デザイン部門賞 画像引用: https://pcn.club/contest/contest10.html https://youtu.be/J19GBAjeBH8 https://youtu.be/2eX_rN9E_hA
中・高・大学生 Siv3D ユーザの活躍 3/4 競技プログラミングで Siv3D を活用 高専プロコンでは 10 校以上が
Siv3D を使うプログラムで大会出場 競プロコンテストサイト AtCoder の C++ コースでも紹介 写真引用: https://www.cresco.co.jp/news/2021/09/13/210913_corp.html
中・高・大学生 Siv3D ユーザの活躍 4/4 十代のオープンソース開発者を育成 豆知識: Siv3D の最年少コミッタは 現在 CoderDojo
のメンター Siv3D 実装会の様子 (2019 年)
Siv3D って何? 1/2 C++ で楽しく簡単にゲームやアプリを作れるライブラリ # include <Siv3D.hpp> void Main()
{ Scene::SetBackground(ColorF{ 0.8, 0.9, 1.0 }); const Texture food{ U"🍿"_emoji }; const Texture bird{ U"🐥"_emoji }; while (System::Update()) { Circle{ Scene::Center(), 100 }.draw(); food.drawAt(Scene::Center()); bird.drawAt(Cursor::Pos()); } }
Siv3D って何? 2/2 2016 年からオープンソースで公開、直近 1 年間で 1 万ダウンロード Windows,
macOS, Linux, Web で動くアプリを無料で開発
世界でもっとも使われているプログラミング言語の 1 つ Windows (OS) Google Chrome (ブラウザ) Photoshop (写真編集ソフト)
Arduino (マイクロコンピュータ) Word, Excel (文書作成) Unreal Engine (ゲームエンジン) Minecraft (ゲーム) Google, YouTube, Amazon 自動運転・ロボット制御システム 金融取引システム C++ って何? 1/2
• コンピュータの性能を最大限に引き出すソフトウェアの開発が得意 • C++ プログラマは世界で 450 万人以上 • 世界中のパソコンやスマートフォン、ゲーム機や家電、企業や工場、 大学、研究所で動くソフトウェアの開発に使われる
• AtCoder や情報オリンピック、パソコン甲子園など 競技プログラミングの分野でも人気が高い C++ って何? 2/2
C++ のパワーを引き出す Siv3D 難易度が高い C++ を、短く & たくさんの機能を使えるよう強化 # include
<Siv3D.hpp> void Main() { Size brickSize{ 40, 20 }; double speed = 480.0; Vec2 ballVelocity{ 0, -speed }; Circle ball{ 400, 400, 8 }; Array<Rect> bricks; for (auto p : step(Size{ (Scene::Width() / brickSize.x), 5 })) bricks << Rect{ (p.x * brickSize.x), (60 + p.y * brickSize.y), brickSize }; while (System::Update()) { Rect paddle{ Arg::center(Cursor::Pos().x, 500), 60, 10 }; ball.moveBy(ballVelocity * Scene::DeltaTime()); for (auto it = bricks.begin(); it != bricks.end(); ++it) if (it->intersects(ball)) { (it->bottom().intersects(ball) || it->top().intersects(ball) ? ballVelocity.y : ballVelocity.x) *= -1; bricks.erase(it); break; } if (ball.y < 0 && ballVelocity.y < 0) ballVelocity.y *= -1; if ((ball.x < 0 && ballVelocity.x < 0) || (Scene::Width() < ball.x && 0 < ballVelocity.x)) ballVelocity.x *= -1; if (0 < ballVelocity.y && paddle.intersects(ball)) ballVelocity = Vec2{ (ball.x - paddle.center().x) * 10, -ballVelocity.y }.setLength(speed); for (const auto& brick : bricks) brick.stretched(-1).draw(HSV{ brick.y - 40 }); ball.draw(); paddle.draw(); } } C++ で自力で作ると 500 行ぐらいかかる Siv3D は 27 行
Siv3D for Kids って何? タッチ操作で Siv3D のゲームプログラムを改造できるプログラミング 体験ツール。パソコンに詳しい先生がいなくても楽しめるのが特長 これ自体も Siv3D
で作られてる
CoderDojo との関わり 1/4 • ソフトウェア研究では「どれだけ使われたか」も重要 • たくさんの人に使ってもらうことで改善も進む • 東京ではワークショップを開催しやすいが、それ以外では難しい (参加者やスタッフを集めるのが難しい、良い会場がわからない)
• 各地の高専・大学のコンピュータサークル、CoderDojo, プログラミング教室と連携して勉強会やワークショップを実施
CoderDojo との関わり 2/4 • といっても、いきなり知らない人に頼むのは難しい • IPA 未踏、U-17 未踏ジュニア、プログラミングイベント、 SNS
などで交流のある CoderDojo 関係者が何人かいた • 私のこういうツールを使って、こういうワークショップをしたいと 相談したら快諾してくれた • ありがとうございます!
CoderDojo との関わり 3/4 Siv3D Siv3D for Kids Enrect CoderDojo 金沢
CoderDojo 宜野湾 CoderDojo 浦添 Siv3D for Kids
CoderDojo との関わり 4/4 Siv3D Siv3D for Kids CoderDojo 静岡 CoderDojo
柏 Siv3D for Kids 写真引用: https://coderdojo-shizuoka.org/9th 写真はCoderDojo 柏提供
CoderDojo との連携で感じたこと • ローカルの人々に広くリーチし多くの参加者を集めることができた • 運営がこなれていて、スムーズにイベントを進められた • 学校など一般での開催と比べて、メンターのサポートが頼もしい • 好奇心が高く、新しい使い方やバグを発見するニンジャたち
パソコンの数や機種などの制約に注意 ワークショップ用の ノート PC を 自分でも16 台所有 アップデート 作業は大変 各地のコミュニティとの連携のために
1/3
現地のコミュニティの活動実績になるような形式に 各地のコミュニティとの連携のために 2/3
普段とは違うローカルの参加者を発掘する機会にしてもらう • C++ を学べる • 遠くの大学からゲストがやってくる • 親子で参加するイベント ローカルコミュニティの活動を外部の人に披露する機会にも •
ローカルの参加者が普段の活動や宣伝を発表する LT(ライトニング・トーク)タイムを設けることも 各地のコミュニティとの連携のために 3/3
プログラミングツールを研究する理由 • 生きている間に最大限すごい未来を見てみたい • そのためには、一人でも多くの人がコンピューターの力を活用し て、いろいろな分野を発展させていく必要がある • プログラミングツールの開発は、数万人~数百万人のソフトウェ ア開発者の生産性を底上げ、プログラミングに取り組む人を増や すことができる強力な手段
• Scratch など「道具」を使っての開発はしていても、 道具を作る人に出会う機会は少ない。視野が広がるきっかけに • 気になるツールの開発者・研究者に声をかけてみてください • 「受け入れ」を PR するのもあり?
• 双方にメリットのある WS デザインを考えましょう • プログラミングツール開発に携わる人が Dojo から生まれると嬉しい (おわりに) CoderDojo へのメッセージ