分類彙整: 106年度科技部高瞻計畫

物聯探實達課程進度表

物聯探實達課程進度表

週別

/日期

課程名稱 內容簡述 活動 學校行事曆
第1週

2.18

課程介紹 物聯探實達 PPT-10min

學習單1-10min

+FB-25min

交待作業-5min

 
第2週

2.25

VPhysics探究(1) 探究如何探究1 PPT-25min

實作-20min

交待作業-5min

 
第3週

3.4

VPhysics探究(2) 探究如何探究2 PPT-25min

實作-20min

交待作業-5min

 
第4週

3.11

VPhysics實作(1) 直線運動 PPT-25min

實作-20min

交待作業-5min

 
第5週

3.18

VPhysics實作(2) 靜止落體 PPT-25min

實作-20min

交待作業-5min

繁星放榜
第6週

3.25

進度調整     第一次段考
第7週

4.1

IoTtalk探究(1)   PPT-25min

實作-20min

交待作業-5min

 
第8週

4.8

IoTtalk探究(2)   PPT-25min

實作-20min

交待作業-5min

將此段報告加入備審資料
第9週

4.15

IoTtalk實作(1)   PPT-25min

實作-20min

交待作業-5min

 
第10週

4.22

IoTtalk實作(2)   PPT-25min

實作-20min

交待作業-5min

 
第11週

4.29

專題1 形成問題 PPT-5min

實作-40min

交待作業-5min

個人申請結束
第12週

5.6

專題2 規畫研究 PPT-5min

實作-40min

交待作業-5min

 
第13週

5.13

進度調整     第二次段考

申請放榜

第14週

5.20

專題3 論證建模 PPT-5min

實作-40min

交待作業-5min

 
第15週

5.27

專題4 發表分享 PPT-5min

實作-40min

交待作業-5min

將此成果加入畢業成果展
第16週

6.3

發表 物聯探實達 發表-40min

講評-10min

 
第17週 畢業 微電影拍攝   預備課程
第18週 畢業      
第19週 畢業      
第20週 畢業      

 

物聯網探實達學習歷程檔案

物聯探實達學習歷程檔案

(作者:中港高中王尊信老師 于20170323)

______學年___學期中港高中____年級____班____號____________

主題:

摘要: (200字內,動機、方法、結果)

一、發現問題:

0.探究動機:(為什麼選這個題目?用自己的話講)

1.觀察現象

2.蒐集資料

3.界定問題

4.提出可驗證的觀點

二、規劃研究:

0.探究方法:(找出證據支持自己的論點,包含探究證據、實作證據)

1.尋找變因

2.研究計畫

3.實作數據

三、論證建模:

0.我們的創見(賣點,亮點,novelty)

1.分析資料、呈現證據、提出結論(不過度解讀數據,學術倫理,不同意見的討論)

2.建立模型(需注意適用範圍)

四、參考資料:

0.謝詞:感謝幫忙的單位或同學

1.參考資料網址: (學術倫理)     http://trust-physics.blogspot.tw  …

VPhysics試教-都卜勒效應的視覺化

教學目標:

利用Python模擬出都卜勒效應的視覺化與數值化,實際”看到”,當波源與觀察者互相接近時,頻率上升,波長變短;當波源與觀察者互相遠離時,頻率下降,波長變長。

傳統教學缺點:

當我們要介紹都卜勒效應時,面臨兩大困境: 一、聲波是動態,黑板的板書無法呈現。二、生活體驗的都卜勒效應,易被聲音的大小聲(振幅)迷惑,誤以為靠近變大聲,遠離變小聲是都卜勒效應。課堂上僅介紹公式,學生無法體驗感受,屬於低學習成就的單元。

VPhysics教學優點:

利用學生改變參數,實際”看到”都卜勒效應的不同。

第一步,改變波源的速度,變成與觀察者速度相同=>觀察是否有都卜勒效應?。

第二步,改變觀察者的速度,變大變小=>觀察接受到波數的變化=>當觀察者速度大於波速,會有音爆(sonic bomb)、震波(shock wave)的產生。

第三步,由以上兩步驟,歸納出都卜勒效應的公式。

Python程式:

### doppler-Wavefront.py
### Doppler Effect for Sound (requires VPython)
### Rob Salgado
### salgado@physics.syr.edu http://physics.syr.edu/~salgado/
###
### v0.5 2007-02-27 tested on Windows XP/TabletPC
### with Python-2.3.4.exe and VPython-2003-10-15.exe
### 改寫: 中港高中王尊信老師 v.20170227

from visual import *

vs=0.20 #波源的速度
vr=0.30 #觀察者的速度
vw=0.00 #風速,預設為零,減少變因。原程式設為0.10

scene=display(x=0,y=0,height=700,width=700)
scene.autoscale=0

source=sphere(radius=0.2, pos=vector(0,0,0), vel=vector(vs,0,0), color=color.red)
receiver=sphere(radius=0.2, pos=vector(3,0,0), vel=vector(vr,0,0), color=color.green)
diffx=receiver.x-source.x
if diffx==0:
signdiffx=0
elif diffx==fabs(diffx):
signdiffx=1
else:
signdiffx=-1
windvel=vector(vw,0,0)
nudge=vector(0,6,0)
nudgev=vector(0,0.5,0)

vsarrow=arrow(pos=source.pos+nudge ,axis=5*vector(vs,0,0) , fixedwidth=1, shaftwidth=0.1, color=source.color)
vrarrow=arrow(pos=receiver.pos+nudge-nudgev ,axis=5*vector(vr,0,0),fixedwidth=1 ,shaftwidth=0.1, color=receiver.color)
if vw != 0: vwarrow=arrow(pos=nudge+2*vector(0,1,0) ,axis=5*vector(vw,0,0),fixedwidth=1 ,shaftwidth=0.1, color=color.cyan)

vslabel=label(pos=vsarrow.pos+nudge ,text=”%4.2f” %vs , color=source.color,box=1)
vrlabel=label(pos=vrarrow.pos-nudgev ,text=”%4.2f” %vr , color=receiver.color)
if vw != 0: vwlabel=label(pos=vwarrow.pos+vector(0,1,0) ,text=”wind speed= %4.2f” %vw , color=vwarrow.color)
tmax=12.
dt=0.005
twopi=2*math.pi
N=32

ball=[]
ball0flag=[]
sourcelabel=[]
receivedlabel=[]

def new_wave(t):
ball0flag.append(0)
sphere(radius=0.05, pos=source.pos, color=(.5,0,0) )
sphere(radius=0.05, pos=receiver.pos, color=(0,.5,0) )

for i in range(0,N):
theta=twopi*i/float(N)
ball.append(sphere(radius=0.1,pos=source.pos,
vel=vector(cos(theta),sin(theta),0) ))
sourcelabel.append( label(pos=ball[N*(len(ball0flag)-1)+3*N/4].pos, text=”%4.2f” %t,
color=source.color, linecolor=source.color ))
def meeting(t):
global signdiffx
label(pos=source.pos+nudge-nudgev/2.0, text=”(%4.2f)” %t,
color=color.white, linecolor=color.white )
print “(%4.2f)” %t
signdiffx=2

print “successive wavefronts received at time…”
new_wave(0)
told=0
#clock=label()
for t in arange(0,tmax+dt,dt):
rate(100)

# clock.text=”%f” % (t%1.0)
if t%1.0 < told%1.0:
# print “t=”,t, “len=”,len(ball)
new_wave(t)

told=t

if signdiffx==0:
if fabs(receiver.x-source.x)>0: meeting(t)
elif signdiffx==1:
if (receiver.x-source.x)<=0: meeting(t)
elif signdiffx==-1:
if (receiver.x-source.x)>=0: meeting(t)

for i in arange(len(ball)):
ball[i].pos += (ball[i].vel+windvel)*dt
source.pos += source.vel * dt
receiver.pos += receiver.vel * dt

vsarrow.pos=source.pos+nudge
vrarrow.pos=receiver.pos+nudge-nudgev

vslabel.pos=vsarrow.pos+nudgev
vrlabel.pos=vrarrow.pos-nudgev

for j in arange(len(ball0flag)):
sourcelabel[j].pos=ball[N*j+3*N/4 ].pos
if (ball0flag[j]==0 and
( (receiver.x >= source.x and ball[N*j].x >= receiver.x)
or (receiver.x <= source.x and ball[N*j+N/2].x < receiver.x)
)):
ball0flag[j]=1
print “%4.2f” %t
receivedlabel.append( label(pos=ball[N*j+(N-3)].pos, text=”%4.2f” %t,
color=receiver.color, linecolor=receiver.color ))
elif ball0flag[j]==1:
receivedlabel[j].pos=ball[N*j+(N-3) ].pos

#Now… WHEN AN OBJECT IS PICKED, 如果選擇某物體
#TRANSLATE THE scene.center TO THE OBJECT’S POSITION, THEN ZOOM 視窗將會移到此物體,放大
while 1:
rate(5)
if scene.mouse.clicked:
scene.mouse.getclick()

newPick=scene.mouse.pick
if newPick !=None:
tempcolor=newPick.color
newPick.color=color.yellow
#pick_r=newPick.x*4.
#string= “r=%7.5f” % pick_r
#label(pos=newPick.pos,text=string,xoffset=-5,yoffset=5)

target=newPick.pos
step=(target-scene.center)/20.
for i in arange(1,20,1):
rate(10)
scene.center +=step
scene.scale *= 1.037 #(1.037**19=1.99)
newPick.color=tempcolor

心得:

用Python學物理,並非一步登天,馬上要學會程式的撰寫。處在資訊時代,看懂程式,改適當的參數,是學Python可讀性高(read-ability)的優勢,充分利用這樣的優勢,讓物理變視覺化,幫助理解,是科學教育、創客精神(maker)重要的一環

 

VPhysics試教-計算等加速度追趕公車問題

教學目標:

利用Python計算出模擬出運動學的等加速度運動,以常見段考題~~追趕公車問題為例,熟悉Python的等速度與等加速度,藉由改變參數,讓追趕問題變有感

傳統教學缺點:

當我們要計算追趕問題時,學生一方面要對等速度與等加速度的觀念熟悉;另一方面,當兩者綜合時,學生往往容易混淆而產生迷思概念,屬於低學習成就的單元。

VPhysics教學優點:

利用學生改變公車與趕公車的乘客的速度與加速度,歸納出追上公車的情形,進而了解兩這相對速度、相對位移與v-t圖的交錯面積。

Python程式:

###############################程式開始##############################
from visual import *

#——————————————————————————
# 1. 參數設定: 改成追趕公車題型
#——————————————————————————
v = 0.09 #木塊速度 = 0.03 m/s
dt = 0.0001 #畫面更新的時間間隔,單位為s
t = 0 #模擬所經過的時間 ,單位為s,初始值為0

a=1
v2=0
dx=0.045

#——————————————————————————
# 2. 畫面設定
#——————————————————————————
scene = display(title=’1′, width=800, height=800, x=0, y=0, center=(0,0.06,0), background=(0.5,0.6,0.5))
floor = box(pos=(0,-(0.005)/2,0), length=0.3, height=0.005, width=0.1)
cube = box(pos=(0, 0.05/2, 0), length=0.05, height=0.05, width=0.05, material=materials.wood)
cube2 = box(pos=(0, 0.05/2, 0), length=0.05, height=0.04, width=0.05)
cube2.pos.x =dx

#——————————————————————————
# 3. 物體運動部分
#——————————————————————————
while(cube.pos.x < 0.10):
rate(1000)
t += dt
cube.pos.x += v*dt
v2 +=a*dt
cube2.pos.x += v2*dt
print t

心得:

這是第一個將物理講義的題目,變成Python的程式,寫完可以滿足學生在程式設計的成就感

VPhysics試教-計算波耳氫原子光譜條數

教學目標:

利用Python計算出波耳氫原子光譜,當電子由高能階降到低能階時,總共產生哪幾個能階

傳統教學缺點:

當我們要計算波耳氫原子能階的條數時,如果學生的排列組合觀念不佳時,老師無法以列舉法詳細列出光譜種類,利用Python可以大量列舉、反覆練習,故適合用Python作為此單元的補救教學

VPhysics教學優點:

利用學生改變高低能階時,詳細列出各種情形,使學生徹底了解光譜的規則

Python程式:

# -*- coding: cp950 -*-
# 0.程式目標: 計算波爾氫原子光譜條數 coded by 中港高中王尊信老師
# v. 201702 wthwth@mail.cgsh.tc.edu.tw

# 1.參數設定

# 2.畫面設定

# 3.初始條件

ni=2 #低能階
nf=6 #高能階
# 4.運動輸出

for i in range (ni,nf):

for j in range (i+1, nf+1):
print’There is the spectrum from the ‘,i,’th energy level to the ‘,j,’th energy level.’

心得:

此程式簡單扼要,適合初學者學習,容易產生成就感