Quantcast
Channel: Meme -- 教學與反省
Viewing all 257 articles
Browse latest View live

生物科技 02 -- 基因指紋分析


生物科技 03 -- 複製生物與科技倫理

演化學說 01 -- 神創論

演化學說 02 -- 用進廢退與天擇說

演化學說 03 -- 天擇與人擇的差別

化石 01 -- 化石的形成與種類

化石 02 -- 研究化石可知道哪些事?

生物演化史 01 -- 前寒武紀與古生代


生物演化史 02 -- 中生代與新生代

生物的分類

$
0
0

生物的種類非常多,為了能清楚表示不同種生物之間的關係遠近,科學家使用界門綱目科屬種七個分類階層將生物依親疏遠近進行分類。課本講到分類階層,都會有一張圖,從上到下寫著界門綱目科屬種,看起來很清楚,但學生其實很難理解那到底在畫什麼。

最容易理解的還是要從學生的生活經驗著手,所以我用衣櫃來解釋分類階層。

生物的學名

$
0
0

如果各種生物都沒有名字,人們彼此溝通時會有一些困難;但是,如果同一種生物有太多名字,這也是一個困擾。所以,瑞典科學家林奈想了一個辦法,幫生物取一個獨一無二的名字,稱為『學名』。

心理測驗與檢索表

$
0
0

有沒有做過網路、報章雜誌上面的心理測驗?沒有的話就來做兩個試試,看看你是什麼樣的人?做完心理測驗,我們可以想想看這跟生物課有什麼關係?

五界分類與病毒

$
0
0

科學家將生物分為五大類,也就是五個界,分別是原核、原生、菌物、植物與動物。原核生物是最簡單、最原始的生物,包含了細菌與藍菌。咦?那病毒呢?

病毒不是生物喔!

生物放大作用與環境污染

$
0
0

生物課本中對環境污染講的並不多,以我們學校今年選用的版本來說,才講了 12 行,看起來好像不太重要,離我們很遙遠。但其實不然,優養化造成的藻類增生在你家旁邊的水溝就看得到;重金屬污染的鎘米說不定你也吃過。

但這會有什麼影響嗎?當然,如果你祇吃到一點點鎘米可能影響不大,但如果沒有警覺多吃了點,那就影響大了!!

1A2B 猜數字遊戲

$
0
0

我很喜歡 1A2B 這個遊戲,想要寫一個小程式讓電腦出題,平常無聊時就可以猜電腦出的數字。

1A2B 遊戲規則

1A2B 這個遊戲在國外叫 mastermind 或 cows and bulls,玩法是選個 4 位數的數字,這 4 位數中的數字不能重覆,比方說 1231 這樣是不行的,因為 1 重覆使用了。另外,我自己玩的時候最高位數不能為 0,比方說 0123 這樣是不行的,但我看其他人在玩的時候最高位數還是可以為 0。

假設我選的數字是 1234,對手猜 9801,那對手猜中 1 這個數字,但是位子不對,這樣的情況稱為 B。因為對手沒有猜中其他數字,所以總計起來就是 1 個 B 而已,所以我會回報對手 『0A1B』,告訴他:『你猜中了一個數字,但這數字不在正確的位子上。』

如果對手猜 1987,那麼 1 被它猜中了,而且位子也在正確的地方,這樣的情況稱為 A, 因為對手沒有猜中其他數字,所以總計起來就是 1 個 A 而已,所以我會回報 『1A0B』,告訴他:『你猜中了一個數字,而且這數字在正確的位子。』

下次對手猜 4201,4 這個數字猜中了,但位子不對,1 個 B;2 這個數字猜中了,而且位子也正確,1 個 A;1 這個數字猜中了,但位子不對,1 個 B,總計就是 1 個 A 還有 2 個 B,所以我回報給對手:『1A2B』,遊戲的目標就是要達到 4A -- 4 位數都猜中,而且數字都在正確的位置上。

1A2B 猜數字遊戲的演算法

因為身邊的其他人對這遊戲沒什麼興趣,所以想要寫個小程式平時自娛,然後又想,嗯,如果要寫這樣的程式的話,除了人猜電腦的部份,那最好也寫個能夠讓電腦猜人的功能吧?不過這一方面的演算法實在不太清楚要怎麼進行。

我玩 1A2B 時常常用的是直觀法,看看之前猜的結果,綜合歸納後就:『啊,答案應該是這個!!』當中有不少『靈機一動』的感覺。但人類能用『靈機一動』來猜測,電腦沒辦法這麼做啊!所以還是得看看別人怎麼設計演算法讓電腦來猜人。

查了之後才發現好多高中生 &資工系學生做過研究,分析 1A2B 這個遊戲如果是人想個 4 位數的數字讓電腦猜,電腦最少要猜幾次才能猜中。大家使用的演算法就是先列出所有可能性,再逐一排除不可能的答案,利用這樣的演算法電腦平均要猜 5.x 次才能猜中,目前還沒有一個演算法能讓平均值少於 5。

嗯,要列出所有可能,然後逐一刪去不可能的答案?好吧,那如果最高位數如果可以為 0 的話,可能的答案有幾種呢?

最高位數有 0~9 這 10 種可能,第二位數跟最高位數不能重覆,所以祇剩下 9 種可能,第三位數剩 8 種可能,第四位剩 7 種可能,所以總共有 10*9*8*7 = 5040 種可能性 (是的,不是 0000~9999 共 10000 種可能,而是 5040 個可能的答案)。看到的演算法都是讓電腦最多猜 7 次,就能從這 5040 個可能的答案裡找到正確的結果 (平均要猜 5.x 次)。

4 位數我自己玩大概也是猜 5~6 次可以猜到對手的數字,因為太沒有挑戰性,所以我平常玩都是玩 5 位數的,這個我就要計算一下子了;我挑戰過 6、7 位數的,結果後來翻臉不玩! XDDD

重點是,我找到有人寫過可以猜 10 位數的程式!!

10 位數?那答案有多少種可能啊?嗯,不是 0000000000~9999999999 共 100 億種可能,而是 10! 。

『10 種?怎麼可能?你剛剛說 4 位數就已經有 5040 種可能了,怎麼 10 位數的反而才 10 種可能?你是不是在亂講?!!』

ㄟ,別急啦,我是說有 10! 種可能,而不是說 10 種,仔細看一下, 10 的後面有多一個驚嘆號,這是 10 的階乘。

10! = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 3,628,800

然後呢,你覺得 4 位數電腦就要猜 5.x 次了,10 位數電腦要猜多久?結果很讓人訝異,我試玩了一下,電腦祇要 13 次左右就可以猜到我設的數字。不過很遺憾作者沒有提供程式碼,所以不知道他的程式是怎麼運作的,光是把 3,628,800 種可能性存檔查表都要花點時間啊,但程式運作的很快。

繼續努力研究怎麼寫這個程式。 :)

參考資料:

  1. 猜數字遊戲最佳解的討論
  2. 猜數字遊戲的AI

人人寫程式是為補習班鋪路嗎?

$
0
0

教育部說 5 年內半數大學生需修過程式設計,想當然又引發不少爭論,很多人覺得文組學程式幹嘛啊?該不會是要為補習班鋪路吧?屆時滿街都是程式設計補習班,一堆在學校要被當掉的人趕快到補習班惡補以求期末不要被當。

是不是要為補習班鋪路我們暫且不論,但寫程式能夠大幅減少重覆的人工,其實是值得所有人學習的。以現在來說,學個 python 寫爬蟲抓資料應該是每個科系都用的到的技能,老貓在《文科生需要會寫程式嗎?》這篇文章裡也提到中文系的學生學會程式後,更容易去古文典籍裡面撈資料,所以我覺得讓所有人學寫程式是一個不錯的方向。

Coding 程式設計圖、Coding 程式設計

但要怎麼對文組學生教程式設計呢?非資工科系的學生需要的應該是像《氣餒止步!該怎樣教文組的人寫程式?》這篇文章裡面提到以實務為主的程式教學。但是說真的,師資很難找,因為那是許多新聞界先行者嘗試許久之後才發現的實用路徑。

現在台灣有太多科系自己還不知道需要什麼樣的程式教育,祇能請外系教授從 Hello World 開始教,但這樣的教學方式讓學生完全不知道學完程式語言能做什麼?要怎麼應用在工作上?

在教程式語言之前,各科系可能要統計一下系友畢業後的出路,他們有哪些會耗費大量人工的工作是可以利用程式來取代的,再回推回來看看大學時期需要教什麼程式設計。

這些需求可能各個科系不同,但這才會是對文組學生真正有幫助的方式。

Arduino 無線電子鎖

$
0
0

昨天忽然想到,祇要利用 Arduino + 藍芽模組 + 馬達 + 齒輪 + 門閂就可以做一個簡易型的無線電子鎖了。

Arduino 無線電子鎖圖、Arduino 無線電子鎖

利用這個電子鎖,門上連鑰匙孔都不需要,出門時用手機藍芽連上 Arduino,控制馬達將門閂帶上;回家時也是藍芽連上 Arduino 將門打開。小偷來到家門外,看到大門上連個鑰匙孔都沒有,完全不知道該怎麼下手,所以一開始想到時覺得這好像是個不錯的設計。

但是沒幾分鐘就想到這個設計有個很致命的缺點:『Arduino 或是藍芽模組當掉就祇能在門外哭』,所以是超無用設計。然後為了解決這個缺點,我想到可以從門內拉條延長線到門外,接在門外的插座上,Arduino 就由延長線供電。當 Arduino 或是藍芽模組當掉時就拔掉插頭重新接上,讓它重新開機就解決問題了。

不過馬上又自己否定掉這個設計,因為如果小偷來到門外,看到門上連個鑰匙孔都沒有,不知道該怎麼進入時,可能會很火大搞破壞,把門縫下拉出來的電線剪斷之類的,那就又回到之前相同的困境了。

想來想去,這是超無用設計無誤! Orz

柳暗花明又一村

但昨晚我又忽然想到,其實沒人說這樣的電子鎖祇能用在門上啊!這個要拿來當做門閂是不太好用,但如果是拿來做電子收藏盒的開關就滿實用了耶!因為是當電子收藏盒,所以平常不用接電線,要開關盒子的時候把電線接上,Arduino 模組通電開機,然後就可以用手機控制開關了。

這樣的收藏箱因為沒有鑰匙孔,別人也不知道裡面的機關是什麼類型的,所以不知如何下手。當然啦,鋸子下去可以鋸開 (或用噴槍燒開),但是如果是孩子不想讓爸媽要看東西,手工作一個木箱,然後用這樣的電子鎖將盒子鎖上,爸媽大概就沒輒了 (一般家長應該不會為了看孩子的小秘密動用到鋸子 &噴槍之類的工具)。

馬蓋先有一集就是 MIT 的學生用潛望鏡做了一個會誤導別人的門閂,沒人能打開那個門,後來有人作弊,偷看製作者怎麼開門,才破解了那個機關。

現在這個收藏盒外觀上沒有鑰匙孔之類的東西,完全使用電波操作,爸媽要開就更難一點了,就算偷看孩子怎麼開,也不知道要連上哪個藍芽,下哪個指令才能開啟 (所以比馬蓋先那集裡的門鎖更進步)。也就是說,爸媽與孩子的鬥智進入物聯網時代! XDDD

重點是,宣安把它實作出來了!實在是太厲害了!宣安在遙控門閂_試作版這篇文章裡,利用兩個微動開關讓門閂上後會自動斷電,這個方法太棒了,我也要來做一個!

科學方法 -- 何謂科學?

$
0
0

要我來說的話,我會認為國中生物最重要的兩個章節分別是上學期第一章的科學方法,以及下學期最後一章的環境保護,這兩章都是與我們生活習習相關的。不過要提到科學方法之前,我們要先瞭解什麼是科學。

過年時穿著紅色內褲打牌算不算科學?嗯,應該不算吧?好,那究竟什麼是科學呢?

如何與全身癱瘓祇剩一眼可眨的人溝通?

$
0
0

讓我們想像一個情境:你最好的朋友因為車禍而癱瘓了,雖然意識完全清楚,聽得到也看得到,但是全身上下祇剩下一隻眼睛的眼皮還能依照自己的自主意識來動作,雖說是能夠動作,但其實也就是能夠勉強眨一下眼睛而已,身為他最好的朋友,你要怎麼跟他溝通?

讓我們嘗試各種不同的方法跟他溝通。首先,兩個人要溝通一般就是經過聽說讀寫這些方法來進行,你的朋友癱瘓了,但是聽與讀不成問題,我們可以順利的將訊息傳遞給他;問題在於他無法寫,也無法說,那麼他要怎麼把他的想法讓我們知道?

利用眨眼傳遞訊息

啊,你想到這位好朋友的英文程度很好,他還沒車禍前可以用流利的英文跟外國人聊天,所以你可以教他摩斯電碼,讓他用眨眼的方式英文字母,再慢慢幫他拼成英文單句,進而成為句子。比方說眼睛快眨一下 (記為.) 後跟隨著長閉一秒 (記為 ─ )為 A;─...為 B;─.─.為 C,讓他用眨眼的方式打電報與他人溝通。

不過你馬上否決掉這個想法,因為這位朋友雖然能眨眼,但眨起來也不是那麼順暢,很難區分他到底是眨.還是 ─,而且他的動作也沒辦法那麼連貫,所以這方法不適合他。

要不然找個人從 ABC 開始,依照英文字母順序往下唸,如果唸到他想要的字母就眨一下眼睛,然後唸字母的人再從 ABC 開始往下依序唸,不斷重覆這個過程,隨著字母一個一個拼接起來,我們就能與朋友溝通了。

上述的方法還真的有人用過,《潛水鐘與蝴蝶》的作者 Jean-Dominique Bauby 有天醒來發現自己雖然聽得到也看得到,但全身都無法動作,祇剩一眼可眨眼,他就靠著眨眼睛讓朋友幫他記錄下訊息的方式寫出了《潛水鐘與蝴蝶》這本書。

當然,找個人每次都從 ABC 開始往下唸這樣可以進行溝通,但是效率很差,最慘的情況下要唸到第 26 個字母才是正確答案,有沒有改進的方法?

調整字母的順序

我們首先想到的是每個英文字母出現的機率並不相等,E這個字母在英文單字中出現的機會非常高,而 Z這個字母出現的機率就非常低。

在《密碼和隱密寫作 Codes and Secret Writing》這本書裡面,密碼學家 Herbert S. Zim 提到英文字母使用頻率的順序是 ETAON RISHD LFCMU GYPWB VKJXQ Z,前面 12 個字母就佔了總使用次數的 80%,因此我們可以把出現機率高的字母排在前方,這樣很可能唸的前個字母就是正確答案,大幅提昇效率。

接續這樣的想法,我們還可以想到,最常使用的五個英文單字分別是 the、of、and、to、a,如果你的朋友第一個字母選的是 t,直接問他:『是要拼 the 這個單字嗎?』可能又可以省一點時間。

好的,過一陣子你可能會發現依照字頻高低順序 ETAON RISHD LFCMU GYPWB VKJXQ Z 來問還是效率不夠高,如果你學過一點資訊概念,你會想到其實最多祇要問 5 次就可以找到你朋友想要的那個字母。

如果你的朋友他想要的字母是 Z,利用字頻順序表,你還是要唸到第 26 個字母才是他要的,但運用二分搜尋法你最多祇要 5 次就能知道他想要的是 Z 這個字母。

讓我們來看一下哈佛大學 CS50 這門課的 David J. Malan 教授如何利用二分搜尋法從上千頁的電話簿中找到他要的人名 (順道一提,國一生物下學期第四章的二分岔檢索表也是這個概念)。

教導其他人這一套方法

到目前為止我們已經把選字母的效率提昇到極致了,但是我們雖然已經將選字母的效率提昇到最高,卻還有很多問題還待我們逐一解決。比方說,你的朋友可能因為眼睛痠了而眨一下眼睛,但是你卻誤會他要選擇你現在正唸到的這個字母,那就造成溝通錯誤了啊,所以你們在溝通的過程中還需要加上一個確認的步驟。

再來,你也是會累,會需要休息的,這時候就需要請另一個人來唸字母順序了。但是這個接手的人並不知道你已經想了那麼多方法來提昇效率,他祇能使用最原始的方法傻傻的從 ABC 開始唸,那不是又讓效率整個滑落下來了嗎?我們前面的努力都白費了啊。

所以你必須把你想到的方法一步一步寫下來,包含用什麼樣的字母順序來問、如何確認你朋友的眨眼是真的要選擇而不是眼睛痠,這些步驟都要寫下來,讓任何一個有空接手這個工作的人都能夠依循你的方法來溝通。

你可以想像,如果接手的人當中有個人看不懂你寫的方法一定會造成大災難,所以這個運作方法一定要寫得清楚明白、簡單明瞭、沒有模糊空間、老嫗能解,這樣你才能夠放心的把工作交給他人,自己去放鬆休息一下。

好的,讓我們整理一下我們剛剛做了哪些事。

運算思惟 Computational Thinking

首先,我們想到要與這個朋友溝通的時候並不是要同時進行聽說讀寫,我們要做的祇是讓朋友的想法能夠傳達給我們,並不需要他來說、他來寫,我們幫他寫下來也是可以的。所以這個地方,我們把一個看似很困難、無解的問題化簡成為我們可以解決的小問題了,這個步驟我們稱為:拆解問題 (Decomposition)

然後我們發現祇要重覆唸英文字母讓你的朋友來選擇就可以達到最簡單的溝通效果了,這個步驟我們稱為:發現問題的規律、模式 (Pattern Recognition),我們的問題是要改進這個重覆不斷選字母的過程,讓它更有效率。

你有沒有發現,後來我們想到選字母方法其實還可以運用在其他地方,比方說,可以改用注音符號來進行。你的朋友雖然英文好,但是你的英文程度可能比不上他啊,用中文溝通可能會更方便一點,這時候改成讓他選注音符號可能對你來說會讓溝通變得容易一點。一開始我們的方法祇能選字母,後來還可以運用在注音符號上,不限於英文字母,這稱為:抽象化與通化 (Abstraction and Generalization)

最後,我們把這套方法寫下來,讓所有拿到操作手冊的人都能依循這個方式進行,這就是:演算法 (Algorithm)

綜合上述四個步驟你會發現,我們使用方法就是這幾年大力推行的運算思惟 (Computational Thinking)

  1. 拆解問題 (Decomposition)
  2. 發現問題的規律、模式 (Pattern Recognition)
  3. 抽象化與通化 (Abstraction and Generalization)
  4. 演算法 (Algorithm)

這幾年因為 AI 話題的盛行,大家極力提倡運算思惟,像在 108 課綱就要求中小學要教學生運算思惟。你聽到這件事可能會覺得:『來了,又來了,又來一個換湯不換藥的東西了。不過就是換換名詞而已嘛,在教育現場是能有什麼改變?而且學生學這些是要做什麼用?一定要搞到每個人都寫程式才可以嗎?以後要讀文組的人學這個是要幹嘛?』

不過從上面的例子來看,運算思惟是一整套思考的方法,有很多現有的模式可以遵循,讓我們面臨新的問題時可以遵循這一套操作流程來解決困境,比方說運算思惟的第一步要求先將問題拆解,讓看似無解的大問題變成多個可以個別解決的小問題,這種思考模式無論是文組學生或是理組學生都用得上。

中小學教運算思惟的教材

好吧,運算思惟聽起來不錯,但是要怎麼教運算思惟?

我的好友翁佳驥 (網名:好馬) 翻譯了一本《不插電的資訊科學》,就是不用電腦,祇在一般的教室裡利用紙牌、圖卡、活動等方式介紹排序、資料驗證等資訊科學裡面重要的概念。

好友謝宗翔 (謝 KK) &顏國雄 (雄哥) 則在《不插電的資訊科學》這個基礎上發展出《偷插電的資訊科學》,教師可以選擇先在課堂上一些內容,再帶著學生到電腦教室驗證或直接帶到電腦教授進行授課。你可以從網頁直接下載上述兩本書的電子版。

為什麼要這麼麻煩?都在電腦教室上課不是就好了嗎?為什麼要這樣帶來帶去的?因為你知道的,學校單位常常要接受一些奇奇怪怪的指令而影響授課

比方說,衛生署要求所有學生上網簽署不吸煙宣言、不吸毒宣言……最好這樣大家就乖乖不抽煙、不吸毒啦,但這樣衛生署才好像有在做事,才會有績效啊,所以硬是要學校配合做這種無聊又無效的工作;或是教育部要國三學生上網填志願 (這個確實跟教育有關),還有一大堆亂七八糟的單位給予學校奇奇怪怪的要求……

這些外來的要求都會用到電腦教室,原本在那裡上課的班級就沒電腦教室可用,得帶回一般教室上課,所以《偷插電的資訊科學》就發展出可在一般教室 &在電腦教室上課的兩種教學版本。

喔,抱歉岔題了。我想說的是,除了《不插電的資訊科學》&《偷插電的資訊科學》這兩本書之外,我覺得《思考的演算 (The Power Of Computational Thinking)》這本書也是資訊教師可以運用的教材之一。

其實,上面討論如何利用眨眼睛傳遞訊息的例子其實不是我自己想的,是《思考的演算》這本書第二章的內容,我祇是稍微補充了一小部份而已,書裡面介紹了更多運算思惟的應用方式,書中的這些例子很容易就可以運用在教學上。

像我就想到日後如果教資訊,我可以讓學生分組討論:『如何與全身癱瘓祇剩一眼可眨的人溝通?』每一組把討論的結果上台分享,吸取了其他組別的想法之後,再討論看看怎麼改進自己這組的方法,藉由討論,讓學生一步步優化這些過程,讓學生從中學習運算思惟。書中其他章節,如製造聊天機器人這些主題也都是讓學生可以實際操作,並從其中瞭解運算思惟的題材。

這一陣子出版了許多與演算法相關的書,但看過多本演算法書籍,我還是比較推薦這本《思考的演算》,因為他不僅止於介紹演算法而已,他是帶領讀者運用這些方法去解決問題,我覺得這更有意義。而且這本書的預設讀者就是高中生,所以內容簡單,經過教師修改過後要運用在國中小也很容易,推薦閱讀。

仍然有優化的空間

最後,在《潛水鐘與蝴蝶》作者 Jean-Dominique Bauby 剛開始寫書的那個時候他還不知道眼球追踨術這種高科技的方法,所以他祇能依靠這些低科技的方法溝通。後來他用眼球追踨術來選字就快多了,也不需要有個人在旁邊唸字母,他自己就可以搞定。

另外前面提到選了第一個字母 t 就聯想到單字 the,這不就是聯想輸入法嗎?因此,利用電腦的聯想功能也可以提昇輸入效率。也就是說,我們現行採用的解決方式隨著科技的發展還是有持續優化的空間。

但目前藉由眼球追踨術 &聯想輸入我們就已經可以大幅提昇溝通的效率,所以你可以盡情地吃喝,不需擔心腦血管破裂中風的問題,反正就算祇剩一隻眼睛的眼皮可以眨動,你還是可以與他人溝通。放心吃吧!! (大誤)

書籍連結

  1. 不插電的資訊科學
  2. 偷插電的資訊科學
  3. 思考的演算

如何畫重點

$
0
0

在期中考前很多學生都會很緊張:『這次考試的重點到底是什麼呢?』

其實要知道考試的大方向是很簡單的,你祇需打開目錄頁看一看就知道有哪些重點了,還花不到你 10 秒鐘的時間。

你不信嗎?我在影片中引用《如何閱讀一本書》中的例子,你可以利用這個例子試試目錄的威力。你也可以對照一下網路上其他老師幫忙抓的重點方向是不是就剛好是目錄的內容?

好,那除了目錄之外還有哪些重點呢?

自然科 &社會科的重點其實都清楚明瞭,出版社都已經幫忙標好了,祇要抓到出版社幫忙標記好的這些重點其實就已經差不多了。

到這邊重點可能是抓到了,但是不能理解這些重點的關係,那就要聽老師講解嘍! :)

Viewing all 257 articles
Browse latest View live