0 引 言
案例教學法被認為是教學究順應當代教育改革方向的成功教育模式。本文將案例教學引入到計算機程序設計基礎課程數組部分實踐教學過程,法數并對教學效果與實踐經驗進行分析研究,組實結果證明在數組部分采用實際的驗教用研生活案例設計,極大地調動了學生的學中主觀能動性,激發了學生對知識靈活運用的案例探究興趣。
案例教學起初是教學究由美國哈佛大學商學院提出,在多次實踐后取得了成功,法數案例教學是在課堂上引入具有趣味性和生動性的案例,與傳統教學相比,該方法使課堂更加活躍,教師也通過這種教學法更新了教育理念,實現“知識傳授”向“能力培養”的轉變。案例教學最早應用于法學行業和醫學行業,直到 1970 年,這種教學方法開始在教育行業推廣使用 [1]。
案例教學法的優勢在于 :
(1)直觀性強,易引起學生的興趣,使學生在好奇心的驅使下完成知識的領悟 ;
(2)設計一般采用案例引入——提出問題——分析討論——解決問題——歸納總結流程。這幾步層層遞進,有利于學生自主思考和分析 ;
(3)案例設計一般從實際生活實例入手,實踐性強,使學生在上機實踐中完成知識的運用 [2-3]。
1 數組實踐教學中傳統的案例設計
學生在數組部分學習時,普遍感覺數組概念簡單,基本內容簡單易懂,但解決實際問題時通常無處著手。對學生來說,在課堂理論教學中,教師通常介紹數組的結構特點,并讓解決一類問題。這部分案例通常較簡單,目的在于方便學生理解數組的數據結構。
傳統數組部分案例設計大都采用經典排序或查找算法。學生在上機實踐過程中通常能較好地完成這部分內容,經典數組應用中的排序和查找算法代碼較成熟、精煉,學生易于理解掌握并熟記。這樣的案例設計通常無法加深學生對數組數據結構特點的掌握,只是完成了固定代碼的拷貝實踐練習。
針對傳統數組部分案例設計的不足,本文將學科競賽中的大數運算引入到數組部分的實踐練習中,使用了“由淺入深” 與“循序漸進”相結合的案例教學法。
2 案例設計
實際生活中存在有超大整數,這些超大數據需進行信息處理。而計算機中所有數據類型都無法表示這些超大數據,因其位數超過最大數據類型所能表示的范圍,因此如何完成這類數據的存儲和運算值得討論。
2.1 超大整數加減法運算
從大數的存儲進行分析討論,涉及字符數組知識。字符數組存在“%S”格式輸入和輸出,把超大數作為字符串,采用字符數組存放,可方便完成數據的輸入輸出 [4]。從最簡單的超大整數加法入手,解決存放問題。兩數相加涉及的知識如下:
(1)加法的運算是從低位向高位進位,若數組按順序存放,大數的最高位在數組的首元素,若加法運算后最高位存在進位時,需依次移動數組中的元素,較為繁瑣。故加法運算前,先進行字符串的在字符數組中的逆序存放,即大數的最低位為數組的首元素。
(2)進位問題的判定,對應位做加法時存在進位問題。
(3)運算結果的輸出問題,加法運算相對簡單,該案例的設計較好地訓練了學生對字符數組應用的掌握。由加法運算過渡到減法運算,強調減法和加法運算的不同之處。首先保證大數減小數,可通過比較字符串比大小確定大數 ;減法從低位到高位進行對應相減運算,結果為負時,前一位數需減 1(借 1),最后對于結果為負數的值,進行加 10 處理,如 圖 1 所示。
2.2 超大整數乘法運算
對于兩個超大整數乘法運算 [5],數據的存放及輸入輸出與數據加法和減法相同,兩大數乘法運算的關鍵在于首先確定相乘結果為幾位數(n 位數和 n 位數相乘結果不大于 2n 位 數)。其次,第 i 位和第 j 位相乘結果存放在第 i+j 位,如圖 2所示。最后處理進位關系(通過與整數 10 進行模和除法運算,對第 i+j 位的累加求和后的兩位數進行分離)。
乘法運算案例的設計是對加減法運算的循序遞進,學生由乘法運算易想到除法運算,除法運算要考慮的問題更復雜,因此在實踐教學過程中不做要求,但對于學習程度較好的學生,可引導他們進行下一步學習。
從兩個超大數的加法、減法到乘法案例設計循序漸進,使學生在上機實踐的過程中既能很好地理解超大數以字符串形式存放在數組,又能較好地使用數組數據結構的特點來完成指定的邏輯運算。乘法運算的難點在于數組元素對應位相乘的結果應該位于數組元素的第幾位。這樣的任務設置符合學生的認知規律,可加深學生理解并掌握。
此實驗案例的目的在于除了熟練掌握查找、排序常見算法之外,還可靈活利用數組克服計算機數據類型存儲數據范圍有限的缺陷。對于超大數間的運算,可利用數組存儲數據的特點加以解決。讓學生體會如何利用程序設計的思想來完成編程。
3 結 語
計算機程序設計基礎中,數組是最為基礎的數據結構,稍復雜的問題中都會遇到這類數據結構,因此學習和熟練掌握數組的應用非常必要。上機實踐的教學過程中需精心進行案例的設計,讓學生既不會畏難,又附有一定的挑戰,使學生在熟練掌握基礎知識的同時進行一定的知識拓展,這對于培養他們的思考和思維能力非常有益。通過往屆學生的授課實踐結果證明,該部分所采用的案例設計非常成功。計算機程序設計基礎課程是一門實踐性非常強的課程,對于各章節實踐案例都需要精心設計,使學生在解決生動有趣的實際問題中,完成計算思維能力的培養。