教 Grace 寫程式
目標:了解電腦如何運作
一直想找機會讓 Grace 了解電腦怎麼運作,這次終於找到機會可以教學,我的目標是讓她從 Scratch 開始,應該是淺顯易懂好入手的語言。開始之前,我先簡單的解釋一下電腦為什麼是由 0 與 1 構成,什麼是 AND/OR/XOR/NOT Operator,畫了真值表,簡略的說明為什麼 NAND Gate 可以組成一台電腦,包含如何用加法做出乘法。並以這為例,來解釋「抽象」這概念,乘法就像加法的抽象,透過乘法,可以簡潔的表達一連串的加法,電腦語言也是如此,透過組合語言可以操作電腦,但我們會用更高一層的抽象、封裝後的語言來操作電腦。
我從來沒有教人的經驗,前述那一段讓我很懷疑 Grace 到底了解多少,但我們的目的只是「大略知道電腦怎麼運作」,不懂的話就放心跳過去吧,直接進入 Scratch。
Scratch 我們只做第一個 Tutorial,Scratch 設計真的不錯,用 GUI 讓不懂電腦的人可以很快上手,就算一開始看不懂課程內容,帶 Grace 操作一兩次她就了解流程,而且包含了一個語言很多基本的概念,像是依序執行的 Script, if-else condition, loop, event triggered,這些都是之後要學習其它語言時,首要要了解的部份。
不過在教導一般沒背景的人時,可能要用更生活化、實際的比喻,來連結課程以及實務。像 Scratch 內有一個 forever loop,一般人不會知道無限迴圈會造成多嚴重的問題,這時就是舉實例來解釋的好機會,我也用這例子說明單核心與多核心的區別,以及工作管理員的用途,Grace 一聽就懂(應該吧)。
第一堂課的小總結,給自己的叮嚀,就是無論無何都要記得課程的目標-讓 Grace 了解電腦是怎麼運作,盡量和 Grace 的生活經驗做連結,學習會比較有效果(下次複習就知道這句話的可信度)。
本日內容:
- 為什麼電腦只懂 0 / 1
- AND/OR/XOR/NOT Gate
- 封裝、抽象
- 單核心、多核心、工作管理員
- Scratch