本講義へのご参加をご検討いただき、ありがとうございます。 【問1:プログラミング自己アピール】 これまでのプログラミング経験について教えてください。 質問の背景:CDNの自作は、発展的なシステムソフトウェアのプログラミング課題です。受講生の皆さんには、何らかのプログラムを開発した経験があることを期待しています。特に、低レイヤの開発経験、システムプログラム、ネットワーク関連ソフトウェアの開発経験があれば、ぜひ教えてください。 以下の点について、特にお聞きしたいです: ・(強く推奨) 実際に書いたソースコード(GitHubなど、公開レポジトリへのリンクを歓迎します) ・ソフトウェアを開発した動機や背景、解決したかった課題 ・技術的に自信のある点 ・開発の際に参考にした文献・資料・コードなど ・(あると大きなプラス) 「なぜ〇〇という技術的手法を選んだのか?」その選択の理由(△△や⬜︎⬜︎ではなく〇〇を選んだ理由)を教えてください ・(あると大きなプラス) 開発時に苦労した点。例えば、どのようなバグに直面し、どのようにデバッグしたのかなど 補足: ・開発したソフトウェアが複数ある場合は、いくつ書いていただいても構いません。 ・技術的な側面を中心に記述してください。ソフトウェアの社会的意義などは深掘りしなくて大丈夫です(「自分が考える最強のHTTPサーバを作ってみたかった」などでもOKです)。 ・既存のドキュメントやレポートなどがある場合は、ぜひ共有してください。 【問2:インターネットって何?】 「ブラウザのURLバーに、 https://www.shonenjump.com/j/weeklyshonenjump/ を入力して決定キーを押した時になにが起こるか」を調べて、可能な限り詳しく説明してください。 質問の背景:CDNをざっくり説明すると「すごいウェブサーバ」と言うこともできます。しかし、その“すごさ”を理解するには、まず通常の「ウェブサーバ」と手元の端末の間で、どのような処理・データのやりとりが、どのようなプロトコルで行われているのかを把握することが肝要です。 回答にあたっての注意: 文献やウェブサイトを参考にした場合は、参考文献を必ず明記してください。 LLM(大規模言語モデル)を使用した場合は、「共有リンク」を記載するか、それが難しい場合は「LLMに与えたプロンプト」および「編集前の出力結果」を添付してください。 【問3:自由アピール】 問1ではプログラミング制作物にフォーカスしたものでしたが、他にあなたがアピールしたい点があれば、自由に記述してください。 例: ・既存のソフトウェアやハードウェアを組み合わせて複雑なシステムを構築した経験 ・他者のソフトウェアに脆弱性を発見した経験 ・興味や探究心をもって、既知・未知のシステムの動作原理を解明した経験 ・Go言語やC言語の利用経験(問1に記述していない内容に限ります) ▶︎特に、GoやC以外のシステムプログラミング言語で演習を行いたいと強く希望する場合は、講師が提供するサンプルを活用できません。そのため、GoやCのサンプルを読解し、同言語で実装できる能力があることを証明してください。 ・講義を通じて、具体的にやってみたいことがあれば教えてください。 【問4:事前学習について】 本講義では、8月のセキュリティ・キャンプ本開催に先立ち、オンラインによる事前講義および演習課題の実施を予定しています。 ご同意いただける場合は、「事前学習に同意する」とお答えください。 もし、何らかの事情で参加が難しい場合は、その旨をお知らせください。