瞭解:程式語言只是一種讓人方便以文字來操縱電腦的媒介, 實際上,所有電腦的動作都由『機器碼』操縱, 而機器碼儲存在記憶體內,用程式語言寫成的原始碼, 最終必須以某種程序換成機器碼。知道電腦科學所謂的「具體」和「抽象」之意義, 並藉以瞭解所謂「高階」與「低階」程式語言之分別。 瞭解巨集的意義與展開的程序,能夠掌握流程控制的概念與意義, 知道腳本和函式之不同。
從 ENIAC 的『程式設定』來瞭解最基本的『機器碼』與『流程』意義。 想像當時變換電腦程式之繁複手續, 應可體會如 Hopper 和 Backus 等人, 當年想要設計程式語言和配套『編譯器』的卓越創意和膽識。 而程式語言也直接觸發了字碼和字型的發展, 進而讓電腦從數字計算機發展為文字處理機, 而後蛻變為今日的多媒體資訊處理網路。
沒別的,這一講的技能部份,當然就是寫程式的能力。 因應不同讀者的工作需求或自我要求,個人選擇的程式語言不同, 而工作或興趣上需要掌握的程式語言深度也不同。 這部教材提供了 Matlab 和 Maple 這兩種套裝軟體的操作6紹, 也包括它們的程式語言 (第B講),可以用來寫腳本或者函式。 這部教材也講述了 LaTeX 排版語言 (第7講),它提供一套巨集的寫法。 而這部教材真正詳述的程式語言,是 C 語言。
1.27: ENIAC 程式設計 | John von Neumann (1903--1957) |
Charles Babbage (1791--1871) | Grace Murray Hopper (1906--1992) |
John Backus (b. 1924) |
在我們學習高階程式設計之前,先打一個紮實的基本功吧:青蛙跳。 這其實是一個遊戲,但是充分反應序列式指令的本性。 在這裡,沒有迴圈、沒有判斷、沒有副程式,就是按部就班地下指令,完成動作。
這一套教材基本上是按照 Kernighan/Ritche 的步驟編寫的。 後來添上一些計算問題。 教過三年之後,發現這份教材對普通大一學生而言走得太快了些。 但是目前並沒有重編的計畫。 有兩項工作可資彌補:(1) 先從 Matlab 入手,熟悉程式語言的幾個基本要素; (2) 在這份 C 教材中添加適當說明,提醒初學者避開某些段落。
大致上按照 C 線上教材安排的 3 個階段自我評量。 以填充題冷式練習,每個題出有一個已經寫了!份原始碼的模板, 學生按照題意、配合模板,填入 C 語言指令。 而後本系統將會自動編譯、執行、判斷。
讀過課文之後,用此工具檢查是否瞭解內容。
前言(9'15") | 機器碼與程式語言(19'12") | 低階與高階程式語言(3'42") | 巨集(14'34") |
腳本(10'59") | 流程控制(7'51") | 函式(28'27") |
關於這一講內容的歷年考題。
教師或助教,請看這一講的設計理念和教學建議。 這裡還會包含一些教學經驗的交流以及某些評量的統計資料。 (如何申請教師帳號?)
單維彰 (2000/04/08) --- 02/01/21 (徐), 04/05/22 (單)