P2HACKS2025 勉強会基礎編

9.3K Views

November 16, 25

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

P2HACKS 勉強会 〜 基礎編 〜

2.

本資料について 本資料は、2025年11⽉17⽇に公⽴はこだて未来⼤学で開催された、 P2HACKS2025 勉強会 〜基礎編〜の勉強会資料です。 本資料は、P2HACKS 2022開催時のコアメンバーであるゆひ⽒が、 「P2HACKS2022 勉強会〜基礎編〜」と題して作成したものをベースと しています。P2HACKS 2024からは、あずらたがこの資料を引き継ぎ、 資料を書き換えながら使っています。 公開するにあたって、あずらたが責任をとれる画像以外は、画像を図形に 置き換えております。 本資料のベースを作っていただいたゆひ⽒に感謝の意を表明しつつ、本資料を 公開いたします。

3.

今⽇の⽬的 ● 講義を受講したあと、ハッカソン⾃体についてや、ハッカソンの 乗り切り⽅について知っている状態になっている

4.

今⽇の内容 1. ハッカソンとは? 2. アイディアの出し⽅ 3. 開発の進め⽅ 4. 発表のやり⽅ 5. その他こまごまとしたトピック

5.

ハッカソンとは?

8.

ハッカソンには何かしらテーマがある 過去のテーマ例: ● 未来 ● ひんやり ● フラッシュ テーマに沿っているか?というのも1つの評価軸

9.

ハッカソンの流れ アイデアソン 開発 発表

10.

各フェーズのゴール アイデアソン ⬜ どのようなプロダクトを作るか決める 開発 ⬜ 動くプロダクトを作る 発表 ⬜ プロダクトの魅⼒を伝える

11.

アイデアの出し⽅

12.

アイデアってどう考えるんだろう? アイデアはどう考えればよいか、1分くらい考えてみよう 例: 思いつき, 定番を調べてみる, etc...

13.

答え どんな回答でも正解! というか、正解はない

14.

アイデア出しには⾊んな⽅法がある ● 連想ゲーム ● ブレスト・KJ法 ● 強制連想法

15.

連想ゲーム マインドマップで 思いついたことを つらつら書き連ねる (画像⾮公開)

16.

連想ゲームでやるなら? 連想する⾔葉を書き出す ⾔葉の定義について調べてみる 気になった事象を整理 考えた事象を元にサポートアイデアを考える

17.

「アピール」がテーマなら... 連想する⾔葉を 書き出す ⾔葉の定義について 調べてみる SNS, ⼈間以外へのアピール, ... そもそもアピールってどういうもの? ⇒ 訴えかけること! 気になった事象を整理 発⾔をでかくするの⾯⽩そうだな... 考えた事象を元に サポートアイデアを考える 発⾔をでかくする意味って何? ⇒ ⽬⽴ちたいから?

18.

ブレスト・KJ法 ブレインストーミングでいっぱい考えて、KJ法でまとめるやり⽅ ● ブレインストーミング ○ 「批判をしない」「⾃由奔放に」「質より量」「連想と結合」の4原則で、 とにかく⾊んなアイデアを書き出す ● KJ法 ○ 書き出したアイデアをグルーピングして、グループごとの関係性や評価を⾏う 参照元: https://www.ritsumei.ac.jp/~yamai/kj.htm

19.

ブレスト・KJ法の例 フィールドワークの感想を ふせんに書き出しているようす 場所ごとに分けて、 更にそれぞれの場所の感想を グルーピングしている (画像⾮公開)

20.

強制連想法 ⇒ 2つのものを強制的に関連づけて、アイデアを出す⽅法 例えば、(テーマ)×(変数)で無理⽮理アイデアを出す (変数)には、テーマとは全く関係のないことを⼊れる AIにしりとりさせた結果を⼊れてみたりする

21.

例えば「フラッシュ」なら ● 海苔 × フラッシュ = 週刊誌の編集者になりきって、記事の写真に 海苔を載せるアプリ ● 輪郭 × フラッシュ = フラッシュ撮影で撮ったときに出た、 輪郭の美しさを競うアプリ ● 空港 × フラッシュ = ...

22.

各フェーズのゴール アイデアソン ✅ どのようなプロダクトを作るか決める 開発 ⬜ 動くプロダクトを作る 発表 ⬜ プロダクトの魅⼒を伝える

23.

開発の進め⽅

24.

よっしゃアイデア決めた!開発するぞ〜! ...で、何から⼿をつける?

25.

プログラミングするまでに必要なこと ● 機能の洗い出し ● 対象プラットフォームの決定 ● 使うツールの決定 ● 画⾯構成の決定 意外と多い

26.

プログラミングするまでに必要なこと ● 機能の洗い出し ● 対象プラットフォームの決定 ● 使うツールの決定 ● 画⾯構成の決定 意外と多い

27.

「機能を洗い出す」とは? ⇒ 「プロダクトがやること」を明確する

28.

どうやって機能を洗い出すか? ⇒ ユーザーとプロダクトの間で「誰が何をするか」というストーリーを 作って境界線を引き、システムがやること1つ1つを機能とする 例: サンタが近づくとブレーカーが落ちるプロダクト 1. サンタがユーザーの家に近づく 2. (使⽤者の家にある) システムがサンタの接近を検知 3. システムがブレーカーを落とす

29.

プログラミングするまでに必要なこと ● ● ● ● 機能の洗い出し 対象プラットフォームの決定 使うツールの決定 画⾯構成の決定 意外と多い

31.

対象プラットフォームの決定 チームによっては最初から決めている場合や、 開発するプロダクトによっては選択肢がない場合も それぞれできることも異なるので、事前に調べておこう!

32.

プログラミングするまでに必要なこと ● 機能の洗い出し ● 対象プラットフォームの決定 ● 使うツールの決定 ● 画⾯構成の決定 意外と多い

33.

開発に必要なツール ● 開発ツール ○ 何で作るか? ● コミュニケーションツール ○ どう連絡をとりあうか? ● ソースコード管理ツール ○ 書いたコードはどう管理するか? ● タスク管理ツール ○ やるべきことはどう管理するか?

34.

開発に必要なツール ● 開発ツール ○ 何で作るか? ● コミュニケーションツール ○ どう連絡をとりあうか? ● ソースコード管理ツール ○ 書いたコードはどう管理するか? ● タスク管理ツール ○ やるべきことはどう管理するか? 先ほどの 「対象プラットフォームの決定」 を参照

35.

開発に必要なツール ● 開発ツール ○ 何で作るか? ● コミュニケーションツール ○ どう連絡をとりあうか? ● ソースコード管理ツール ○ 書いたコードはどう管理するか? ● タスク管理ツール ○ やるべきことはどう管理するか?

36.

代表的なコミュニケーションツール ● Slack ○ ○ ビジネス向けチャットツール Googleカレンダー・Google Driveなどとの連携が可能 ● Discord ○ ○ ○ ゲームに特化したチャットツール ここ数年は多くの開発者コミュニティがDiscordを使っている P2HACKS 2025で全体連絡に使⽤

37.

開発に必要なツール ● 開発ツール ○ どれで作るか? ● コミュニケーションツール ○ どう連絡をとりあうか? ● ソースコード管理ツール ○ 書いたコードはどう管理するか? ● タスク管理ツール ○ やるべきことはどう管理するか?

38.

別にGoogle Driveとかでよくない? ⇒ 変更が競合して、何が最新版かわからなくなるのでおすすめしない 例: レポートのファイル名 どれが最新なのかわからない・新しい版を作るたびに容量が2倍3倍... バージョン管理ツールは、これらの問題を解決するための専⽤ツール

39.

ソースコード管理ツールはGitがデファクトスタンダード ● Git ● Subversion ● Mercurial 技術質問サイト「Stack Overflow」の調査では、 回答者の9割がGitを使って開発している* https://survey.stackoverflow.co/2021#section-most-popular-technologies-other-tools

40.

GitHubで歴史をやりとりする Gitで変更を記録して、GitHubにアップロードすると、 他の⼈がGitHubを介して、⼿元に他の⼈の変更を持ってこれる GitHub Git 変更を追加 Git 変更を追加 歴史 歴史 歴史 他の⼈の 変更を取得 他の⼈の 変更を取得

41.

GitHubにあって、Gitにない機能 ● ● ● ● ● 主にプロジェクト管理に関する機能 Issue機能 ⇒ コードの変更とプロジェクトの管理が紐付く Pull Request機能 このあたりは、「タスク管理」で解説 Wiki機能 プロジェクト機能 (GitHub Project) CI/CD機能 (GitHub Actions)

42.

実践編(Git/GitHub勉強会)の宣伝 実践編として、Git/GitHub勉強会をします ⽇時: 11/18 18:10〜19:40 場所: 594教室 GitやGitHubについて、最低限コード提出に必要な内容で実施予定

43.

開発に必要なツール ● 開発ツール ○ 何で作るか? ● コミュニケーションツール ○ どう連絡をとりあうか? ● ソースコード管理ツール ○ 書いたコードはどう管理するか? ● タスク管理ツール ○ やるべきことはどう管理するか?

44.

ハッカソン中によくあること 「あれ終わった!」「これ終わった!」という連絡が⾶び交う そしてその情報はチャットの海に流される...

45.

タスク管理ツールを使うメリット ⇒ タスクの担当者・優先度・完了したか等、現状が可視化でき、 戦略に活かすことができる これによって、 ● やるべきことの漏れ抜けを防⽌できる ● 「依存する機能ができるから、先にこっちを仕上げよう」といった 判断もできるようになる

46.

Issue 実装したい機能1つ1つを ”Issue” として⽴てられる

47.

GitHub Project Issueをまとめて いい感じに表⽰してくれる 機能 (画像⾮公開)

48.

ちなみにハッカソン運営もタスク管理をしています

49.

プログラミングするまでに必要なこと ● ● ● ● 機能の洗い出し 使う技術の決定 使うツールの決定 画⾯構成の決定 意外と多い

50.

画⾯構成の考え⽅ ⇒ ⼊⼒したい内容と出⼒したい内容によって考える 例: Suicaの残⾼に応じて懐が寒くなるプロダクト ● 懐が寒いかの判断材料にSuicaのアカウント連携が必要 ○ ● 懐を寒くするためにエアコンやファンと連携が必要 ○ ○ ● ⼊⼒: Suicaのアカウント情報 ⼊⼒: 連携をするための設定が必要 ここではSwitchbotのアカウント情報となっている 懐が寒いかどうかの判定を出⼒ ○ 出⼒: 現状の設定温度 ⇒ 「懐の温度を表⽰する画⾯」「各種設定をする画⾯」の2つが必要

51.

画⾯のイメージはとにかく共有しよう 例: Figma 例: 紙

52.

各フェーズのゴール アイデアソン ✅ どのようなプロダクトを作るか決める 開発 ✅ 動くプロダクトを作る 発表 ⬜ プロダクトの魅⼒を伝える

53.

発表のやり⽅

54.

審査基準を⾒てみる

55.

審査基準を⾒てみる(補⾜) 発表⾃体の評価もあるが、 発表でこれらを補完する という要素もある

56.

伝えるべき情報とそうでない情報 審査基準に則るなら、伝えるべき情報は、例えば次の通り ● ● ● ● ● プロダクトのコンセプト プロダクトの魅⼒的な部分 動作デモ 使⽤技術 開発過程 逆にそれ以外の内容を盛り込むと、ノイズになってしまう

57.

審査基準を⾒てみる ● 筋道を⽴てて発表しているか ● 発表⽅法の⼯夫をしているか ● 質疑応答の際に意図を汲み獲れるか ⇒ これらをやればいい

58.

筋道を⽴てるとは? どういう課題があるのか (Why) どうすれば課題は解決するのか (How) プロダクトの提案 (What)

59.

これはゴールデンサークル理論と呼ばれる⽅法 https://youtu.be/qp0HIF3SfI4?si=vircFcIj3FIj2E-n

60.

質疑応答の際に意図を汲み取り、返答するには? ⇒ ⾃分たちの⾔いたいことだけ⾔わない・質問をちゃんと理解する まず⼤事なのは、相⼿の主張を勘違いしないこと 質問に対して⾃分の理解が怪しいなと思ったら、ちゃんと聞き返す ⾃分たちのスタンス (解決の⽅向性) に合わせて、 「⾃分たちはこういうスタンスなので、こう思っています」という ⾒解を返すこと

61.

各フェーズのゴール アイデアソン ✅ どのようなプロダクトを作るか決める 開発 ✅ 動くプロダクトを作る 発表 ✅ プロダクトの魅⼒を伝える

62.

その他こまごまとしたトピック

63.

その他こまごまとしたトピック ● メンターをうまく使おう ● APIキーの扱いには注意しよう

64.

メンターをうまく使おう

65.

P2HACKSではメンターがつきます! 期間中は、メンターが技術相談に乗ってくれます! でもメンターをうまく使えないと、損をしてしまいます...

66.

良くない質問の例 「エラーが出てしまい動きません。どうしたら直りますか?」 「ChatGPTに聞いてみたけどうまく動かないです」 こういった質問の場合、通常よりも解決に時間を要してしまいます

67.

メンターはこういうことを考えている ● ⾃分が対応できる技術領域? ● そもそも何を実現したいんだろう? ● 何を解決してほしいんだろう? ● 何か⾒落しをしてないだろうか?

68.

だから、こういう情報を与えよう ● ⾃分が対応できる技術領域? ⇒ 環境は何を使っているのか? ● そもそも何を実現したいんだろう? ⇒ 何を解決したいのか? ● 何を解決してほしいんだろう? ⇒ 妨げるものは何か?(エラーの内容は?) ● 何か⾒落しをしてないだろうか? ⇒ 質問者⾃⾝がやった対応は? とは⾔いつつ、 やりたいことが 具体的に定まっていれば、 対応するのに⼗分です

69.

ベストな質問の例 ReactとTypeScriptで◯◯◯する機能を実装したいと思い、次の記事を参考に作成して います。 https://qiita.com/... しかし、`HogefugaException`というエラーが出てしまい、先に進めていません。 次のような対応は参照しましたが、改善しませんでした。 ● https://qiita.com/... 環境は以下のとおりです。 ● ● MacBook Pro M1チップ Node.js v20.16.0

70.

コミュニケーションツールの装飾機能も活⽤しよう 全く同じ内容ですが、どちらが⾒やすいですか?

71.

Discordでは⽂字の装飾が可能 ソースコードはバッククォート(Shift + @)3つで囲むとよい ```java ← ここに言語の名前を入れる package me.azurata.example; import java.util.*; public class Main { public static void main (String[] args) { System.out.println(“Hello, world!”); } } ```

72.

APIキーの扱いには注意しよう

73.

APIキーとは ⇒ 外部Web APIを使⽤するときに必要なパスワードのようなもの APIキーが必要なAPIサービスの例 ● ● ● ● ● Google Maps Platform APIs Instagram API Open AI API Discord API etc...

74.

Discord APIを使った例 @bot.event async def on_ready(): print(f'{bot.user.name} としてログインしました') bot_token = "..." bot.run(token=bot_token) # ここでAPIキー(トークン)を使っている

75.

APIキーが漏れるとサービスを不正利⽤される APIキーが使える = そのサービスを利⽤できる 皆が⾒える場所にそのまま上げてしまうと、 勝⼿にサービスを使われてしまう cf. AWS アクセスキー

76.

APIキーは.envファイルで管理する とはいえ、APIキーがないとAPIにアクセスできない ⇒ .envというファイルを作って記述するとよい 「dotenv」などと呼ばれるライブラリを使⽤すると、プログラムから 動的に.envファイルの中⾝を読み込むことができる そして、.envファイルは、皆の⾒える場所に置かないようにする

77.

実例(Python)

78.

質問コーナー

79.

再掲: 実践編 (Git/GitHub勉強会) の宣伝 実践編として、Git/GitHub勉強会をします ⽇時: 11/18 18:10〜19:40 場所: 594教室 GitやGitHubについて、最低限コード提出に必要な内容で実施予定

80.

ハッカソンエントリー https://p2hacks2025.github.io/ 公式X: @p2hacks エントリーお待ちしています!