有幸在自由軟體鑄造場電子報第102期讀到這篇文章「如何像電腦科學家一樣思考」,文中作者 David Beazley 是以 Python 語言來說明如何學習電腦程式語言,以及它跟 C++ 或是 Java 的不同,應用在教育上有何優勢,這讓我想起自己誤打誤撞的學到 PHP 這個程式語言,進而真正認識到程式語言中,什麼是變數、迴圈、陣列的程式基礎,而不是一直陷在大一時,自己只會想著為什麼學校只有教 VB 而不教別種程式語言,如 Java 呢?而後來我也因為學習了 PHP 又回去學 VB 時的感受是非常的特別的(因為大一的程式語言被當,所以重修...^^" ),才知道,原來程式語言的基礎都是一個樣嘛!

文摘:
◎ 用 Python 介紹程式設計

過去的兩年裡,轉換及使用如何像電腦科學家一樣思考的過程已經證實 Python 適於教導初學的學生。Python 極其簡化程式設計範例,並且讓重要的程式設計觀念較容易教授。

課文中的第一個範例說明了這一點。傳統的 Hello, world 程式,在本書的 C++ 版本看來如下:

#include <iostream.h>

void main()
{
   cout << "Hello, world." << endl;
}


在 Python 版本中,它變成了:

print "Hello, World!"

雖 然這是個平凡的例子,Python 的優點脫穎而出。約克敦高中的「電腦科學第一級」沒有先修課程,所以許多看到此例的學生是第一次看到一個程式。他們之中有些人聽說電腦程式設計難以學習 後,無疑地有一點緊張。本書的 C++ 版本總是強迫我在兩個令人不滿意的選項中選擇:不是冒著一開始就使某些學生感到困惑或恐懼的風險,解釋 #include、void main()、{ 和 } 陳述,就是頂著相同的風險告訴他們現在不必擔心這些東西,我們稍後會再講到這些陳述。課程此時的教學目標是介紹學生程式設計陳述的概念,並讓他們撰寫第一 個程式,從而介紹程式設計環境。Python 程式正好擁有進行這些事所需的所有條件,既不多也不少。

使用像 Python 這種非常高階的語言,讓教師得以延後談論關於機器的低階細節,直到學生擁有所需的背景知識,以進一步理解這些細節。它因此使教學能夠先解決重要的事。關於 這點的絕佳範例之一便是 Python 處理變數的方式。在 C++ 中,變數是一個用來容納東西的位置的名稱。變數至少有部份必須宣告型態,因為必須先決定它們所指涉之位置的大小。如此一來,變數的概念就與機器硬體緊密結 合在一起。變數強大且基礎的概念對初學的學生來說,已經十分困難(同時就電腦科學及代數兩個層面來看)。位元組及位址對問題沒有幫助。在 Python 中,變數是指涉某個東西的名字。這對初學的學生來說,是個更為直覺的概念,並且也更為接近他們在數學課中學到的變數定義。今年我教導變數比過去少了很多困 難,而且我花費較少的時間指導使用它們有問題的學生。

全文閱讀←請點我

原文來源:How to Think Like a Computer Scientist: Learning with Python
arrow
arrow
    全站熱搜

    tern 發表在 痞客邦 留言(0) 人氣()