Scheme/Activate Thinking in Scheme/前言

From YuntechWiki

Jump to: navigation, search

前言

長久以來,程式設計課程所教授的程式語言,常常有跟著流行走的現象。從Cobol、Fortran、C、C++,一直到近期流行的Java,都可以觀察到這種歷史的趨勢。至於當前流行的某個程式語言是不是一定適合初次學習程式設計的學生學習,則少有人過問。

以C++或Java而言,這兩個語言都是用來解決工商業界實際的複雜問題而設計的。而為了提高程式的執行效率,這些程式語言又都是需要經過編譯並且確定程式沒有語法與型態錯誤之後才能執行。這種程式語言,不但語法規則複雜,而且也需要較長的時間才能完成一個編輯、編譯、執行的程式設計循環。同時又為了支援大型軟體計畫的開發,這些程式語言的程式開發環境也包括了許多初學者不會用到的功能。使用這種「專業級」、「低回饋」的程式語言與開發環境來教授初次學習程式設計的學生,勢必會產生許多諸如語法複雜、錯誤信息難以理解、學習進度緩慢、挫折感高等妨礙學習的問題。其實對初學者而言,能透過快速互動,迅速的學習解決問題的思考能力,要比學習複雜的語法與開發工具來的重要的多。因此,選擇一個互動程度高而且又能夠以簡單的語法,來訓練初學者邏輯與程序思考力的程式語言,對提升程式語言的教學效益來說,便非常的重要。

本書便是在這樣的背景的下寫成的。我們使用了一個在麻省理工學院、加州大學柏克萊分校等國外著名大學也也使用的入門程式語言─Scheme。Scheme是一個能夠與學習者高度互動的dynamic type的程式語言,它的特色是可以用少數幾個簡單的語法、明確的語意與高度互動的特性,快速的訓練學生程式設計所需的思考能力。這些基本的語法與語意,雖然基本但卻同時具備了足以支援功能式、命令式與物件導向式程式設計觀念的高度「表達能力」。這些特色加上其高互動的特性,使得學生能迅速的得到學習的回饋與成就感,增進其學習的效率。

為了提升學習者的學習效率,我們與國立雲林科技大學資訊管理系所研發的程式語言學習網(PLWeb)結合,讓學生可以透過下載的練習題目、部分解答與編輯器,更方便、有效的練習寫程式。對教師而言,PLWeb提供了「出作業」、「自動判定程式是否通作測試」、「設定繳交時間」、「觀看全班學習狀態」及「抄襲嫌疑警告」等功能。這些監控功能可以幫助教師直接的瞭解學生的學習狀況,也能讓學生透過立即的實做,瞭解教師所解說的關於程式設計的專門用語。如此不但可以提升上課時的教學成效,而且還能夠避免許多程式設計課程中學生抄襲作業的問題。

Personal tools