程式語言是數學系學生的利器,學生透過撰寫程式於計算機內執行,除了可以印證許多數學理論外,同時也可以將數學理論應用於各個相關領域,例如:演算法,圖論,線性規畫,數論,微分方程數值解,數值分析,幾何,與許多統計機率課程等等。近幾年來,本系的程式語言及其應用選擇了 C++ 物件導向程式語言為課程主要教授的程式語言,茲簡單介紹於下:
80年代以前,程式設計的主要方式是以程序為設計主軸的程序導向程式語言,這類的程式語言如,Fortran, Pascal, C 等等。當程式設計員使用這類型的程式語言來設計程式時,其設計程式的主要方式是先將實際的複雜問題分解成若干個簡單的小問題,然後將每個小問題以簡單的程序或函式來處理,最後再將所有的程序連接在一起,原始的複雜問題就得以解決。然而當程式設計員使用這類型的語言設計軟體程式時,常常在不久後就遭遇到不可避免的問題,那既是:每當程式碼越趨於龐大,程式的更改與維修也越加困難,程式設計員經常為了增加軟體中的一個小小功能,而必須絞盡腦汁更改許多程式碼才能達成目的,
成程式後續的維護費用遠遠超過其初始設計費用。
80年代中期起,物件導向程式語言的興起,適時地提供了許多非常有效的程式設計方式來解決前述的軟體設計危機問題,這一類型的程式語言主要包含smalltalk, C++, Java等。物件導向程式語言在程式設計上以類別的設計為主,所謂的物件只不過是類別的一個實體而矣。其關係如同以下普通的C 程式碼一般:
int foo ;
這裡的整數 int 可以視為一個 C++ 類別,而變數 foo 則可視為一物件。有別於傳統程序導向程式語言,其將程序與程序所處理的資料分開設計,物件導向程式語言認為資料與處理資料的程序是一體的,且應合併一起設計,資料的更動皆可透過程序完成。以C++ 程式語言為例,C++ 的類別由資料成員與成員函式所組成,資料成員代表著類別的最基本資料,可透過不同的成員函式顯現作用。資料成員在設計上常被加以不同層級的保護,使用者僅能透過成員函式才能更改或使用。使用物件導向程式語言,程式設計員在設計程式時首先須分析如何將實際問題分解成不同類別,如何清楚的界定各個類別內的基本資料成員及其處理資料成員的成員函式介面。當主要的作用類別設計完備後,主程式部份不過是類別物件的直接使用而矣。
本課程為一學期的課程,課程的前半段介紹基本的程式設計操作,以如何靈活地運用迴圈與邏輯式子為上課主軸。課程後半段,則完全以類別設計為主。欲修課的學生最好有基本的程式設計能力,本課程鼓勵大學部的學生修習,唯本課的課程負擔稍重,建議大學部同學於三、四年級時選修。對有志於計算領域的學生或研究生,建議本課應與數值分析同時修習。
|