白魚秀
(榆林學院 信息工程學院, 榆林 719000)
“計算機導論”課程是計算機專業的一門專業基礎課,也是該專業的導入課程。它不僅是連接高中與大學的橋梁,更負擔著指引學生專業入門、調動學生學習興趣的重任,使學生對整個大學四年的學習課程有一個系統概括性的認識。
但是,目前“計算機導論”課程教學中存在很多問題。(1) “計算機導論”課程涉及的知識面廣但不精[1],傳統的計算機導論課程都是由一個老師講授所有課程內容,按照教材簡單介紹后續專業課程,因專業術語太多,理論太枯燥,不易理解,學生聽的云里霧里,對四年的專業課程沒有一個初步的認識,進而對課程不能產生強烈的興趣。(2) 學生高中教育環境不同,對計算機接觸的程度大不相同,水平參差不齊,學生在大一缺乏計算機背景的條件下,短時間內系統的理解計算機體系結構是一個相當艱巨的任務[2]。(3) 傳統的“計算機導論”課程教學中,理論和實踐相脫節,教師只是單純的講授理論課程,而學生幾乎沒有實踐,致使學生對所學的內容只是表面上了解,沒有深層次的理解。
CDIO是一種先進的工程教育理念和工程人才培養模式。代表構思、設計、實現和運作(Conceive-Design-Implement-Operate)[3]。它以產品研發到產品運行的生命周期為載體,讓學生以主動的、實踐的、課程之間有機聯系的方式學習工程[4]。
基于“計算機導論”課程的重要性,引入CDIO模式進行理論和實踐相結合的教學改革。進而更好地促進學生學習的主動性和積極性,并從中了解課程之間的有機聯系。
基于CDIO模式的教學改革,由單一教師講授改為多人擔當專業授課,每個老師講授自己所帶專業課程內容,這樣更容易把握每門課程的重點和難點,及如何切入學生的學習興趣點。“計算機導論”課程力圖幫學生構建一個初步的計算機專業知識體系框架[5],計算機專業知識結構圖,如圖1所示。
它包含了大學四年所學的所有專業課程,單純給學生講授此圖,學生還是對課程體系之間的關聯無法理解。基于計算機知識體系結構,結合“計算機導論”課程內容和課時安排,將課程內容劃分為8個模塊,如表1所示。
每個模塊講授4個課時,每周講授一個模塊,這樣學生就有更多的時間去查找相關資料,進一步了解相應模塊的內容。
基于傳統“計算機導論”缺乏實踐性,學生水平參差不齊的弊端,該“計算機導論”課程改革主要以“漢諾塔”游戲為主線,從游戲構思、設計、實現到運作的每個環節貫穿在8個模塊中,通過學習專業核心課程全過程的CDIO項目,使得學生通過“做中學”,建立一個完整的計算機專業體系結構架構。并且采用任務驅動、合作討論的方式,學生之間互幫互助,鍛煉學生探究、創新和團隊合作能力。
漢諾塔問題是計算機程序中的經典問題[6]。漢諾塔問題:漢諾塔由A,B,C 3根桿子組成。A桿上由N個(N>1)圓盤,盤的尺寸大小不等,大盤在下,小盤在上。要求將A桿上所有圓盤移至C桿。但是每次只允許移動一個圓盤,在移動過程中始終要保持大盤在下,小盤在上。提示:在移動過程中可借助B桿臨時存放圓盤,也可將從A桿移出的圓盤重新移回A桿。

圖1 計算機專業知識結構圖

表1 “計算機導論”課程模塊劃分
課程之初,介紹計算機數學基礎課時,教師引入“漢諾塔”問題。首先從1-2個圓盤開始,然后提出3個圓盤,讓學生合作討論解決,進一步提出4個圓盤該如何解決。將學生的思維向“如何尋找最有效的序列”引導,優化移動步驟,將問題聚焦于不同的圓盤數完成操作最少需要的步數。啟發學生思考“第一環移動到哪個桿子上”更有利于解決漢諾塔問題,從而找出規律。從1~4依次進行探索,運用表格對“漢諾塔”問題進行記錄分析,為發現規律提供數據支持,培養學生抽象化實際問題的能力,進而指導學生找出規律,如表2所示。

表2 “漢諾塔”問題數學分析
課程之中,掌握“漢諾塔”問題的移動規律和操作步驟后,啟發學生思考如何用程序設計語言實現復雜數學問題,引入程序設計基礎內容。我們一般可以理解4個圓盤的移動規律,但是如果更多圓盤,5個或者以上的圓盤,我們解決問題就需要花費很多的時間,所以借助程序設計語言實現任意多個圓盤的移動規律。首先講解C語言基礎知識,了解C語言的基本語法規則及其使用后,指導學生用C語言實現移動1-2個圓盤的情形,進而思考如何實現任意多個圓盤的移動規律,引入數據結構和算法基礎。根據得到的“漢諾塔”移動規律,運用C語言遞歸實現任意多個圓盤的移動。如表3所示。

表3 “漢諾塔”問題C語言遞歸實現
若要實現漢諾塔網絡游戲,該如何設計友好的圖形化界面,如何設計數據庫存儲玩家昵稱、游戲時長,并展示玩家排行榜等信息。后續數據庫和軟件工程等模塊,引導學生互相探討實踐。最終,以小組為單位采用工程的方法合作整理“漢諾塔游戲”軟件工程設計文檔,完成整個“漢諾塔”游戲的設計與實現。
筆者依托本校2016,2017級計算機科學與技術專業學生,實踐了此“計算機導論”教學方法。實際跟蹤學生學習該課程發現,該方法極大的激發了學生的學習積極性,調動了學生的實踐動手能力,使得學生理論知識水平和實踐動手能力顯著提高,進而提高了學生對該課程的認可度。相對于傳統教學方法,采用該教學方法,學生上課更加積極認真,主動去探索、分析和解決問題,從而提高了教學效果。
通過對“計算機導論”課程模塊的劃分,并由生動有趣的漢諾塔游戲入手,闡述清楚實際問題到計算機求解的過程和方法。強化了學生運用計算機解決和優化問題的能力。同時,學生在設計和實現游戲的過程中,了解了將在大學四年學習知識內容的框架思路和脈絡,為今后深入學習專業知識奠定了良好的基礎。