What might the software education look like in a Democratic Software Utopia? We take hints from mathematics education and propose that (1) the knowledge should have a long span of life and that (2) the pieces of knowledge should be “composable” just like many electronic gadgets are. Moreover, (3) the social issue related to software such as psychological effects, privacy, and freedom should be included in the curriculum.
在一個理想的世界理,軟體教育應該長什麼樣子呢? 從現有的資訊教育出發,我們拿數學教育作為對照, 指出今日資訊教育的諸多問題: 極短的壽命、 欠缺積木般的「組合力」、不鼓勵思考。 盛行於技職體系的證照考試尤然 – 強調題庫熟練度而非活用能力。 那麼,哪些知識與技術才能夠像數學知識一樣具有長久的價值、 加乘的效果、鼓勵思考呢? 正規表示式 (regular expressions) 是一個很好的例子。 Linux 命令列上的 pipe 與 command substitution 也很值得列入必修。 以程式語言來說, 跨各種桌面作業系統的 python 當然也很幾乎很符合上述標準; 但上述幾項 “類程式語言” 的門檻比 python 更低許多, 也更通用 (例如在 android 手機上直接可用)、 更適合作為大學的「程式必修課」。
不論採用哪一種工具, 各種開放的檔案格式都應該列為資訊教育的核心。 採用開放的檔案格式, 才有豐富的「組合活用」可能性。 更進一步, 開放的通訊協定也應列為資訊教育的重點; 消費大眾需要知道 「barrier of exit 下賊船的代價」。
再回頭檢視今天的現實, 「長久有用」、「模組化」從來就不是資訊產品決策的重要考量,我們也更能理解許多資訊大廠為何帶領著教育體系往相反的方向走。 許多產品的設計就像豬籠草, 是一條只能在同一公司產品線內越走越深的單行道。 另一方面, 使用者介面設計的心理學也被拿來鼓勵與阻礙用戶的各種選擇, 誘導群眾走向廠商屬意的方向。 還有, 老師要求學生安裝某個沒有原始碼的 app, 難道沒有法律責任嗎? 這些都應該是一般公民亟需要知道重要資訊知識, 但在今日的資訊教育體系裡面近乎完全不存在。 這些知識不僅攸關著消費者選擇不同廠牌產品的機會, 在這個程式碼吃掉一切的社會裡, 它們也將決定社會能否永續保持民主/自由/尊重隱私的運作方式。
About Greg Chao-Kuei Hung
A long time (free software, privacy, and freedom of speech) social movement worker making a living in the academia.
戰鬥部落格: https://ckhung0.blogspot.com/
教學部落格: https://newtoypia.blogspot.com/
噗浪: http://www.plurk.com/ckhung0
github: https://github.com/ckhung