# 中和高中108學年第1學期多元選修Python物理模擬課程計畫
> Ver. 1: 2019/8/14
> Ver. 2: 2019/10/7 終端速度改為2週的課程,刪除原訂於第11週的單擺
> Ver. 3: 2019/11/8 使用For迴圈計算水平抛射資料改為2週的課程,刪除原訂於第12週的重力與簡諧運動
## 基本資料
* 課程中文名稱:Python物理模擬
* 課程英文名稱:Physics Simulations in Python
* 授課教師:王一哲 yizhe@mail2.chshs.ntpc.edu.tw
* 授課年段:高二
* 學分數:1
* 學習目標
1. 學生能學習分析物理問題及建模的方法。
2. 學生能利用程式語言描述物件遵守的物理定律。
3. 學生能將模擬程式產生的數據匯出、作圖,並與實驗數據相互對照。
<br />
## 教學大綱
### 第1週:安裝及測試 VPython
**引起動機**
VPython 是Python的視覺化模擬套件,很適合用來模擬物理問題。
**活動**
於電腦上安裝Python及VPython套件,並以教師提供的範例程式測試套件是否已經正確安裝。
**統整與總結**
於這堂課中學生需要學會使用pip或pip3指令安裝套件。
<br/>
### 第2週:Python基本語法
**引起動機**
在開始寫物理模擬程式之前,需要先學習常用的基本語法。
**活動**
學習使用if、elif、else、for、while控制程式,並用print輸出文字或數值。
**統整與總結**
撰寫講義上問題對應的程式碼,並上傳到教學網站中。
<br/>
### 第3週:等速度直線運動
**引起動機**
從最單純的等速度直線運動開始製作模擬動畫,不涉及複雜的數學計算。
**活動**
畫出木塊、地板以及木塊的 x-t 圖、 v-t 圖
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第4週:自由落下
**引起動機**
以學生在高一學到的自由落下為例,讓學生將模擬動畫與過去所學的知識互相對照。
**活動**
將物體加上重力的作用,畫出小球從某個高度往下加速落到地板上,並畫出小球的y-t圖、v-t圖。
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第5、6週:終端速度
**引起動機**
延續上一堂課的程式,探討小球如果受到空氣阻力作用時運動狀態有何變化。
**活動**
當小球從高空落下時,同時受到重力及空氣阻力的作用,試著找出小球的運動過程及終端速度,同時將得到的資料存成文字檔。
**統整與總結**
將產生的數據利用SciDAVis或是類似的軟體作圖,並將圖片上傳到教學網站中。
<br/>
### 第7週:水平抛射
**引起動機**
以高二上物理第二章的水平拋射為例,觀察程式模擬與理論預測是否相符。
**活動**
將一個小球由高度h處以水平初速v0抛出,小球受到重力作用向下加速,畫出在不同條件下小球運動的過程。
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第8、9週:使用For迴圈計算水平抛射資料
**引起動機**
延續上一堂課的程式,再利用for迴圈改變起始條件。
**活動**
利用for 迴圈自動代入不同的高度h並記錄水平射程R,同時將得到的資料存成文字檔。
**統整與總結**
將產生的數據利用SciDAVis或是類似的軟體作圖,並將圖片上傳到教學網站中。
<br/>
### 第10週:斜向抛射
**引起動機**
以高二上物理第二章的斜向拋射為例,觀察程式模擬與理論預測是否相符。
**活動**
將一個小球由地面以初速 v0、仰角𝜃抛出,小球受到重力作用向下加速,計算小球的飛行時間t及水平射程R。
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中
<br/>
### 第11週:圓周運動
**引起動機**
以高二上物理第五章的圓周運動為例,觀察程式模擬與理論預測是否相符。
**活動**
畫出水平面上的等速率圓周運動。進階活動:畫出鉛直面圓周運動並計算週期。
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第12週:簡諧運動
**引起動機**
以高二上物理第五章的簡諧運動為例,觀察程式模擬與理論預測是否相符。
**活動**
畫出水平面上的彈簧、木塊系統,讓木塊受到彈簧回復力的作用開始做簡諧運動。
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第13週:行星運動1
**引起動機**
以克卜勒行星運動定律為例,將天體的實際數據代入程式模擬中,觀察模擬結果與理論預測是否相符。
**活動**
1. 自訂星球速度、距離, 可更改萬有引力定律中 r的次方,驗證克卜勒第一行星運動定律。
2. 用dictionary儲存星球資料,驗證克卜勒第二、第三行星運動定律。
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第14週:行星運動2
**引起動機**
延續上一堂課的程式,使用不同的方式產生物件。
**活動**
1. 用dictionary儲存星球資料,用class 產生行星,驗證克卜勒第二、第三行星運動定律。
2. 用平均軌道半徑為1:4或1:1的行星,驗證克卜勒第三行星運動定律
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第15週:重力場及電場
**引起動機**
如何用較為具體的方式,表示抽象的重力場強度及方向。
**活動**
在空間中每隔一段距離取一個點,以箭頭的長度及方向來表示該點的重力場。如果學生可以畫出一個星球產生的重力場,可以進一步挑戰繪製兩個星球產生的重力場。
**統整與總結**
將產生的模擬動畫截圖並上傳到教學網站中。
<br/>
### 第16週:成果發表1
**引起動機**
各組以一個物理課本當中的例子為主題設計模擬動畫並上台發表。
**活動**
每組上台報告,分享自行撰寫的程式碼運作流程及成果,每組發表10分鐘,同學及教師回饋5分鐘,所有同學皆須在互評表上為其它組別評分。
**統整與總結**
各組皆要上傳程式碼及書面報告電子檔,並於課程結束時繳交互評表。
<br/>
### 第17週:成果發表2
**引起動機**
各組以一個物理課本當中的例子為主題設計模擬動畫並上台發表。
**活動**
每組上台報告,分享自行撰寫的程式碼運作流程及成果,每組發表10分鐘,同學及教師回饋5分鐘,所有同學皆須在互評表上為其它組別評分。
**統整與總結**
各組皆要上傳程式碼及書面報告電子檔,並於課程結束時繳交互評表。
<br/>
## 多元選修行事曆
<img height="100%" width="100%" src="https://upload.cc/i1/2019/08/30/Bk2rw1.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<img height="100%" width="100%" src="https://upload.cc/i1/2019/08/30/rHtJ3y.png" style="display: block; margin-left: auto; margin-right: auto;"/>
---
###### tags:`課程`、`VPython`