Save 37% off PRO during our Black Friday Sale! »

ゲームでコンピューターの仕組みを学ぶ ~Human Resource Machine~

ゲームでコンピューターの仕組みを学ぶ ~Human Resource Machine~

CPUやメモリの仕組みに興味を持つエンジニアは多いと思います。
しかし、それらを効果的に学ぶのは、とても大変です。

例えば、環境構築の問題。
例えば、学習環境(知識を得る方法等)の問題。
例えば、機能が多すぎて扱いきれない問題。

でも、それをお手軽にゲームで学ぶことができるんです。
そう、「Human Resource Machine」ならね!

実際のゲーム画面を交えつつ、5つのポイントから、このゲームがCPUやメモリの仕組みの学習にどう役立つのかを解説していきます。

----

このスライド資料は「ミライトデザイン社」がYoutubeで公開している動画
「現役エンジニアが最近話題のプログラミングのゲームやってみた」シリーズに影響を受けて作成しました。

Miraito Design, Inc. の Youtube https://www.youtube.com/c/MiraitoDesignInc/
#1 https://www.youtube.com/watch?v=_zZ0GzY2Hv0
#2 https://www.youtube.com/watch?v=5qye8GyFkWo

----

このスライドを利用して、以下のイベントでLTを行いました。
2021年7月21日 エンジニアの勉強法ハックLT- vol.5 #studyhacklt
https://rakus.connpass.com/event/216412/

Bf7fe621f4fe1615c228ef8a79b87282?s=128

ShirayanagiRyuji

July 21, 2021
Tweet

Transcript

  1. ゲームで コンピューターの仕組みを学ぶ ~ Human Resource Machine ~ 白栁隆司

  2. 自己紹介 エンジニアカウンセラー 白栁 隆司 Youtubeに平日ほぼ毎日動画投稿中! #ほぼ日ITエンジニアニュース @IT 自分戦略研究所 エンジニアライフにて「コレがワタシの生きる様」連載中(木曜日) 4つのことを、ITエンジニアに勧めてます 1.

    傾聴によるコミュニケーション 2. メンタルヘルス(セルフケア) 3. セルフマネジメント 4. 日々の生活の中からエンジニアリングを学ぶ
  3. はじめに この動画はMiraitoDesign社がYoutubeチャンネルで公開 している「現役エンジニアが最近話題のプログラミングの ゲームやってみた」シリーズの動画にインスパイアを受け て作成しました。 https://www.youtube.com/c/MiraitoDesignInc

  4. 知りたい、でもハードルが高い! CPUの仕組みやメモリの動きを知りたい人は多い これらを机上で教えるのは大変!!(経験談) • 「メモリ空間」のイメージが難しい • 「アセンブラ」?よくわからん! • レジスタ?アーム?メモリと違うの?? etc...

  5. 実践で覚えればいいじゃない アセンブラ(CASLⅡ)Webシュミレーター https://www.chiba-fjb.ac.jp/fjb_labo/casl/index.html

  6. 実践で覚えればいいじゃない Paiza(C言語) ※C言語ならオンラインコーディング環境は沢山ある。 https://paiza.jp/

  7. 実践で覚えればいいじゃない アセンブラやC言語をやればいいけれど... やっぱりハードルが高い • フルスペックなので機能が多い(全部入り) • メモリ破壊ですぐ動かなくなる • 低級言語過ぎて人間はわからん etc...

  8. ゲームで覚えればいいじゃない Human Resource Machine ©Tomorrow Corporation ・STEAM ・WiiU ・iOS ・Android

    ・Nintendo Switch ※Swith版は解説付き
  9. 何故 Human Resoce Machine なのか? 1. 基本的なCPUとメモリの仕組みを再現 2. 限定された機能 3.

    【一人称】の的確さ 4. いろんなハードで手軽に遊べる 5. 最終的にはアルゴリズムゲームになる
  10. 1. 基本的なCPUとメモリの仕組みを再現 • 画面のそれぞれが、CPUやメモリに相当(次画面) • 命令の少なさもCUP準拠(泣) ◦ バリバリの低級言語仕様 • メモリ領域やコードにラベルを書ける辺りが

    ちょっと高級言語!
  11. 1. 基本的なCPUとメモリの仕組みを再現 レジスタ 【標準入力】 【メモリー(アドレス)】 (外部・主記憶装置) 【演算装置(プロセッサー)】+【レジスター】 ※レジスタは内部の一時記憶領域 【標準出力】

  12. 【標準入力】 【標準出力】 【メモリー(アドレス)】 (外部・主記憶装置) 【使用可能命令】 (低級言語)

  13. 【実行メモリー(アドレス) 】 【メモリー(アドレス)】 (外部・主記憶装置) 【演算装置(プロセッサー)】 ※人が持ってる部分が【レジスター】 (アキュムレーターのみ)

  14. 2. 限定された機能 • シンプル of シンプル ◦ 必要なものは揃ってる • 実行に必要なものが沢山

    ◦ 実行、ステップ実行、コード領域(3面) ラベル、アンドゥ、コピー&ペースト etc...
  15. 3. 【一人称】の的確さ • 【人】が中心 ◦ inbox : 人に入力 ◦ outbox

    : 人から出力 ◦ copyfrom : 人に指定メモリの情報を複写 ◦ copyto : 人から指定メモリへ情報を複写
  16. 3. 【一人称】の的確さ • 【CPU】が中心 ◦ inbox : CPUに入力 ◦ outbox

    : CPUから出力 ◦ copyfrom : CPUに指定メモリの情報を複写 ◦ copyto : CPUから指定メモリへ情報を複写
  17. 4. いろんなハードで遊べる • PlayStation系、Xbox系以外のハードなら遊べる?               (Wikipedia調べ) • オススメはNintendoSwitch版 ◦ 各問題の解説ペーパーが付いてくるらしい •

    Steam版+ネットの攻略記事でいいかも?
  18. 5. 最終的にはアルゴリズムゲームになる • 「アルゴリズムゲーム」だと感じられたら、 CPUとメモリの仕組みが理解できてると思っていい • 加減乗除に総和、素因数分解等、基本的なアルゴリズ ムは課題として用意されている • 最小ステップ、最短ステップというゲーム性

  19. おまけ. 足りないと感じたところ • 比較処理の中に同値比較がない ◦ ゼロ比較、マイナス比較は現実的な実装 • ビット演算系の実装がない ◦ ビット演算やシフト演算がない

    ◦ それを利用して解く課題がない為だろう
  20. おまけ2. ゼロ比較とマイナス比較の仕組み ビット演算で、とてもシンプルに実装できる 前提:2進数での数字表現の仕組み   2の乗数の組み合わせと符号での管理   

  21. おまけ2. ゼロ比較とマイナス比較の仕組み ◇ ゼロ比較の仕組み   この演算結果が「ゼロ」なら【真】とする

  22. おまけ2. ゼロ比較とマイナス比較の仕組み ◇ マイナス比較の仕組み   符号だけを取りだして「0/1」の判断ができる

  23. まとめ • Human Resource Machine は良いゲーム ◦ CPUとメモリの機能を程よく再現している ◦ 理解の目安も立てやすい

    • 続編?の7 Bilion Machine は機械操作的要素多 ◦ マルチスレッドの考え方とも言えるか?
  24. ご視聴ありがとうございました エンジニアカウンセラー 白栁隆司 CPUとメモリの仕組みは面白い!