音感練習(運算思維應用)
如何把程式設計過程對應到[運算思維]這個理論。(非資訊專業,專有名詞如有誤用,請私訊更正,謝謝!)
A、題目:
電腦先演奏一次完整的音階,再開始測試。
電腦自動隨機演奏一個音,然後等待輸入(簡譜代號),輸入正確就說[答對了],錯誤就說[答錯了],等待2秒後再繼續下一題。
B、運算思維四個核心步驟:
拆解、找出規律、歸納與抽象化、設計演算法
- Decomposition(問題拆解) 將一個複雜的問題分解成很多的小問題,進而能夠更容易的瞭解,處理跟維護
- Pattern Recognition(模式識別、找出規律) 尋找問題中的相似之處
- Abstraction(抽象化-重點摘要、歸納與抽象化) 只專注於重要的信息,忽視無關緊要的細節
- Algorithm Design(演算法設計) 開發解決這個問題的步驟、規則…
C、解題練習
一、問題拆解:(將整個題目拆解成小問題)
1.電腦先演奏一次完整的音階
2.電腦自動隨機演奏一個音
3.等待輸入(簡譜代號)
4.比對答案
5.答案對錯回答(回饋)
二、找出規律:(跟舊經驗比對)
三、歸納與抽象化:(找出舊經驗中主要的設計)
四、設計演算法:(設計程式)
每一個小問題都依照二、三、四去解決,再組合起來。
二、找出規律(跟舊經驗比對) 三、歸納與抽象化(找出舊經驗中主要的設計)
1.[電腦先演奏一次完整的音階]
有關的指令:演奏音階
順序演奏7個音階
2.[電腦自動隨機演奏一個音]
有關的指令:隨機取數?(簡譜1~7)
取數後對應到音階?(Do、Re、Mi、Fa、Sol、La、Si)(條件式),變數
演奏音階
3.[等待輸入(簡譜代號)]
有關的指令:[詢問….並等待],問答
4.[比對答案]
有關的指令:運算(…)=(…)
5.[答案對錯回答(回饋)]
有關的指令:如果….那麼…否則(條件式)
四、設計演算法(設計程式)
scratch3開啟時沒有[演奏音階]積木,必須先添加。
在scratch3網頁的左下角點[添加擴展]
添加[音樂],這個擴展功能積木。
使用[音樂 ] 積木區的[演奏樂器設為(鋼琴)]和[演奏音階(60)(0.25)拍],兩個積木。
注意:音調單位為赫茲(Hz)(次/秒),這裡使用音樂上的[音階],單位不是赫茲(註)
融入自然領域的聲音單元和藝術領域的音樂(基本樂理)單元。
1.[電腦先演奏一次完整的音階]
有關的指令:演奏音階
2.[電腦自動隨機演奏一個音]
有關的指令:隨機取數?(簡譜1~7)
取數後對應到音階?(Do、Re、Mi、Fa、Sol、La、Si)(條件式),變數
演奏音階
建立一個變數[演奏音階],儲存隨機取數,再對應到[演奏音階],發出聲音
(使用條件判斷式:如果….否則….)
3.[等待輸入(簡譜代號)]
有關的指令:[詢問….並等待],問答
4.[比對答案]
有關的指令:運算(…)=(…)
5.[答案對錯回答(回饋)]
有關的指令:如果….那麼…否則(條件式)
程式整合:
程式下載:音感練習.sb3
———————————————-
上面的程式條件判斷式很長,輸入代號後也沒有發出對應的音階,可以將程式修改。
使用[廣播訊息]來解題。
一、問題拆解:(將整個題目拆解成小問題)
1.電腦先演奏一次完整的音階
2.電腦自動隨機演奏一個音
3.等待輸入(簡譜代號)
4.比對答案
5.答案對錯回答(回饋)
二、找出規律:(跟舊經驗比對)
三、歸納與抽象化:(找出舊經驗中主要的設計)
四、設計演算法:(設計程式)
每一個小問題都依照二、三、四去解決,再組合起來。
二、找出規律(跟舊經驗比對) 三、歸納與抽象化(找出舊經驗中主要的設計)
1.[電腦先演奏一次完整的音階]
有關的指令:演奏音階
第一種:順序演奏7個音階
第二種:
有關的指令:演奏音階,重複…次(迴圈),變數,疊代
重複7次,疊代,廣播訊息(呼叫函數),演奏音階
2.[電腦自動隨機演奏一個音]
有關的指令:隨機取數?(簡譜1~7),變數儲存
取數後對應到音階?(Do、Re、Mi、Fa、Sol、La、Si),廣播訊息(呼叫函數),演奏音階
3.[等待輸入(簡譜代號)]
有關的指令:[詢問….並等待],問答
4.[比對答案]
有關的指令:運算(…)=(…)
5.[答案對錯回答(回饋)]
有關的指令:如果….那麼…否則(條件式)
四、設計演算法(設計程式)
1.[電腦先演奏一次完整的音階]
有關的指令:演奏音階
第一種:順序演奏7個音階
第二種:
有關的指令:演奏音階,重複…次(迴圈),變數,疊代
重複7次,疊代,廣播訊息(呼叫函數),演奏音階
2.[電腦自動隨機演奏一個音]
有關的指令:隨機取數?(簡譜1~7),變數儲存
取數後對應到音階?(Do、Re、Mi、Fa、Sol、La、Si),廣播訊息(呼叫函數),演奏音階
3.[等待輸入(簡譜代號)]
有關的指令:[詢問….並等待],問答
發出輸入的音階
4.[比對答案]
有關的指令:運算(…)=(…)
5.[答案對錯回答(回饋)]
有關的指令:如果….那麼…否則(條件式)
程式整合:
第一種:
程式下載:音感練習(廣播).sb3
第二種:
程式下載:程式下載:音感練習(廣播)(迴圈).sb3
———————————-
程式寫作沒有標準答案。
———————————–
註:
資料來源:https://zh.wikipedia.org/wiki/%E9%9F%B3%E9%AB%98
中央C上之A音符發出的頻率為440Hz(表示成”A=440Hz”,或是”A440″),通常被當作「標準音高」
音高通常使用科學音高記號法或使用結合字母與數字(用以表示基頻)而成的記錄法。
“A440″的號碼則指定為69