2017-10-18 Scratch 排序方法—以「選擇排序」當範例

資訊科學

Scratch 排序方法—以「選擇排序」當範例

以多數人生活中的排序方法為例,介紹排序演算法。

電子書:

http://odata.tn.edu.tw/ebooktagapi/Intro/Index2?id=530e2762d2004522a34d303ef00ff279

排序的應用在生活中相當常見,我們習以為常的排序方法該如何描述,而這個概念如何以 Scratch 實做出來。

此本電子書以選擇排序 (Selection Sort) 當基礎,以最直覺、最常見的方法為例來介紹排序方法的實做。

了解多數排序演算法的基礎在於比較,如何使用清單有效的存取數字、交換數字,在空間和時間上操作。

https://scratch.mit.edu/projects/180636046/

2017-10-02 生活中的遞迴(淘氣的弟弟以生日蛋糕上的蠟燭為例)

資訊科學

生活中的遞迴(淘氣的弟弟以生日蛋糕上的蠟燭為例)

To Iterate is Human, To Recurse, Divine

遞迴是資訊科學中常見解決問題的方法,其形式簡潔而優美。

當我們在定義解決方法的步驟中,卻又參照到自身的這個方法,其不斷的變換,實則不易理解。

透過生活中的實際案例,解釋遞迴的概念,並試圖區別「重複」(迴圈)的概念。

 

電子書:

http://odata.tn.edu.tw/ebooktagapi/Intro/Index2?id=f04a77f67da74e8ab831680fbab04fc6

2017-09-30 什麼是遞迴?

資訊科學

什麼是遞迴?

To Iterate is Human, To Recurse, Divine

遞迴是資訊科學中常見解決問題的方法,其形式簡潔而優美。

當我們在定義解決方法的步驟中,卻又參照到自身的這個方法,其不斷的變換,實則不易理解。

透過生活中的實際案例,解釋遞迴的概念,並試圖區別「重複」(迴圈)的概念。

 

電子書:

http://odata.tn.edu.tw/ebooktagapi/Intro/Index2?id=a27cb43d8c85492bbc92f7836258013b

2017-09-01 Scratch 模擬設計─掉落的藝術 (Fallen Art)

資訊科學

Scratch 模擬設計─掉落的藝術 (Fallen Art)

不同形狀的物體隨機掉落在不同的地方,堆疊出不同的圖騰和數量,也是一種自然之美。

Scratch 中物體如何精準掉落於底線上而不超過,以下程式提供一種技巧。

https://scratch.mit.edu/projects/172766046/

  1. 數字鍵 1 ~ 6 切換掉落物體造型
  2. 右鍵切換底線造型
  3. 空白鍵開始

JavaScript 版本 (適合手機與行動裝置)

https://phosphorus.github.io/app.html?id=172777011&turbo=false&full-screen=true

https://scratch.mit.edu/projects/172777011/

2017-06-25 Scratch 訊息廣播接收 (同步與非同步執行) Synchronous vs. Asynchronous Execution

資訊科學

Scratch 訊息廣播接收 (同步與非同步執行)

Synchronous vs. Asynchronous Execution

https://stackoverflow.com/questions/748175/asynchronous-vs-synchronous-execution-what-does-it-really-mean

Scratch 中內建許多像是程序 (procedure)、事件驅動 (event-driven)、並行 (concurrency) 與訊息廣播接收這類的溝通方式 (Synchronous and asynchronous execution) 等,都是程式執行流程的進階控制和策略,使用者卻可輕易的運用於設計中。

以下範例,嘗試以簡化的方式呈現出「同步」與「非同步」執行的概念。

  1. 連續快速按下「空白鍵」,因採用非同步 (async) 方式,箭頭尚為完成移動過程,又回到初始;
  2. 連續快速按下「右鍵」,因採用同步 (sync) 方式,需等待箭頭完成移動過程,才能回到初始。

https://scratch.mit.edu/projects/167210857/

2017-06-13 3D 列印作品─正交運動方向轉換機械

資訊科學

3D 列印作品─正交運動方向轉換機械

自動皮帶的機械運作原理。先使用吸管做出雛型,再用 3D 建模方式繪製出來,以 3D 列印機實作。

 

2017-05-27 mBot 光源跟隨 (Light Following)

資訊科學

mBot 光源跟隨 (Light Following)

今天突發奇想 mBot 是否可以在黑暗中找到光源,邁向光明。分享此一實作結果,驗證想法。

改裝 mBot 光線感應器,侷限於接受特定方位的光源,使其成為指向性。偵測左右兩側光線差異,判定方向,逐步找尋光源。

  1. 改裝光線感應器
  2. 原理與演算法
  3. 實際影片

    mBot 光源跟隨 (Light Following)

  4. 完整程式

2017-05-11 Scratch 分身應用與隨機粒子模擬

資訊科學

Scratch 分身應用與隨機粒子模擬

眾矢之的 (Magic Particles)

設定個別粒子(分身)的運動模式(微觀),觀察整體的運動模式(鉅觀)。

https://youtu.be/5iA-WJZYxrY

https://scratch.mit.edu/projects/160378209/

2017-05-09 Scratch 中使用堆疊實作函數回傳值模擬遞迴 (費氏數列)

資訊科學

Scratch 中使用堆疊實作函數回傳值模擬遞迴 (費氏數列)

Fibonacci Number 範例,使用堆疊 (Stack) 實作函數回傳值。

To Iterate is Human, To Recurse, Divine

請使用 Turbo Mode。按 Shift 加綠色旗子。

https://scratch.mit.edu/projects/159864657/

2017-04-15 Scratch 與 mBot 中「巢狀條件判斷」與「變數改變」的概念

資訊科學

Scratch 與 mBot 中「巢狀條件判斷」與「變數改變」的概念

一、「巢狀條件判斷」

以下左右二個看似等價的程式,因 mBot 外部改應器隨著時間一直在變,這種不固定的特性可以凸顯出程式的差異,說明二者其實是不同的程式意義,並觀察出巢狀條件判斷的 if-else 互斥特性。

當運用變數紀錄 mBot 外部感應器的狀態時,可以確保條件判斷時的不變性。

二、「變數改變」

前述例子中,使用變數紀錄狀態雖可以確保條件判斷時的不變性。但面對 Scratch 這類支援平行 (Concurrent) 同時發生的特性,仍須注意程式的執行順序。以下例子,嘗試設計這類「搶先」的可能性,導致兩個程式片段的順序不易預測,最終造成不同執行結果。

更多消息