發表文章

Python Tutor 線上Coding工具介紹

圖片
Python Tutor 是一套可以將程式碼視覺化的工具,幫助學習程式設計的人來了解程式碼的運作情形,支援的程式語言有 Python2 、 Python3 、 Java 、 JavaScript 、 TypeScript 、 Ruby 、 C 、 C++ 。 以 Java 語言為例,進入後會看到底下網頁: 按下 Visualize Execution 按鈕後,可看到類似下圖的結果(本文範例網址: https://goo.gl/Zd2GCn ) 有四個按鈕 First、Back、Forward、Last  與 滑桿 可用來移動到程式的某一行,並觀察尚未執行此行程式的結果。此外網頁底下還有列出有使用 Python Tutor 的 MOOCs 課程以及程式範例。 底下有幾個教學影片可供參考: Python Tutor - 30-second basics Python Tutor - 3-minute introduction Python Tutor - 6.5-minute full introduction 參考資料: [1]  http://pythontutor.com/ 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

當彈珠台遇到了arduino 之mBlock程式設計 ( mBlock: Taiwan Pinball Project )

圖片
本篇文章主要講解 Arduino 台式彈珠台的程式設計部分。 硬體材料: 1. Arduino UNO R3 板子 x 1 2. 感應開關(限位開關)  x  9 3. 公對公杜邦線  x  11 (開關 9 條,麵包板+5V 與 GND 各一條) 4. 公對母杜邦線  x 24 ( 開關 18 條,蜂鳴器 2 條,LCD 4 條) 5. 麵包板  x 1 6. 蜂鳴器  x 1 7. I2C LCD  x 1 8. 1K 電阻  x 9 接線對應腳位 : 開關接 D2 ~ D10 蜂鳴器接 D12 LCD SDA 接 A4 LCD SCL 接 A5 mBlock I2C LCD 擴展 要讓 mBlock 可以使用 I2C LCD 的積木,需在 mBlock中,開啟 擴展管理員 安裝擴展 LCD I2C Pack 1.03 。並將 NewLiquidCrystal  (本文使用 NewliquidCrystal_1.3.4.zip )解壓縮後,複製到mBlock 的 Arduino 程式庫路徑  C:\Program Files (x86)\mBlock\Arduino\libraries 。 再往下看前,請先思考彈珠檯要怎麼計分 底下是筆者所想到的幾個計分方式: 等差:1 + 2 + 3 + 4 + 5….  等比:1 + 2 + 4 + 8 + 16... 隨機加分:亂數1 + (亂數1+亂數2) + (亂數1+亂數2+亂數3) 質數:2 + 3 + 5 + 7 + 11 + 13 + 17 + 19 ... 當然還有其他的方式。 等差計分方式積木: 等比計分方式積木: 活動照片:  https://www.facebook.com/groups/yunlinmaker/permalink/1120988434702083/ 測試影片一: 測試影片二: 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the ...

偷插電的資訊科學二進位單元的Scratch程式

此程式是根據 偷插電的資訊科學的二進位單元 所發想出來的,遊戲玩法: 1. 按下綠旗,將十進位數字歸零。 2. 點擊卡片就會進行翻牌的動作。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

Baud rate 是什麼?

圖片
Buadrate 可以想成兩個人要溝通時,雙方的 說話傳送速度 與 耳朵接收速度 ,假如甲方的 說話 傳送 速度 是一秒三個字,乙方的 耳朵接收速度 是一秒一個字,那當甲方說話時,乙方就會來不及處理了,就會造成聽不懂對方說什麼! 例如甲方說了:「 從 現在 開 始, 我 要告 訴 你一 件 天大 的 祕密!」 乙方會解讀成:「 從 開 我 訴 件 的 」 那套在兩個晶片溝通上,兩個晶片的溝通速度不一樣的話,就會有亂碼產生的可能,發生的情況可能會在下列情況: 1. 兩台電腦用RS232相連的時候。 2. 藍牙模組與MCU (Arduino UNO等)溝通時。 3. 電腦與 Arduino Uno 溝通時。 4. ....其他。 簡言之,機器不像人類這麼厲害可以自動調整 說話 傳送 速度 與 耳朵接收速度 這兩點,所以只好透過一些設定的方式來讓傳送速度與接收速度都一樣,讓雙方聽得懂對方的話語。 OK,下面的影片可以讓人了解一些的通訊觀念。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

2048遊戲:數字合併方法

2048遊戲 是個單人遊戲,玩家在 4 x 4 的格子內使用上、下、左、右來移動格子內的數字,移動之後相鄰且相同的數字會加總起來。(詳細遊戲規則可參考: https://char.tw/blog/post/41098784 ) 而此遊戲其中的數字合併加總的方法被 Coursera 的 Principles of computing part I 當成一個 mini project 作為python練習題,於是筆者照著網頁所提到的方法來練習一下。方法如下: 步驟一 將輸入的非零數字往左移動。 例如: [0, 2, 0, 2] ==> [2, 2, 0, 0] [2, 0, 0, 2] ==> [2, 2, 0, 0] 步驟二 合併相同的數字。 例如: [2, 2, 0, 0] ==> [4, 0, 0, 0] [2, 2, 2, 0] ==> [4, 2, 0, 0] [2, 4, 4, 2] ==> [2, 8, 2, 0] 實作出來的Python程式碼 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

演算法:二分搜尋法( Binary Search Algorithm )

圖片
最近想著怎麼教國中生二分搜尋法(Binary Search),就找到在 可汗學院 上的 猜數字遊戲 ,就將此網頁的教學觀念改成在下的版本。 可汗學院上的猜數字有兩題,一題是猜1到16的數字: 一題是猜1到300的數字: 根據以上的範例,就找了這個網頁  http://ftp.phjh.tc.edu.tw/~klychen/Research/FinalNumber/ChooseNum.php  給學生試試,並詢問學生底下兩個問題: 能在幾次內猜中? 用了什麼策略? 之後再解釋怎麼做才能保證在10次內猜中 1 到 1000 之間的數字,並解釋什麼是二分搜尋法, 結果發現其實有些國中生早就有怎麼解題的觀念了,只是不知道這個觀念是二分搜尋法的基礎,二分搜尋法適合在已經排序好的資料,而且也是個類似 divide and conquer 的方法。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.

<輕鬆的運算思維>一文閱讀心得

圖片
此文為閱讀  <輕鬆的運算思維> 一文的心得。 運算思維可以融入其他科目中,例如數學或國文。因為「預測與邏輯判斷」是運算思維的核心之一。 舉例來說,我們要用電腦來判斷兩個數字大小時,流程可能如下(以中文表示): 請輸入第一個數字。 請輸入第二個數字。 如果 第一個數字 大於 第二個數字 時     顯示 【第一個數字比第二個數字大】 否則     顯示 【第二個數字比第一個數字大】 可使用 Scratch 來完成: 將積木換成英文版: 也可以 Python 來達成: 最後以 C 程式語言當結尾: 簡言之, 若不考慮用哪種程式語言時,可以用中文的句子來描述並訓練一些邏輯概念,邏輯有了之後,利用 Blockly 相關工具(例如陳會安的 ArduBlockly中文離線版 、Blockly的範例程式 CodeEditor )來熟悉一些邏輯觀念與程式語言語法之間的轉換,最後再開始學習程式語言的語法 。 ( 筆者就是曾經深受程式語言的語法所困擾 )。數學的例子可參考 第一式:必殺-剪刀石頭布 。 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。 If you like this post, please click the ads on the blog or  buy me a coffee . Thank you very much.