丁 巖,張宇昕,王 睿,李 華
(長春理工大學,吉林 長春 130022)
現階段在很多高校,《大學計算機基礎》這門課都在實施課程改革。較以前相比,理論課的教學學時減少,更強調對學生計算思維能力的培養。這就要求教師在教學改革改變傳統教學模式,我們提出了:以不同專業為基礎大學計算機基礎典型案例導向教學模式。在此模式下,根據所學專業的不同學生們通過學習典型案例,培養了計算思維。結合專業特性,對典型算法有了更深刻的理解。針對一些學習能力強基礎好的學生可以更進一步提高水平。對于學習水平一般的學生也能學有所得[1]。
我們的分層方式是將學生分為兩個層次:基礎班與提高班。在大一學生剛剛入學要進行問卷調查以及計算機能力測試。根據測試和問卷結果來完成層次劃分?;灸芰y試主要考查學生在高工階段對語言類的學習掌握情況。對這兩個層次學生開展內容不用的教學活動。從教學目標到教學內容再到教學評價體系以及課后的活動,我們都采取不同的分層次結構。
由于教學學時的限制,在課堂上,主講教師講解與大綱相符的教學內容。講授C語言的基本語法、基本程序結構和簡單的程序??紤]主要面向對象是多數基礎級別學生。教師在授課結束后,布置課堂作業上,采用同班分層次方法。PTA平臺中設計的本節題目分為兩部分,一部分為基礎題目,題型包括選擇題、填空題、判斷題和簡答題。主要考核學生對基礎知識掌握程度。另一部分為拓展題目,對于提高班的學生在完成基礎題目后,要求完成擴展題目。PTA平臺中題目集設置如圖1所示:

圖1 PTA題目集設置
在PTA平臺上,我們設置每個題目的踩分點學生按步驟得分,提交修改的時間都可以一目了然。
1.2.1 實驗環境的先進化
我們實驗環境調整為“C語言多種開發環境的編譯與調試”。由于近年個人電腦以及移動設備終端的普及,Windows10成為主流操作系統,原實驗內容無法跟上信息技術變化的變遷。改進后的實驗內容涵蓋了當前環境下多種主流開發環境如Dev-C++、Code::Blocks等的調試步驟,開闊學生視野,利于學生自主實踐能力和創新思維培養。
1.2.2 實驗內容分層設置
在pta教學平臺,將每一次實驗題目和內容提前放在平臺上。在教學平臺上可以看到每一次實驗的題目、要求與目標、詳細內容與考核要點等。其中,實驗內容分為驗證型和自主創新型兩個層次。驗證型的實驗題目主要配合理論課教學,把課堂上教材中的一些例題完成驗證。驗證型題目有助于強化理論知識的學習。自主創新型實驗題目跟我們熟悉的生活知識相關,并且趨于綜合性、創新型。通過對實際問題的理解和分析,學生們學會了使用計算思維的理念通過C語言來實現。老師們在設定實驗題目時遵循循序漸進、從由易到難的原則。努力做到讓每個學生在課堂上充分參與實驗過程。如果學生們遇到問題可以在討論區相互交流,互相取長補短。我們的目標是保證讓每一個學生都能體驗到學而有用、學而有成,這樣可以激發學生的學習興趣,提高教學質量。實驗中我們新增二級實戰編程題目15個例如:超市售貨模擬、窗口排隊模擬、考試出題系統模擬等供所有學生課余時間自主演練。同時提供創新實驗題目7項例如:停車場管理、約瑟夫環、歐拉函數求值等;大型工程案例項目包括迷宮游戲等,供學有余力的學生選作、選學。
新設創新型題目重在鍛煉學生對現實生活實際問題的綜合設計、求解能力,同時給予ACM/ICPC題目的瞭望,拓展學生科學視野、工程視野,可更好培養學生應用計算思維解決各類實踐問題的創新思維與實戰能力;新設完整工程項目案例則通過指導其中的流程,幫助學生了解大型復雜問題的分析、設計、解決方法,促進其自主式、研究式的學習。有能力的好學生可以先編寫部分功能模塊代碼,再進一步調試程序,然后測試代碼中存在的錯誤。從而可以激發學生潛能,有助于學生科技創新能力和工程實踐能力的形成。
1.2.3 實驗指導分層進行實驗教學中,每個層次的學生都渴望獲得具有針對性的實驗操作指導。教師們先針對基礎性問題進行講解。我們鼓勵提高層同學中選出積極、負責任、動手能力強的同學作為小助教,幫助老師完成實驗指導。
1.2.4 考核多樣化
我們改變C語言實驗教學的考核形式,取消以一次期末考試成敗定輸贏的舊有模式。理論課考試主要剔除原題庫中不適合培養思路的特別繁雜的語法細節題目,增設重在考察思維能力的題目,更新出題方案,加大新題比例。另通過增設期中考試,更好督促學生的學生狀態。從而使考核更為公平,杜絕了學生考前通過“背題、買題”備考的問題;另一方面這種考核思路比較科學,更好的考察了學生實際思維水平與編程能力。
案例教學是理論教學與實驗教學的橋梁和紐帶。案例教學中,最基本的任務就是案例的設計。而案例設計的好壞又直接關系到案例教學的效果。在計算思維培養目標下,教師們在設計C語言教學案例時,從培養學生計算思維出發,兼顧鍛煉思維、培養能力、提高水平多方面考量來完成。在接觸C語言的初期,教師通過實際問題“一瓶可樂與一瓶橙汁交換問題”引發學生思考交換過程,通過中間變量t來完成并實現交換。這樣,學生們很容易就可以寫出三條交換語句。在循環結構中有這樣一個典型算法:判斷輸入的整數是否為素數。我們用枚舉法和輾轉相除法來解決。枚舉法寫出部分程序代碼如圖2所示;輾轉相除法解決問題時部分代碼如圖3所:

圖2 枚舉法

圖3 輾轉相除法
講解過程中引導學生思考兩種算法的優缺點,理解設置開關變量的好處。進而提出問題,如果問題要求求解1000以內的所有素數,程序如何修改。如何提高程序的執行效率?
通過多年來的教學實踐,我們認為案例教學是對所學知識點的強化、分享交流與學習的過程。案例教學在理論教學和實踐教學之間起到鏈接的作用。因此,教師們更愿意選擇趣味性強、教學效果好的案例,在理論課教學中引導學生思考解決問題的步驟。在實驗教學中,逐步細化由簡到繁鍛煉學生思考能力,激發學生進一步探索的學習興趣。如此,學生不再畏懼編程。學會了首先從問題出發,建構模型,最后寫出代碼。這個過程也就是計算思維中的三個思維過程——抽象、分解與組合。