デジタル人材の育成
行動科学、ナッジ
行動科学の知見を用いて行動変容を促すナッジの活用が進んでいます。本講義ではより良い行動をとれるように促す活用事例や最新の研究を紹介しつつ、近年盛んに議論されているナッジの悪用やパーソナライズド・ナッジについて触れながら、サイバーセキュリティにナッジを適用するメリットや可能性を議論します。
VR、MR、AR、XR、プライバシー
国際政治、法律、制度
本セッションでは、国際政治や国際的な紛争が、サイバーセキュリティに大きな影響を及ぼすことを、実例に基づき解説します。そして、サイバーセキュリティ問題の解決は、技術のみでなく、より広範な知識が求められるということを、「法や制度をハックする」という切り口を用いて解説します。セキュリティキャンプ全国大会で技術の研鑽に励まれる皆さんに、技術を身に着けることの意味を考える機会を提供できれば幸いです。
思考法、グループディスカッション
コアな技術を深く探求していくと、どこかで「何のためにやるのか」というような根本的な問いが頭の中に浮かんだり、他者から投げかけられることがあります。そのような問いに対して自分なりに考えて自信を持って回答できると、長く継続して好きな技術を探求する際の大きな支えになります。
本講義では、自分の得意な技術や好きな技術、そしてネクストキャンプを通じて学んだ技術を題材に、その技術の本質が何かを改めて見つめ直します。
そして、改めてその技術を取り巻く情報を整理し、魅力や価値、将来の展望などを他者へプレゼンテーションすることで、継続的にモチベーション高く技術を探求できる支えをつくります。
並列化、GPGPU、グラフィック、組み込み、アセンブリ
GPUはグラフィック計算の他にAIや画像処理に幅広く利用されている. GPUのプログラミングはCUDA/OpenGL/OpenCL等,半導体企業が用意した高級な言語での開発が主流である. また,特殊なプロセッサ構造をしていることから低レベルプログラミングの難易度は高く,知見も少ない. そこで,本講義ではGPUの詳細が解析されているRaspberry Piでアセンブリ言語・機械語レベルの低級GPUプログラミングを通してCPUとは違うGPUの内部構造に触れ、特徴を活かしたGPUソフトウェア実装を探求してもらう. その結果から,アーキテクチャを意識したGPUプログラミングで得られる価値について一緒に考えたいと思う. 皆さんとGPUの新たな活用を議論することを楽しみにしている.
Verilog-HDL、CPU、ModelSym、ステートマシン、FPGA
オリジナル4ビットCPU(DL166)を提示し、このCPUを記述したVerilog-HDLのソースコードを追うことでCPUの内部を理解します。その後、PC上で動作するシミュレターを用いてCPUの挙動を動的に解析します。
演習ではこの4ビットCPUをベースに8ビットCPUにアップグレードする演習に挑戦してもらいます。
これらにより、CPUに潜む様々な脆弱性を認識するための視点を提供します。
TDD、モブプログラミング、ピアレビュー、アジャイル
本講義ではTDDとモブプログラミングを体験、練習します。未体験の方も、実績のある2つの手法を学んでプログラミング力を高めることができます。
TDDはTest-Driven Developmentの略です。これは、実装より先にテストコードを書くことを基本とする開発の進め方です。先にテストを作成するということは、関数やモジュールの中身を実装する前に仕様を設計することを意味します。また、テストを先に作ることで、テスト可能な実装を推し進めることができ、ソフトウェア品質の向上につながります。
モブプログラミングは複数人で1台のパソコンを使ってコーディングする開発技術です。実際に試したことのある人は少ないかもしれませんが、とても実用的な技術です。1人がドライバー、その他がナビゲーターに分かれ、ナビゲーターの指示によってドライバーがコーディングします。チーム全体でコードの内容について共通の理解を得ることができ、知識の共有、スキル伝達などを達成できる手法です。
本講義では、TDDにモブプログラミングを組み合わせてソフトウェアを開発する方法を学びます。始めから終わりまで一通り体験し、他の現場で応用できる力を身につけます。頭の中に浮かんだ設計を他人に伝える力も養うことができます。
アセンブリ言語、PDP-7、ベアメタルプログラミング
SimHというシミュレータを使用して、PDP-7という1960年代のマシンをアセンブリ言語で直接制御するベアメタルプログラミングを行います。SimHはPDPシリーズ等の歴史的なマシンをPC上でシミュレーションするソフトウェアです。これを用いると現代のPC上で過去の歴史的なマシンを動かしてみることができます。SimHはアセンブラを内蔵しており、SimHの上でアセンブリ言語によるプログラミングを行うことも可能です。講義では、アセンブラ入門も兼ねてまずはPDP-7上での演算の仕方等から始め、画面入出力(TTY)やシミュレーションされた当時のディスプレイ(ベクタースキャンディスプレイ)への描画等を行う予定です。PDP-7は現代のOSにも大きな影響を与えているUNIXが生まれたマシンです。そのマシンを今体験してみることで、新たな価値を生み出すOSについて考えるきっかけになればと考えています。
ハードウェア、組込、マイコン、センサー、衛星開発
CanSat(カンサット)開発を通じて組み込みソフトウェアの基礎やハードウェアを制御する難しさと楽しさを学びます。CanSatとは空き缶サイズの模擬人工衛星のことを指します。講義では講師の制作したローバータイプのCanSat開発キットを使用し、受講生同士でチームを組み、CanSatの制御プログラムを開発してもらいます。各種センサーの特徴を理解する必要性やそれらの制御プログラムへの反映方法など、ソフトウェアのみの開発ではわからないハードウェア開発の困難さと面白さを体感することを目指します。 宇宙に興味が無くとも、電子工学、小型ロボットなどの分野に興味のある方も楽しめる内容かと思います。
講義で使用するCanSat開発キットのWebページ:
オリジナル競技、競技運営、エンターテイメント
本講義では,セキュリティに関連する競技をゼロから自作します.
コンセプトを自ら考え,レギュレーションを策定し,実際に競技を実施してみるところまでが目標です.
競技を自分で生み出し,実施するという経験がある人はそう多くないと思いますが,コンセプトを決めたりレギュレーションを策定する過程で主催者自身も非常に多くのことを学ぶことができます.
競技を生み出すに当たって大切なのは「この競技を通して参加者に何を感じてもらうか,何を学んでもらうか」というメッセージ性です.
ただ楽しいだけではなく,競技を通して「こんな技術があるんだよ」とか「こんなことが知らないうちに学べるよ」といった,参加者に伝えたいことを考えながら競技を作るとグッと面白くなると思います.
皆さんの自由な発想で新しい競技を作ってみませんか?