蔣聯源+袁浩浩+王智文+藍紅莉

摘要:信息技術類學科知識更新快、實踐性強,有效培養信息技術類專業學生的創新能力和計算思維能力,是當前教學改革中的一項重要任務。文中以C語言課程設計的實踐教學為例,從框架設計、功能實現、修改完善、解決新問題這四個方面展開討論,以提高信息技術類專業學生的計算思維能力。近幾年的教學實踐評估及反饋表明,教學效果達到了預期目標,對學生計算思維能力的培養有一定促進作用。
關鍵詞:信息技術類專業;實踐教學;計算思維能力;課程設計
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2017)41-0273-02
實踐教學是信息技術類專業中的一個重要環節,能進一步加深學生對理論教學內容的理解,培養學生的動手能力和創新能力。北京大學、清華大學等高校于2010年在西安召開的“九校聯盟(C9)計算機基礎課程研討會”,教育部高教司于2012年開展的"大學計算機課程改革研討會",都強調了培養大學生計算思維能力的重要性和迫切性。文中以C語言的課程設計為切入點,對信息技術類專業學生的計算思維能力培養進行探討。對于培養大學生計算思維能力的教學研究,近幾年引起了眾多學者的廣泛關注。比如,馮博琴[1]對計算思維能力培養的落地過程中一些普遍性問題進行了探討;鄧輝文等[2]從計算思維的角度對計算機問題求解課程的多個方面進行了分析。在C語言課程設計的教學改革方面,相關教學工作者也提出了自己的觀點和教學措施。比如,吳麗娟等[3]從教學目標、實施流程以及教學策略三個方面,介紹了一種C語言課程設計的教學模式;武航星等[4]闡述了基于Funcode平臺的C語言課程設計的教學實施過程。
一、課程設計的題目
設計并實現一個簡單的學生成績管理系統。該系統包括輸入學生成績、輸出學生成績、追加一個學生的成績、刪除一個學生的成績、查詢一個學生的成績、修改一個學生的成績、保存學生成績到文件、從文件中讀取學生成績等功能。說明:(1)信息技術類專業的C語言課程設計一般是開設在大一第一個學期的最后兩周,學生的專業知識非常有限,因此該課程設計的主要目的是鍛煉學生的編程能力,而對學生所設計的系統不做專業性要求。(2)以2-3人為一組來完成課程設計,以鍛煉學生的團隊合作精神能力。
二、系統的框架設計
根據題目要求,可對系統的框架進行設計。限于篇幅,這里僅做簡單的框架設計。系統的框架可分為輸入、基本操作、輸出三個模塊,其中輸入模塊包括從鍵盤中輸入學生成績和從文件中讀取已有的學生成績兩種方式,基本操作模塊包括追加一個學生的成績、刪除一個學生的成績、查詢一個學生的成績以及修改一個學生的成績,輸出模塊包括將內存中的學生成績輸出至顯示器和輸出至文件。系統的功能模塊圖如圖1所示。
完成了系統的框架設計后,學生就可以根據系統的功能模塊圖,編寫各功能所對應的函數模塊了。本階段只需完成一個可運行的系統,實現主函數對各功能函數的調用。各函數的函數體無需實現,可以在函數體內編寫一條輸出語句,以便運行時可以確定各函數是否能夠正確調用。
三、功能實現
在上一階段的基礎上,完成各個功能函數的編程實現。具體實現時,應注意如下幾個方面。
1.在本階段,應該注意各個功能函數的實現順序。比如,應該先實現輸入函數,再實現輸出函數,以方便調試。
2.在選擇存儲各學生成績的數據結構時,鼓勵學生選用鏈表。對于對鏈表不熟悉的同學,可以考慮選擇數組作為存儲各學生成績的數據結構。
3.本階段涉及的知識難點較多,尤其是對鏈表和文件的各種操作。但鏈表和文件的各種基本操作的算法是固定的。因此,鼓勵學生通過參考書本、有針對性地聽該知識點的慕課等方式,先看懂聽懂鏈表、文件操作的算法及代碼,然后模仿著去實現本階段的編程任務。
四、修改完善
上一階段已完成了可正常運行的學生成績管理系統的具體實現。本階段對該系統進行修改完善,可從以下幾個方面考慮。
1.更改編程實現的方法。比如,對于選用數組來存儲各學生成績的同學,鼓勵他們用鏈表替代數組來實現各學生成績的存儲。
2.進一步完善已有功能。比如,完善查詢功能,將僅按學號查詢擴展成可按姓名或者班級等字段進行查詢,也可實現某門課程某個分數段的人數查詢等。
3.對系統的功能進行擴展。比如,對每門課程進行成績分析,統計優秀、良好、中等、及格和不及格的人數及比例。
五、解決新問題
在完成本課程設計后,學生已具備一定的編程能力。一般來說,C語言課程設計是安排在教學周的最后兩周,該課程結束后,經過一周的期末考試,就是寒假時間。為了更好地培養學生的計算思維能力,可以鼓勵學生利用寒假期間,再設計、實現類似的小系統(難度上予以適當提高),比如學籍管理系統。在編程能力得到較好訓練后,鼓勵學生在教師的指導下組隊申報各種學生類科技創新項目,項目內容的來源可以是教師的在研項目的子課題,也可以是學生根據自己的興趣或者調研所擬定的題目。
六、結語
信息技術類專業的畢業生,無論是應聘像華為、騰訊、阿里巴巴等這樣的大型IT公司,還是應聘小型的IT公司,都需要具備較強的實踐能力。很多高校也比較重視這個問題,并為之做了許多工作。比如,作者所在單位的軟件工程專業,在多年前就實施了校企合作、校外實訓的進程。對一些高年級的實訓課程,直接聘請IT企業的一線技術人員為學生授課;對于即將畢業的大四學生,安排他們去深圳、上海等實訓公司進行學習,在學習期間,接觸真實項目的開發,積累實踐經驗。校企合作、校外實訓的教學模式,拉近了學生從校園到市場需求的距離,并且很大程度上彌補了學生重理論輕實踐的缺點。本文以一個具體的課程設計的教學為例,討論了其對學生計算思維能力的培養。計算思維能力的培養,不是一兩門課就能完成的,它是一個長期的過程。
參考文獻:
[1]Jeannette M. Wing. Computational thinking[J].Communications of the ACM,2006,49(3):33-35.
[2]馮博琴.對于計算思維能力培養“落地”問題的探討[J].中國大學教學,2012,(09):6-9.
[3]鄧輝文,熊海靈.計算機問題求解與計算思維能力培養[J].計算機教育,2014,(01):18-19,32.
[4]吳麗娟,申海,張浩華.C語言課程設計教學模式的探索與實踐[J].沈陽師范大學學報(自然科學版),2012,30(01):122-125.endprint