戴 紅
文章編號:1672-5913(2009)08-0064-05
摘要:筆者借鑒程序設計中的模塊化思想,將“C程序設計”課程內容進行模塊化改造。本文首先介紹教學內容的模塊化設計思想,然后說明每個模塊內部的設計方法,最后通過闡述模塊之間的聯系,描述如何將各個模塊組裝成為整個課程內容。
關鍵詞:模塊化設計;C語言;程序設計;教學內容
中圖分類號:G642
文獻標識碼:B
1引言
“C程序設計”課程作為幾乎所有的計算機專業及許多非計算機專業學生的程序設計類必修課,在整個計算機課程體系中占有重要地位。然而因其具有知識點多、知識點之間的邏輯關系復雜的特點,又是許多學生感覺學習困難的課程。本文將程序設計中模塊化思想應用在C語言教學內容的組織上,改變傳統的內容編排模式,將整個課程內容分解為多個模塊,每個模塊內容緊湊、功能單一,模塊間聯系主線鮮明、邏輯性強。每個模塊內部設計都以該模塊所涉及內容能解決的實際問題為切入點,將要求學生掌握的內容以及這些內容能夠完成的任務給出明確的說明,將學生整個課程的學習目標分解為各個模塊的學習目標,使學生能夠明確模塊用途,學習目的性加強,提高教學的有效性。
2教學內容模塊化設計
模塊及模塊化的概念隨處可見,如建筑工程中的磚瓦構件,機器上的零部件,程序設計語言中的子程序、過程、函數、類,都可以稱之為模塊。模塊化的概念已被廣泛應用于軟件(Parnas,1972)、產品設計(Henderson & Clark,1995;Baldwin & Clark,2000;Ulrich,1995)、生產(Starr,1965)和組織形式(Sanchez,1995;Sanchez & Mahoney,1996;Langlois & Robertson,1992;Schillin & Steensma,2001)等多個領域和方面,它是指通過每個可以獨立設計的、能夠發揮整體作用的、更小的子系統(模塊)來構筑復雜產品或業務的過程。衡量一個系統是否為一個模塊化系統的主要依據是看該系統是否具有“模塊性”,即清晰而簡明的層次結構。其中的模塊是否具有很強的獨立性,都有自己不可替代的功能,而且相互依存相互作用。具體到程序設計中的模塊獨立性,一般采用兩種準則度量:耦合性和內聚性。耦合性是指模塊之間相互連接的緊密程度;內聚性是指模塊內部各元素結合的緊密程度;獨立性強的模塊應具有高內聚性和低耦合性。

圖1 傳統的內容組織形式與模塊化的內容組織形式對照圖
綜合上述思想,對教學內容進行剖析分類,并根據程序設計語言的四個基本成分(數據成分、運算成分、控制成分和傳輸成分),將內容按照其在程序設計中的作用、傳統組織形式與模塊化組織形式對照分解成七個功能模塊。圖1為傳統的教學內容組織形式和進行模塊化改造后的組織形式的對照圖。根據程序設計的模塊化思想,模塊具有功能內聚性為最強的內聚性,所以成分劃分的模塊,內部功能單一,基本可獨立設計,如“數據模塊”,主要介紹C中各種數據的表示和存儲,可涉及一些簡單算術運算和輸入輸出函數,在未介紹運算和輸入輸出模塊前,完全可以對這些內容進行簡單說明,而不影響學生對本模塊內容的學習。同時這樣劃分使每個模塊內容具有彈性,便于根據學生基礎和學習能力及學時情況等增減內容。
程序設計中所謂的模塊一般具有三個基本屬性:功能(該模塊實現什么功能),邏輯(描述模塊內部怎么做),狀態(該模塊使用時的環境和條件)。我們首先來描述各模塊的內容和功能,如表1所示。

程序設計中模塊的第二個屬性為“描述模塊內部怎么做”,下面介紹每個模塊的內部設計思路。
3模塊內部設計
3.1模塊一入門
本模塊是整個課程內容的引子和主線,其中起關鍵作用的是貫穿整個課程的7個實例。本模塊歸納出C語言能夠解決的典型問題,通過7個典型實例來說明,使學生對C有全局了解和把握;同時也為其余各模塊提供“原型”,其他模塊以這7個實例為起點,延展教學內容和實例。
模塊一的主要內容包括預備知識(程序設計語言和算法的相關概念);C語言概述(產生背景,特點);并通過第一個C程序“Hello,World!”,了解C程序的基本結構及開發C程序的環境Turbo C和C程序從編輯到運行的全過程。當然,本模塊的重點放在“C語言都能做些什么”,總結出四個方面:輸入/輸出信息,數值計算,非數值計算,處理磁盤文件,如表2所示。

3.2其他模塊的內部設計
首先提出問題,然后通過問答問題展開內容,最后總結。如表3給出了部分模塊的內部設計思路。

圖2到圖8為模塊一中的七個典型實例的演示圖。







4模塊裝配
模塊化過程包括分解復雜系統為各個模塊和將各個模塊裝配成為原來復雜系統兩個過程。首先考慮模塊的裝配方法,上面提到,模塊一是整個課程的基礎和核心,其余所有模塊的內容都是在模塊一中的7個實例的基礎上延伸,其他模塊中的實例可在這7個實例基礎上加工、衍變、豐富而成。其他模塊與模塊一中7實例的關系如圖9所示。再考慮模塊的裝配順序,這時要考慮該模塊使用時的環境和條件(程序設計中模塊的第三個屬性)。使用C語言進行程序設計時,程序內部結構一般為:輸入和表示數據、處理、輸出結果。按照這個結構,學生在程序設計時,需要“簡單地輸入和表示數據”,則裝配模塊二;需要進行“處理”,則裝配模塊三、模塊四、模塊五;需要“復雜數據表示和處理”,則裝配模塊六;需要“復雜輸入和輸出結果”時,裝配模塊七。
按照這個思路,所有模塊以7實例為裝配線,按模塊二到模塊七的順序組裝成為一個完整的課程系統。

圖9 各模塊與7個實例之間的關系
5總結
利用模塊化思想設計組織C程序設計課程的教學內容,將復雜、難學的內容分解為七個內容單一的模塊,所有模塊既功能相對獨立,又都圍繞同一核心主線(7實例)延展內容、衍生實例;再根據程序的結構和設計流程,按需裝配各模塊,從而為學生構造整個知識體系,有效降低了學生學習難度,加強了學習內容的邏輯性和銜接性,對提高課程教學質量有實質性幫助。
參考文獻:
[1] 譚浩強.C程序設計[M].北京:清華大學出版社,2001.
[2] 鄭人杰,殷人昆,陶永雷.實用軟件工程(第二版)[M].北京:清華大學出版社,2001.
[3] 南麗麗.階梯式教學法在C語言教學中的應用[J].計算機教育,2008,(7).
[4] 楊枝煌.模塊化分解與中國金融現代化改革[J].當代經濟科學,2005,(4).