初年次ゼミ(理科) 数学・物理をプログラミングで考える
田浦健次朗 (水2)
山崎俊彦 (金4)

(the page is encoded in UTF-8)

お知らせ

共通

新しいものが上です

田浦(水2)担当クラス固有のお知らせ

(青字カッコ内)はアナウンスを記入した日付です.
(以下は2018年度のお知らせです. 参考のためにしばらく残します)

山崎(金4)担当クラス固有のお知らせ

資料

スライド

プリント資料

有用リンク

Windows Help形式のファイルはxchmというソフトでLinuxでも読めます.

画面(デスクトップ)の共有の方法

議論をしながらコードを書くために, 一人の画面を他の人も見られるようにする方法.
  1. Ubuntuボタン を押し, "remmina" を検索 (rem くらいまでで多分見つかる)
  2. 緑色の + ボタンをおす
    • Protocol: VNC を選択
    • Server: に見たい画面の IP アドレス(演習環境 スプレッドシート参照)を入力
    • User Password: に xxxx (授業中に述べる) を入力
    • Color depth: 好きなものを設定(品質をあげるとネットワークの負荷が大きくなる)
    • Quality: 好きなものを設定(品質をあげるとネットワークの負荷が大きくなる)
    • Connect または Save and Connect で接続
    • 保存をしとくと何度も繋げる時に楽

Microsoft Office 365での スライド・ドキュメント共有方法

  1. 大学のアカウント(UTokyo Account)でOffice 365 を使える状態にしていない人はする (そのやり方: UTokyo Account 利用者メニューに行ってOffice 365 ProPlus 利用許諾 から, 「利用規約に合意し利用権を申請する」を「はい」にして保存)
  2. それができたら Office 365にログイン. その際のアカウント名は utokyo account の10桁@utac.u-tokyo.ac.jp
  3. 普通にパワポでも何でも作って, "share" ボタンで共有相手を指定. その際, 普通に本名で指定すれば, そういう人がいればそうとわかるように出てくるので, 普通にチームメイトの本名を入れれば良い

自宅で試したい人用のヘルプ

Windows or Mac

Pythonだけならインストールは簡単ですが, グラフィック表示が必要となると少し複雑です. そこで簡単に使える小さめのLinuxを用意しました.
これを実際にWindowsまたはMac上で動かすには仮想ソフトウェアである VirtualBox を利用しますので, 以下にインストール方法について簡単に示します.
  1. 上記のリンクからOracleのVirtualBoxダウンロードページにいきます.
  2. 「Oracle VM VirtualBox Base Packages」の64bit版をWindows用もしくはMac用にダウンロードします.どちらのOS用のリンクであるかはPlatformを確認してください.
  3. こちらからダウンロードしたファイルを適当なフォルダに入れ,VirtualBoxを起動してください.
  4. 左上のメニューから「ファイル」->「仮想アプライアンスのインポート」で先程もらったファイルを選択して仮想マシンをインストールします.
  5. インストールされた仮想マシンを選択して「起動」アイコンをクリック.パスワードはゼミ初回に教えたものと同じです.(HINT:*********33)
  6. ホスト側のウィンドウサイズとゲスト側のウィンドウサイズが違う場合は「表示」->「ゲストOSの画面を自動リサイズ」としてください.
  7. 見慣れたjupyter notebookの開き方
    1. 仮想マシンの「画面」をクリックしてフォーカスする
    2. 「Ctrl」+「Alt」+「t」を押すとターミナルという黒い画面が出てくるので,以下のコマンドを入力
      $ jupyter notebook
    3. firefoxが自動的に起動し見慣れたjupyter notebookが開きます

トラブルシューティング

Linux

以下, jupyter で VPython, matplotlib, numpy, scipy が使えるためのインストラクションに書き換える必要あり. python3-pip を入れ, pip3 install --user xxxx xxxx xxxxという 形式にしたい 以下のパッケージをインストールすればよいです. 以下はUbuntuのパッケージ名で, 微妙に違うかもしれませんが, パッケージ名検索などで容易に見つかると思います.
Visual Pythonpython-visual
Matploblibpython-matplotlib
Numpypython-numpy
Scipypython-scipy
Ubuntuなら以下を実行すれば出来ます.
$ sudo apt-get install python-visual python-matplotlib python-numpy python-scipy

VMの作成手順

  1. 最新版LTSのLubuntuを公式サイトからダウンロード
  2. VirtualBoxからisoをインポートしてLubuntuをインストールし,見た目などの設定を行っておく
  3. Guest Additionsをインストールする
  4. python3をaptを使ってインストールする(firefoxはインストール済み)
    $ sudo apt update
    $ sudo apt install python3 python3-pip
  5. python3用のモジュールをpip3を使ってインストールする
    $ pip3 install --user numpy scipy jupyter vpython ipython

はじめに

初年次ゼミとして, 表題のゼミを開講します. 意欲のある駒場生の参加を期待します.

内容

コンピュータ(プログラミング)を使って, 数学や物理の問題を解く方法を学びます. そうすることを通してプログラミングと数学・物理の両方を学びます.

実際の問題は,いくつかの例・テンプレートを提示し, グループに別れて解法や,問題の発展形や一般化などについて議論します. それと並行して,プログラミングの基本について,演習します 最後に,お互いが解いた問題について発表しあう,発表会を行います. 途中でも,グループの間でのアイデア交換や進捗状況の共有のため, ミニ発表会を行います.

ねらい

テクニカルな狙いは以下のとおりです.

これら全体は,大学以降の理系の勉強のかなり大きな部分を占めるもので, わずか13回やそこらの授業で,網羅的に扱うことができるものではありません. このゼミは,決められた特定の知識を深く習得することよりも, 実世界に根ざした問題の解決に数学,物理,そしてコンピュータがどう役立つかを 知ること,それを,教員 -> 学生の一方的な講義ではなく, 参加学生の間の議論や発表を通して, 主体的に学ぶという,そのプロセスに主眼をおきます.

重要なことは,「実世界の問題はほとんど常に難しい」ということです. 学校で習ったことだけで直ちに答えが出ることは殆ど無く, それは大学の授業をマスターしたしても同じことです. また実世界では,学校の勉強のように単元に分かれていて, ある問題がどの単元に出ているかによって取り出すべき法則や公式が想像できる, というようなこともありません.

その状況で重要なことは何でしょうか? 個々の分野の基礎的な勉強をおろそかにしてはいけませんが, 残念ながらそれだけだとなかなか実践的な,役に立つ, 問題解決能力は身につきません.

愚直ですが「基本に立ち返って自分で考えられる」 ことが大事だろうと思います.また,同じ理由で, ある問題が自分一人であっさり解決,ということもあまりないので, 他の人と知恵を出し合えることも重要です. 他の人と議論するためには嫌でも「基本に立ちかえる」必要があります. 「なぜそうするのか,なぜそのやり方でいいのか」という疑問に対して, 「教科書のあそこに書いてあった公式だから」では,通用しません. 議論は,自分が本当にどれくらいわかっているかがわかるきっかけになります.

この授業におけるアクティビティ

以下のような活動を臨機応変に,参加学生が主体的に組み合わせます.
グループごとの議論:
グループごとに問題解決のためのアイデアを出しあう, 問題点を共有する,解決に至るまでのステップを議論する
プログラミング演習:
解決の方針が定まったとして,それをプログラムにするための, 演習を行います.プログラミングは語学と似ていて「習うより慣れろ」 的な側面が多いので,その「慣れろ」にもある程度の時間を取ります
進捗共有のためのミニ発表:
2回に一回程度,最後にグループ進捗や次週の予定について情報共有し, コメントをし合います.
学生による講義:
必要なプログラミング,物理,数学などについて調査・考察した結果で, グループ間で共有すると有用な情報を,教員役となる学生を決めて講義風に 発表します(例えばプログラミングで必要なツールについて,プログラミング が得意な学生が講義したりする)
発表会:
成果をまとめて発表する
教員によるインデキシング:
教員からの情報提供.といってもあまり多くを講義するのではなく, 情報へのポインタやキーワードを与えて,学生の調査の手助けをする程度. その意味でインデキシング(索引付け)と呼ぶ

進行上の工夫

基本情報


(EmailのATMARKは @ 置き換えてください)
  • 実施時刻, 場所: