Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
下河 有司

小学校・中学校・高校でプログラミング教育が必修科目になったことから分かる通り、現代人にとってプログラミングは必須のスキルになりつつあります。

そして子供のころからプログラミングに慣れ親しんできた学生は、社会人になったときITスキルを駆使して今までの「仕事の形」を大きく変えていくでしょう。

そんな時代はすぐそこまで来ています。「自分はプログラミングが苦手だから…」と勉強を後回しにしている時間はもうありません。最善の一手は、今すぐに勉強を始めることです。

しかし参考書で独学したり、プログラミングスクールに通ったりしても、結局長続きせずに挫折してしまう方が多いのも事実です。ただ文法を暗記したり、興味の湧かない例題を解き続けてもプログラミングスキルは上がっていきません。つまらなくなって勉強が嫌になるだけです。

そこで本コースでは、ゲーム開発などで使われる「物理エンジン」という仕組みを使って、楽しみながらプログラミング学習を続けられる方法をご紹介します。

さらに自分が書いたプログラムでバーチャルな物体を動かしながら、数学・物理学・プログラミングの考え方を同時に身につけられる一石三鳥の内容になっています。

この機会に、本格的なプログラミングの勉強に最初の一歩を踏み出してみてはいかがでしょうか?

Enroll now

What's inside

Learning objectives

  • 挫折せずにプログラミングの勉強を続けられる方法を学べます
  • 数学・物理学・プログラミングの知識とスキルを同時に高める方法を学べます
  • 現実に起こる物理現象をバーチャル空間の中で再現する方法を学べます
  • 数式をプログラミングしてコンピュータに計算させる方法を学べます

Syllabus

0.はじめに

このコースの概要が分かります。

社会人の方がプログラミングを学ぶメリットが分かります。

コンピュータを使って物理現象を再現できることが分かります。

Read more

物理エンジンという仕組みについて説明しています。

本コースの概要を説明します。

■本コースのスライドをPDF形式で見ることができます。復習などにご利用ください。

スライド.pdf

■ダウンロード資料

01.Unityのインストール方法.pdf

02.物理シミュレーションの始め方.pdf

03.Unityプロジェクト

    V-Experiments.unitypackage

    Homework.unitypackage

    ExperimentLayout.wlt

04.数値積分の比較(相空間).xlsx

本コースではUnityというツールを使って学習を進めます。

物理シミュレーションのメリットが分かります。

アニメーションの仕組みについて学習します。

バーチャル空間で物体を動かす方法が分かります。

Unityを使って実際に物体を動かしてみましょう。

ニュートンの運動方程式をコンピュータで解く方法を学びます。

ニュートンの運動方程式の復習です。

位置、速度、加速度といった基本な考え方を学びます。

運動方程式の解き方の典型的なパターンを学びます。

「無限」を扱えないコンピュータに微分を計算させる方法を学びます。

時刻という考え方をアニメーションのフレーム番号に対応させます。

微分にはただの数学的な計算以上の深い意味があります。

アニメーションを運動方程式を使って更新する方法を学びます。

このセクションのまとめです。

このセクションでは、具体的にプログラミングで物体を動かしてみます。

重心が平行移動する物体の運動を考えます。

位置と速度を更新する方法を学びます。

一定の速度で移動する物体の運動をコンピュータで計算します。

プログラムの内容を見ていきます。

だんだんと速度が変化する運動を計算します。

回転する物体の運動の扱い方を学びます。

回転する物体の運動をコンピュータに計算させる準備をします。

一定の速さで回転する物体の運動を計算します。

だんだんと回転する速さが変化する物体の運動を計算します。

微分をコンピュータで計算する時に必要になるテクニックを学びます。

数値積分をするときのコツを学びます。

運動方程式をコンピュータで解きやすい形に書き直します。

最も直感的な数値積分の方法を学びます。

より計算が安定化する手法を学びます。

計算が安定しているかどうかをチェックする考え方のひとつです。

計算手法によってどれぐらい正確に計算できているかを比較します。

実験に使ったプログラムの解説です。

バーチャル空間で物理実験を行うアプリの作り方です。

どんな実験を行うかをまず見てみましょう。

重力を受けて落下する物体の運動方程式を学びます。

斜めに投げた物体の運動を表す運動方程式を学びます。

実験のプログラムの解説です。

ブランコのように振れる物体の運動方程式を学びます。

ゴムやばねでぶら下げられた物体の運動方程式を学びます。

全体のまとめです。

より精度の高い計算方法を学びます。

例としてばねに繋がれた物体を考えます。

コースの名が出紹介した方法と比較してみます。

ルンゲ・クッタ法のプログラムの説明です。

数値積分の安定性と解析力学の間には密接な関係があります。

解析力学に出てくる相空間という考え方を学びます。

数値積によって相空間に現れる違いについて見てみます。

シンプレクティック数値積分がエネルギー的に安定であることを学びます。

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses a physics engine, commonly found in game development, as a practical and engaging tool for learning math and programming
Explores how to reproduce real-world physical phenomena in a virtual space, offering a hands-on approach to understanding complex concepts
Teaches how to program mathematical formulas and have computers perform calculations, bridging the gap between theory and practical application
Employs Unity, a tool used in game development, to facilitate learning, providing a practical environment for experimentation and application
Examines various numerical integration methods, offering insights into the nuances and trade-offs involved in computer-based calculations
Includes supplementary material on Runge-Kutta methods, which are more advanced techniques for achieving higher calculation accuracy

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

物理エンジン活用 数学とプログラミング

学習者によると、物理エンジンを使って数学・物理学・プログラミングを同時に学ぶというユニークなアプローチが特徴です。特に社会人挫折せずに学習を続けるための工夫が見られます。Unityを用いた実践的な内容楽しく、バーチャル空間で物理現象を再現できる点が魅力的です。一方で、コースは初級~中級とされていますが、数学や物理の基礎知識どの程度必要かプログラミング未経験者にとって難しくないかといった点については、意見が分かれる可能性があります。数値積分運動方程式の解法など、理論と実践を結びつける構成理解を助けるという声があるかもしれません。付録には応用的な内容も含まれており、より深く学びたい学習者にも対応しています。
内容の深さに意見分かれる
"数値積分の概念は良く分かったが、付録の応用内容は少し難しく感じた。"
"理論的な説明とプログラミングの実装がうまく結びついていて理解しやすかった。"
"もっと踏み込んだ理論や、様々な物理現象への応用例も見たかった。"
物理シミュレーションを体験
"Unityを使った具体的なプログラミング例が豊富で、すぐに試せて良かった。"
"自分でコードを書いて物体が思い通りに動くのは非常に面白かった。"
"演習用のUnityプロジェクトが用意されており、環境構築の手間が省けた。"
物理エンジンを通じた実践学習
"ゲーム開発で使われる物理エンジンで学べるのが新鮮で楽しかった。"
"単なる座学ではなく、Unityを使って実際に手を動かせるのが良い。"
"バーチャル空間で物理現象を再現するアプローチは興味深い。"
基礎知識の有無で難易度変化
"高校レベルの物理や数学を忘れていると、少し理解に時間がかかるかもしれないと感じた。"
"運動方程式の復習はあったが、もう少し数学的な導入が丁寧だと助かった。"
"数学や物理が得意だったので、プログラミングに集中できてスムーズに進めた。"

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 物理エンジンで学ぶ数学とプログラミング:社会人になってから学ぶ数学と物理学(初級~中級編) with these activities:
物理シミュレーションのための数学・物理
物理シミュレーションに必要な数学と物理の知識を深め、コースの内容をより深く理解できるようにします。
View Melania on Amazon
Show steps
  • 書籍を購入または図書館で借りる
  • 関連する章を読み、例題を解く
  • Unityで簡単なシミュレーションを試す
Unityのチュートリアルで物理エンジンを学ぶ
Unityの物理エンジン機能を習得し、コースで扱うシミュレーションの実装に役立てます。
Show steps
  • Unity Hubをインストールし、Unityエディタを起動する
  • Unity Learnで物理エンジンに関するチュートリアルを探す
  • チュートリアルに従って簡単な物理シミュレーションを作成する
ゲームプログラミングのための数学
ゲームプログラミングに必要な数学の知識を習得し、物理エンジンの理解を深めます。
View Melania on Amazon
Show steps
  • 書籍を購入または図書館で借りる
  • 関連する章を読み、例題を解く
  • Unityで簡単なゲームを作成し、数学の知識を応用する
Two other activities
Expand to see all activities and additional details
Show all five activities
簡単な物理シミュレーションを自作する
コースで学んだ知識を応用し、オリジナルの物理シミュレーションを作成することで理解を深めます。
Show steps
  • シミュレーションのテーマを決める(例:振り子、落下運動)
  • 必要な物理法則と数式を調べる
  • Unityでオブジェクトを配置し、スクリプトを作成する
  • シミュレーションをテストし、パラメータを調整する
物理シミュレーションに関するブログ記事を書く
学んだ知識を整理し、アウトプットすることで理解を定着させます。
Show steps
  • 記事のテーマを決める(例:数値積分の比較、ルンゲ・クッタ法)
  • 記事の構成を考える
  • 記事を執筆し、図やコードを挿入する
  • 記事を公開し、フィードバックを求める

Career center

Learners who complete 物理エンジンで学ぶ数学とプログラミング:社会人になってから学ぶ数学と物理学(初級~中級編) will develop knowledge and skills that may be useful to these careers:
ゲームプログラマー
ゲームプログラマーは、ゲームのロジック、インタラクション、物理挙動をコードで実現する役割を担います。このコースでは、物理エンジンを使って数学とプログラミングを学ぶため、ゲーム内の物理シミュレーションを実装する上で非常に役立ちます。特に、コースで扱っているUnityというツールはゲーム開発で広く使用されており、運動方程式を数値的に解く方法や、バーチャルな物体を動かす方法を学ぶことは、ゲームプログラマーとしての基礎を固める上で効果的です。物理現象を再現するアプリを作る経験は、ゲーム世界のリアリティを高めるスキルにつながります。
シミュレーションエンジニア
シミュレーションエンジニアは、現実世界の現象をコンピュータ上で再現するシミュレーションを開発・実行する仕事です。このコースは、物理エンジンを使って数学、物理学、プログラミングを同時に学べるため、シミュレーションの基礎知識を習得するのに最適です。特に、運動方程式を数値的に解く方法や、ルンゲクッタ法などの高度な数値積分手法を学ぶことは、シミュレーションの精度を高める上で不可欠です。バーチャル空間で物理実験を行うアプリを作成する経験は、実践的なスキルを養う上で非常に役立ちます。シミュレーションエンジニアを目指すなら、このコースで確かな一歩を踏み出せるでしょう。
数値解析エンジニア
数値解析エンジニアは、複雑な問題をコンピュータを用いて数値的に解く専門家です。このコースでは、物理エンジンを使って数学とプログラミングを学ぶため、数値解析の基礎を効果的に習得できます。特に、運動方程式を数値的に解く方法や、ルンゲクッタ法などの数値積分手法を学ぶことは、様々な工学分野における問題解決に役立ちます。バーチャル空間で物理実験を行うアプリを作成する経験は、数値解析の結果を可視化し、理解を深める上で非常に重要です。数値解析エンジニアを目指すなら、このコースで実践的なスキルを身につけましょう。
ロボット制御エンジニア
ロボット制御エンジニアは、ロボットの動作を制御するためのプログラムを開発する仕事です。物理エンジンで数学とプログラミングを学ぶこのコースは、ロボットの物理的な挙動を理解し、それをプログラミングで実現するための基礎を築くのに役立ちます。特に、運動方程式を数値的に解く方法や、バーチャル空間で物体を動かす方法を学ぶことは、ロボットのシミュレーションや制御アルゴリズムの開発に直接応用できます。コースで扱うUnityは、ロボットのシミュレーション環境としても利用されており、実践的なスキルを習得する上で非常に有効です。
VR/AR開発者
VR/AR開発者は、仮想現実や拡張現実のコンテンツやアプリケーションを開発する仕事です。このコースで学ぶ物理エンジンの知識は、VR/AR空間におけるインタラクティブなオブジェクトの挙動をリアルに再現する上で非常に役立ちます。運動方程式を数値的に解く方法や、バーチャル空間で物体を動かす方法を学ぶことで、より自然で没入感のあるVR/AR体験を創造できます。コースで扱うUnityは、VR/AR開発の主要なプラットフォームの一つであり、このコースを通じて実践的なスキルを習得できます。
教材開發者
教材開発者は、教育機関や企業向けの教材を企画・制作する仕事です。このコースで学ぶ物理エンジンとプログラミングの知識は、特に理数系の教材を開発する上で非常に役立ちます。物理シミュレーションを活用したインタラクティブな教材を開発することで、学習者の理解を深め、興味を引き出すことができます。また、コースで扱うUnityは、様々なプラットフォームに対応した教材を作成できるため、教材開発者にとって強力なツールとなります。
研究開発エンジニア
研究開発エンジニアは、新しい技術や製品を開発するための研究を行う仕事です。このコースで学ぶ物理エンジンとプログラミングの知識は、特に物理現象に関連する研究開発に役立ちます。例えば、新しい材料のシミュレーションや、ロボットの制御アルゴリズムの開発などに応用できます。運動方程式を数値的に解く方法や、数値積分のテクニックを学ぶことで、より高度な研究開発に取り組むことができます。研究開発エンジニアとしての専門性を高めるために、このコースを受講することをお勧めします。
CAEエンジニア
CAEエンジニア(Computer Aided Engineering)は、コンピュータシミュレーションを用いて製品の設計や開発を支援する仕事です。物理エンジンで学ぶ数学とプログラミングの知識は、CAEソフトウェアの利用やカスタマイズに役立ちます。運動方程式を数値的に解く方法や、数値積分のテクニックを学ぶことで、より高度なシミュレーションを実施できます。バーチャル空間で物理実験を行うアプリを作成する経験は、シミュレーション結果の検証や可視化に役立ちます。CAEエンジニアとしてのスキルアップを目指すなら、このコースを受講する価値があるでしょう。
物理教師
物理教師は、中学校や高校で物理学を教える仕事です。このコースで学ぶ内容は、物理の授業で生徒に物理現象を分かりやすく説明する上で非常に役立ちます。特に、物理エンジンを使ってバーチャル空間で物理実験を再現する方法を学ぶことで、生徒の理解を深めるための視覚的な教材を作成できます。また、プログラミングを通じて物理現象をモデル化する経験は、生徒に物理学の応用例を示す上で役立ちます。生徒に物理の面白さを伝えるために、このコースは良いツールとなるでしょう。
データサイエンティスト
データサイエンティストは、大量のデータから有用な情報を抽出・分析し、予測モデルを構築する専門家です。このコースで学ぶ物理シミュレーションの知識は、特に物理現象に関連するデータを扱う場合に役立ちます。運動方程式を数値的に解く方法や、数値積分のテクニックを学ぶことで、物理データの背後にあるメカニズムを理解し、より精度の高い予測モデルを構築できます。また、バーチャル実験アプリを作る経験は、データ可視化やモデルの検証に役立ちます。データサイエンティストとしての視野を広げるために、このコースは良いきっかけとなるでしょう。
組み込みシステムエンジニア
組み込みシステムエンジニアは、家電製品や産業機器などに搭載されるコンピュータシステムの開発を行う仕事です。物理エンジンで学ぶ数学とプログラミングの知識は、組み込みシステムにおける制御アルゴリズムの開発に役立ちます。運動方程式を数値的に解く方法や、物理シミュレーションの技術を学ぶことで、より高度な制御システムを設計できます。このコースで得られるプログラミングの基礎は、組み込みシステムの開発言語であるC/C++などを学ぶ上でも役立つでしょう。
テクニカルアーティスト
テクニカルアーティストは、アートと技術の橋渡しをする役割を担い、ゲームや映像制作の現場で効率的な制作パイプラインを構築したり、特殊な視覚効果を作成したりします。このコースで学ぶ物理エンジンの知識は、リアルな物理シミュレーションをゲームや映像に取り入れる上で非常に役立ちます。例えば、爆発や破壊などのダイナミックなエフェクトを制作する際に、運動方程式を数値的に解く方法や、バーチャル空間で物体を動かす方法を応用できます。コースで扱うUnityは、ゲーム業界で広く使用されているため、テクニカルアーティストとしてのスキルアップに繋がるでしょう。
フロントエンドエンジニア
フロントエンドエンジニアは、ウェブサイトやアプリケーションのユーザーインターフェースを開発する仕事です。このコースが直接的にフロントエンド開発に役立つわけではありませんが、プログラミングの基礎を学ぶことは、JavaScriptなどのフロントエンド技術を習得する上で役立ちます。特に、コースで扱うUnityは、WebGLを通じてウェブブラウザ上で3Dコンテンツを表示できるため、インタラクティブなウェブアプリケーションの開発にも応用できます。フロントエンドエンジニアとしてのスキルセットを広げるために、このコースを受講するのも良いでしょう。
金融エンジニア
金融エンジニアは、金融工学の知識を応用して、金融商品の開発やリスク管理を行う仕事です。このコースが直接的に金融工学に役立つわけではありませんが、プログラミングを通じて得られる論理的思考力や問題解決能力は、金融モデルの構築や分析に役立ちます。特に、複雑な数式をプログラミングで表現する経験は、金融工学の分野でも応用できます。金融エンジニアとしての基礎能力を向上させるために、このコースを受講するのも良いでしょう。
グラフィックデザイナー
グラフィックデザイナーは、視覚的なコミュニケーションを通じて情報を伝達する仕事です。このコースが直接的にグラフィックデザインに役立つわけではありませんが、プログラミングを通じて得られる論理的思考力は、デザインの構造やレイアウトを考える上で役立ちます。また、コースで扱うUnityは、3Dグラフィックスの作成にも利用できるため、デザインの表現の幅を広げる可能性があります。グラフィックデザイナーとしてのスキルを補完するために、このコースを受講するのも良いでしょう。

Reading list

We've selected one 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 物理エンジンで学ぶ数学とプログラミング:社会人になってから学ぶ数学と物理学(初級~中級編).

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