We may earn an affiliate commission when you visit our partners.
きみの IT教室

本教材はPython というプログラミング言語を用いて、ゲームを制作しながらアルゴリズムを学ぶ入門書です。

Python はソフトウェア開発や学術研究の分野で広く用いられるようになり、企業や教育機関で使われる主要なプログラミング言語の1つになりました。 また、 基本情報技術者試験に Python が加わるなど、情報処理を学ぶ人たちにとっても触れる機会の多い言語になっています。

Python の人気が高まったのは、

・記述の仕方がシンプルで、他のプログラミング言語より短い行数でプログラムを組める

・記述したプログラムを即座に実行でき、開発効率に優れている

・ライブラリが豊富で、それらの多くが使いやすい

などの理由からです。

Python はプログラミング言語の中で特に学びやすく、誰もが習得できる言語であることも、広く普及した理由として挙げられるでしょう。

本書はアルゴリズムの学習に力を入れています。 初学者が理解できるようにプログラミングの基礎からスタートし、やさしいアルゴリズムから段階を踏んで高度な内容を学ぶ構成になっていますので、 どなたにも安心して手に取っていただけます。

Read more

本教材はPython というプログラミング言語を用いて、ゲームを制作しながらアルゴリズムを学ぶ入門書です。

Python はソフトウェア開発や学術研究の分野で広く用いられるようになり、企業や教育機関で使われる主要なプログラミング言語の1つになりました。 また、 基本情報技術者試験に Python が加わるなど、情報処理を学ぶ人たちにとっても触れる機会の多い言語になっています。

Python の人気が高まったのは、

・記述の仕方がシンプルで、他のプログラミング言語より短い行数でプログラムを組める

・記述したプログラムを即座に実行でき、開発効率に優れている

・ライブラリが豊富で、それらの多くが使いやすい

などの理由からです。

Python はプログラミング言語の中で特に学びやすく、誰もが習得できる言語であることも、広く普及した理由として挙げられるでしょう。

本書はアルゴリズムの学習に力を入れています。 初学者が理解できるようにプログラミングの基礎からスタートし、やさしいアルゴリズムから段階を踏んで高度な内容を学ぶ構成になっていますので、 どなたにも安心して手に取っていただけます。

ここで言うアルゴリズムとは、問題を解決するための手順や手法のことです。 アルゴリズムを学ぶとさまざまな問題を解決する力が伸びるといわれており、 しばらく前からアルゴリズムを学ぶ大切さが、 色々なところで説かれるようになりました。

アルゴリズムと聞くと難しそうと考えてしまう方もいるかもしれませんが、心配は無用です。本書はゲームを制作していく過程で色々なアルゴリズムを習得できるようになっています。

あなたも、ゲームを作りながら、プログラミングとアルゴリズムを楽しく学んでいきましょう.

Enroll now

What's inside

Learning objectives

  • Pythonでどのようなゲームができるのか知りたい方
  • Pythonを楽しく学びたい方
  • Pythonプログラミング技法
  • ゲームを作成するうちに、プログラミングのアルゴリズムも学ぶことができる
  • Pygamezeroでのゲームづくり
  • プログラミングに関わる数学的アルゴリズムの理解

Syllabus

pythonを実行するための開発環境を整えます
講師の紹介と講座の特徴
Pythonのインストール
VisualStudioCodeのインストール
Read more
Pythonファイルの実行
Pythonでの基本的な文法を学びます
繰り返し
条件分岐

関数とスコープについて解説します。

リストとタプル
図を描く
数字と絵を動かす
Pygame Zero はプログラミングの教育目的で設計された、Python のゲーム開発用ライブラリです。色々な手続きをバックグラウンドで処理してくれるので、短いコードでゲームを作れるようになっています。ここまで Python のコードを書ける人であれば、Pygame Zero の習得は決して難しくないはずです。

Pygame Zero はプログラミングの教育目的で設計された、Python のゲーム開発用ライブラリです。色々な手続きをバックグラウンドで処理してくれるので、短いコードでゲームを作れるようになっています。実際、ある程度 Python のコードを書ける人であれば、Pygame Zero の習得は決して難しくないはずです。ぜひゲームプログラミングを楽しんでください。

勝敗や判定などで使う、さまざまなアルゴリズムが学べます。

まずは線を引いて、盤面を作ります。

リストを作って、マス目にマルバツを表示させます。

クリックしたマス目に印をつけられるようにします。

コンピュータが印をつけられるようにします。

どうすれば印が3つそろったかの判定を行えるかを考えます。

一通りゲームとして遊べるようにします。

強くするアルゴリズムを考えて、コンピュータを強くします。

リバーシゲーム作りを通して、さまざまなアルゴリズムが学べます

tkinterでリバーシの盤面を作ります。

石を置けるようにする
ひっくり返すアルゴリズム
打てるマスを調べる
コンピュータと交互に石を置く
ゲームとして遊べるようにする
コンピュータを強くする
アルゴリズムを知っていると、さまざまな問題をより少ない計算処理で解決できるようになります。 「数学に苦手意識があるけれど、 この機に数学とアルゴリズムを学び、 プログラミングなどに応用できるようにしたい」 という方に向けた動画です。今回は「アルゴリズムとは何か?なぜ必要か」を解説しました。

アルゴリズムは「問題を解くための手順」のことです。 カタカナ6文字で、なんだか抽象的で難しい言葉のように感じるかもしれませんが、 実は非常に身近にあるものです。

文字式を使うと物事の関係が一目で分かるだけでなく、文字に具体的な値を代入する (入れてみる) と、さまざまなケースでの答えが計算できるといった利点があります。


皆さんは日常的に0から9までの10種類の数字によって数を表す10進法を使っていますが、 コピュータの内部では0と1の2種類の数字だけで数を表す2進法を使って計算が行われます。

あなたは小学校で四則演算(+,-, x,÷)を習ったと思いますが、 他にもいろいろな演算や記号があります。

有名な例として、 剰余 絶対値・累乗・ルートなどが挙げられます。 また、 コンピュータは電気的に動いているため、 on/offの情報 (ビット) を情報の最小単位とし、2進法を用いて計算が行われます。

そこでビットごとに論理演算を行う、 AND OR XOR などの 「ビット演算」 が重要になってきます。

アルゴリズムを学ぶにあたって、 関数を知ることは大切です。 たとえばアルゴリズムの計算回数として「多項式関数」「指数関数」 「対数関数」 といったものが出現する場合があります。関数とは、入力が決まると出力の値が1つに決まる関係のことを指します。 何か数を入力すると、それに対応する数が出てくる機械のようなイメージです。

計算量(計算回数など)を見積もる方法について解説し、計算量の評価で重要な 「O(オー)記法」 の概念を導入します。

素数かどうかを高速に判定する方法を紹介します。また、 「背理法」という典型的な証明技法を紹介し、アルゴリズムの正当性を示す方法の1つを学びます。

自然数AとBの最大公約数を求める問題を扱います。 単純な方法で計算すると時間がかかってしまいます。 しかし、 ユークリッドの互除法を使うと、計算量O (log (A+B)) で答えが求められます。 アルゴリズムの紹介に加え、計算量にlogが出てくる理由を解説します。

場合の数とアルゴリズム

前半では、 「モンテカルロ法」を理解するために大切となる、 確率と期待値の基本、期待値の線形性について解説します。 また、 後半ではアルゴリズムの改善を行う3つの応用例を紹介し、期待値の性質に慣れていくことを目指します。

モンテカルロ法は乱数を上手に使います。 一体どのようなアルゴリズムなのでしょうか。正規分布と共に解説します。

Save this course

Save 【Python】ゲーム開発をしながらアルゴリズムを学ぼう to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 【Python】ゲーム開発をしながらアルゴリズムを学ぼう with these activities:
Pythonの基本構文を復習する
コース開始前にPythonの基本的な構文を復習することで、よりスムーズにゲーム開発とアルゴリズムの学習を進めることができます。
Browse courses on Python
Show steps
  • Pythonの公式ドキュメントを読む
  • オンラインのチュートリアルを試す
  • 簡単なPythonスクリプトを書く
「Pythonスタートブック」を読む
Pythonの入門書を読むことで、コースで扱うPythonの基礎知識を補強し、よりスムーズに学習を進めることができます。
Show steps
  • 書籍を購入または図書館で借りる
  • 書籍の目次を確認し、興味のある章から読む
  • 書籍に記載されているサンプルコードを実際に実行する
簡単なテキストベースのゲームを作る
コースと並行して簡単なゲームを作ることで、学んだアルゴリズムを実践的に試すことができます。これにより、理解が深まり、記憶にも残りやすくなります。
Show steps
  • 簡単なゲームのアイデアを考える
  • ゲームのロジックを設計する
  • Pythonでゲームを実装する
  • ゲームをテストしてデバッグする
Four other activities
Expand to see all activities and additional details
Show all seven activities
アルゴリズムの練習問題を解く
アルゴリズムの練習問題を解くことで、アルゴリズムの理解を深め、問題解決能力を向上させることができます。特に、コースで扱ったアルゴリズムに関連する問題を重点的に解くことが効果的です。
Show steps
  • AtCoderやLeetCodeなどのサイトで問題を探す
  • 問題を解いて、提出する
  • 他の人の解答を見て、学ぶ
学んだアルゴリズムに関するブログ記事を書く
学んだアルゴリズムについてブログ記事を書くことで、知識を整理し、理解を深めることができます。また、他の人に説明することで、自分の理解度を確認することができます。
Show steps
  • 記事のテーマを決める
  • 記事の構成を考える
  • 記事を書く
  • 記事を公開する
「Pythonによるアルゴリズム事典」を読む
コースで学んだアルゴリズムをより深く理解するために、アルゴリズム事典を読むことは非常に有効です。様々なアルゴリズムの実装例を参考に、自分のスキルアップを目指しましょう。
Show steps
  • 書籍を購入または図書館で借りる
  • 書籍の目次を確認し、興味のあるアルゴリズムの章を読む
  • 書籍に記載されているサンプルコードを実際に実行する
Pygame Zeroのプロジェクトに貢献する
Pygame Zeroのプロジェクトに貢献することで、ゲーム開発のスキルを向上させることができます。また、他の開発者と協力することで、チーム開発の経験を積むことができます。
Show steps
  • Pygame ZeroのGitHubリポジトリを探す
  • Issueを探して、取り組む
  • コードを書いて、Pull Requestを出す
  • レビューを受けて、修正する

Career center

Learners who complete 【Python】ゲーム開発をしながらアルゴリズムを学ぼう will develop knowledge and skills that may be useful to these careers:
ゲームプログラマー
ゲームプログラマーは、ゲーム開発の中核を担い、ゲームのメカニズム、インタラクション、AIなどを実装する役割です。この【Python】ゲーム開発をしながらアルゴリズムを学ぼうコースを受講することで、Pythonを用いたゲーム開発の基礎を習得し、Pygame Zeroライブラリを活用した効率的なゲーム開発スキルを身につけられます。特に、コースで学ぶアルゴリズムは、ゲーム内のキャラクターの動きや敵のAI、ゲームロジックの実装に直接応用でき、より高度で洗練されたゲーム開発に貢献します。ゲームプログラマーを目指す方にとって、このコースは実践的なスキル習得の第一歩となるでしょう。
ソフトウェアエンジニア
ソフトウェアエンジニアは、さまざまなソフトウェアアプリケーションの開発、テスト、保守を行います。このコースでPythonの基礎とアルゴリズムを学ぶことは、ソフトウェアエンジニアとしての問題解決能力と効率的なコーディングスキルを高める上で非常に役立ちます。特に、このコースで学ぶアルゴリズムの知識は、複雑な問題を解決するための最適なアプローチを見つけるのに役立ちます。ソフトウェアエンジニアは、高品質で効率的なソフトウェアを開発するために、このコースで得られる知識とスキルを活用できます。
フルスタックエンジニア
フルスタックエンジニアは、フロントエンドからバックエンドまで、Webアプリケーション全体を開発できるエンジニアです。このコースでPythonを学び、アルゴリズムの基礎を習得することは、バックエンド開発において、より効率的なコードを書く上で非常に役立ちます。加えて、Pythonは、フロントエンドで動くAPIとの連携をスムーズに行うことを可能にします。フルスタックエンジニアを目指す方は、このコースを受講することで、Webアプリケーション開発に必要なスキルをバランス良く身につけ、市場価値の高い人材へと成長できるでしょう。
バックエンドエンジニア
バックエンドエンジニアは、サーバーサイドのロジック、データベース、APIなどを開発します。このコースでPythonを学び、アルゴリズムの基礎を習得することは、バックエンドエンジニアとして効率的なサーバーサイドプログラムを開発するために非常に役立ちます。Pythonは、Webフレームワーク(Django, Flaskなど)が豊富であり、API開発やデータベース操作を容易に行うことができます。バックエンドエンジニアを目指す方は、このコースでバックエンド開発のスキルを向上させることができるでしょう。
AIエンジニア
AIエンジニアは、人工知能モデルの開発、実装、最適化を行います。このコースでPythonを学び、アルゴリズムの基礎を習得することで、AIエンジニアとしての基礎的なスキルを身につけることができます。特に、PythonはAI開発で広く使用されており、豊富なライブラリとフレームワークが利用可能です。このコースで学ぶアルゴリズムは、AIモデルの効率的な学習と推論に役立ちます。AIエンジニアを目指す方は、このコースでAI開発の基礎を築くことができるでしょう。
データサイエンティスト
データサイエンティストは、大量のデータを分析し、洞察を得て、ビジネス上の意思決定を支援します。このコースでPythonを学び、アルゴリズムの基礎を習得することは、データサイエンティストとしてデータ分析、機械学習モデルの構築に役立ちます。Pythonの豊富なライブラリ(NumPy, Pandas, Scikit-learnなど)を活用することで、効率的なデータ分析が可能です。データサイエンティストを目指す方は、このコースでデータ分析の基礎を固めることができるでしょう。
セキュリティエンジニア
セキュリティエンジニアは、情報システムのセキュリティ対策の設計、実装、評価を行います。このコースでPythonを学び、アルゴリズムの基礎を習得することは、セキュリティツールの開発や脆弱性分析に役立ちます。Pythonは、セキュリティ分野で広く使用されており、ペネトレーションテストやマルウェア分析などに利用できます。セキュリティエンジニアを目指す方は、このコースでセキュリティ対策のスキルを向上させることができるでしょう。
ゲームデザイナー
ゲームデザイナーは、ゲームのコンセプト、ルール、ストーリーなどを設計します。このコースでPythonを学び、アルゴリズムの基礎を習得することは、ゲームデザイナーとしてゲームのメカニクスやAIの設計に役立ちます。Pythonは、プロトタイピングツールとして使用することもでき、アイデアを迅速にテストすることができます。ゲームデザイナーを目指す方は、このコースでゲームデザインのスキルを向上させることができるでしょう。
組み込みエンジニア
組み込みエンジニアは、家電製品、自動車、産業機器などの組み込みシステムの開発を行います。このコースでPythonを学び、アルゴリズムの基礎を習得することは、組み込みシステムにおける制御プログラムの開発に役立ちます。Pythonは、組み込みシステム向けの開発にも利用されており、ラピッドプロトタイピングやテストに活用できます。組み込みエンジニアを目指す方は、このコースで組み込みシステムの開発スキルを向上させることができるでしょう。
品質保証エンジニア
品質保証エンジニアは、ソフトウェアやシステムの品質を保証するためのテスト、評価、改善活動を行います。このコースでPythonを学び、アルゴリズムの基礎を習得することは、テスト自動化ツールの開発やテストデータの生成に役立ちます。Pythonは、テスト自動化フレームワークが豊富であり、効率的なテストを実施することができます。品質保証エンジニアを目指す方は、このコースで品質保証スキルを向上させることができるでしょう。
ネットワークエンジニア
ネットワークエンジニアは、ネットワークシステムの設計、構築、運用、保守を行います。このコースでPythonを学び、アルゴリズムの基礎を習得することは、ネットワークの自動化や監視ツールの開発に役立ちます。Pythonは、ネットワーク機器の制御やログ分析などに利用されており、ネットワークエンジニアの業務効率化に貢献します。ネットワークエンジニアを目指す方は、このコースでネットワークシステムの管理スキルを向上させることができるでしょう。
フロントエンドエンジニア
フロントエンドエンジニアは、ウェブサイトやウェブアプリケーションのユーザーインターフェース(UI)を開発します。このコースでPythonを学ぶことは、必ずしもフロントエンド開発に直接役立つわけではありませんが、バックエンドとの連携やツール開発にPythonを活用できます。例えば、フロントエンドのテスト自動化や、UIのデザインツールなどをPythonで開発することができます。フロントエンドエンジニアを目指す方も、Pythonの知識を持つことで、開発の幅を広げることができるでしょう。
ITコンサルタント
ITコンサルタントは、企業に対してIT戦略の策定、システム導入、業務改善などのコンサルティングサービスを提供します。このコースでPythonを学び、アルゴリズムの基礎を習得することは、クライアントに対して技術的なアドバイスやソリューション提案を行う際に役立ちます。Pythonは、データ分析や自動化ツール開発に使用することもでき、コンサルティング業務の幅を広げることができます。ITコンサルタントを目指す方は、このコースでITコンサルティングスキルを向上させることができるでしょう。
テクニカルライター
テクニカルライターは、ソフトウェアやハードウェアのマニュアル、ドキュメント、チュートリアルなどを作成します。このコースでPythonを学ぶことは、プログラミングに関する知識を深め、より正確で分かりやすいドキュメントを作成するのに役立ちます。特に、Pythonのコード例やアルゴリズムの説明を記述する際に、このコースで得た知識が役立つでしょう。テクニカルライターを目指す方は、このコースで技術文書作成スキルを向上させることができるでしょう。
プロジェクトマネージャー
プロジェクトマネージャーは、プロジェクトの計画、実行、監視、制御を行います。このコースでPythonを学び、アルゴリズムの基礎を習得することは、プロジェクトの進捗管理やリソース配分に役立ちます。Pythonは、プロジェクト管理ツールや自動化スクリプトの開発に使用することもでき、プロジェクトマネージャーの業務効率化に貢献します。プロジェクトマネージャーを目指す方は、このコースでプロジェクト管理スキルを向上させることができるでしょう。

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 【Python】ゲーム開発をしながらアルゴリズムを学ぼう.
この本は、様々なアルゴリズムをPythonで実装した例を紹介しています。コースで学んだアルゴリズムをより深く理解するために役立ちます。また、新しいアルゴリズムを学ぶための参考書としても活用できます。この本を読むことで、アルゴリズムの知識をさらに深めることができます。
この本はPythonの入門書として最適です。プログラミングの経験がない人でも、Pythonの基礎をしっかりと学ぶことができます。ゲーム開発に必要な基本的な知識も含まれているため、コースの予習として役立ちます。この本を読むことで、コースの内容をより深く理解できるようになります。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser