航天工程大學 王 琳 張學波 李晉麗
新一輪的課程改革對《大學計算機基礎》課程提出了新的要求,從內容上,改變以往陳舊的計算機教學理念和知識結構;從目標角度,更加重視學生信息素養的培養,把信息素養放在學生基本素養培養的首要位置;從理念上,將計算思維的培養作為課程的最終目標。進而,在知識結構上,改革后的《大學計算機基礎》將基礎的操作知識作為學生自學的內容,大幅度增加計算機專業知識,選擇Python作為編程語言,覆蓋“算法”、“信息編碼”、“計算機組成原理”、“操作系統”、“數據庫”和“計算機網絡”等計算機領域的綜合知識。
雖然改革后課程為學生提供了廣泛的計算機基礎知識,但同時存在知識面廣、難度大,層次多等問題,尤其Python程序設計對初學者絕非易事,而且課時較少。要想在有限的時間內,掌握眾多的計算機專業知識,并形成相應的編程能力,對很多學生來說無疑是一次的艱難的挑戰。
課程組從2018年開始進行課程建設,并承擔課程改革任務。在很長的時間內,實際教學沒有從傳統的教學模式中脫離出來。為了讓學生掌握更多的知識,課堂仍然采取滿堂灌,填鴨式的傳統教學方法;課堂節奏快,內容多,組織形式單一。基于傳統模式,在授課時,采取講細講透的原則,尤其在對教材中程序示例的講解時,從而忽略了學生自主學習的能力,沒有給足學生內化吸收知識的時間。由于沒有重視學生的主體地位,導致學生的積極性提不上來。學生計算思維塑造慢,程序設計水平提高緩慢,對于一些基礎薄弱的學生,或者編寫程序沒有思路,或者導致程序執行錯誤;進而容易產生畏難情緒,學習一直處于被動狀態。
從承擔課程改革任務開始到至今,已講授了三期本科班,期間不斷組織議教等活動,教師之間也不斷的進行探討交流,不斷嘗試創新,獲得一些突破。
對分課堂是復旦大學心理學教授張學新提出的新型教學模式,是在整合了講授式課堂和討論式課堂各自優勢的基礎上提出的。對分課堂的核心理念是把一半課堂時間分配給教師講授,另一半時間分配給學生以討論的形式進行交互學習。在講授過程中,對分強調“精講留白”,即教師只講授框架、重點和難點,將那些通過課后復習就能夠理解的知識,留給學生課后自學。在時間上,“對分課堂”劃分為三個清晰分離的過程,分別為講授、內化和吸收、討論。
無論對學生還是對教師來說,學習最好的效果就是會提問題,提出高水平的問題,并學會解決問題。而這一切的前提是:必須做到對知識足夠的內化和吸收,進而能夠思考討論,利用所學知識解決實際問題。
將對分課堂模式引入《大學計算機基礎》課程,可以有效地改變學生的學習狀態,化被動學習為主動學習,從滿堂灌到自主消化吸收,從被動接受知識到主動思考問題。把課堂劃分為講授、內化吸收、討論三個階段,將師生角色進行重新定位,給予學生充足的自主學習和思考的時間,降低學生的畏難情緒,提升學生的積極性和參與度,促進學生之間、師生之間的互動交流,提高學生利用計算思維解決實際問題的能力。
在《大學計算機基礎》課程中,第五章計算機硬件系統部分被安排了4學時,其中理論2學時,實驗2學時。這一章要求學生在了解計算機系統的組成、理解系統各部分作用和馮·諾依曼體系結構的基礎上,能夠利用Python構建馮·諾依曼體系結構模擬器,進而理解馮·諾依曼體系結構計算機硬件系統的工作機制。該章節對學生而言,理論知識抽象,實踐難度較大,要求學生在較短的時間內對計算機系統的組成及工作原理有一個較為全面的認知,并在此基礎上編寫Python程序。
下面以Python構建馮·諾依曼體系結構模擬器實驗為例,將對分課堂引入實驗教學中,從講授、內化吸收、討論、實踐四個環節對課堂進行重新設計,并應用于實際的教學中。
該實驗是利用Python構建馮·諾依曼體系結構模擬器,首先要求學生理解馮·諾依曼體系結構,理解現代計算機的工作原理,然后,根據實驗的任務和要求,設計程序思路并編寫Python程序,最后上機實踐加以驗證。在前期的課堂中,已經講授了兩學時的計算機硬件系統的理論知識,為了讓學生打好實驗基礎,上課前的10min,教師首先對該部分知識進行回顧,再利用10min發布雨課堂進行隨堂測試,鞏固所學知識。接下來的10min,以精講+留白的方式進行講解,考慮到是實驗,精講時間不宜過長,由于實驗內容較為抽象,所以重難點內容講到位,并且提出留白問題,讓留白顯化,從而引導學生對“寄存器”、“存儲器”、“指令”、“指令集”等重要概念的掌握,以及對“指令執行過程”、“模擬器工作原理”的理解。
知識的內化需要一個過程,簡單的知識可以在課堂的講解過程中內化,但抽象復雜的知識如果說在課堂上已被內化,那僅僅停留在表面,并不能被真正的吸收。因此,這個環節給了學生獨立學習、獨立思考、獨自解惑的時間,教師在精講+留白后,學生在這個時間段結合精講要點,通過仔細閱讀教材,對馮·諾依曼體系結構模擬器的結構有了整體的認識,理解了該模擬器下的指令集中指令的含義及用法,并完成教師提出的留白問題,學會利用該指令集獨立設計一段程序實現一定的功能。
完成以上任務后,知識進階,難度加大,學生需要學會利用Python構建模擬器的工作過程,首先需要為該模擬器建模,包括對內存、寄存器和顯示器的建模,建模的過程也是利用Python組織數據結構的過程。接下來,需要利用建模后的計算機模擬程序的運行機理,包括如何將文件中的程序讀入內存、將程序計數器指向內存中的第一條指令、并取指令到指令寄存器,完成譯碼、執行的過程。這部分知識作為重難點需要教師在前期的精講中加以引導,給學生指出設計的方向,學生才能在內化環節梳理Python程序的架構和編寫思路,當然,還需要進入討論環節對每個細節性的問題逐一解決,才能最終完成程序的編寫。
學生梳理完程序思路后,教師將學生進行分組,對程序各部分功能進行討論與設計,可以采取提問、抽查、引導的方式監督各小組的進展情況和討論結果。
期間,教師通過提問如何利用Python對內存、顯示器進行建模等問題,了解到學生對列表的運用比較熟練,但在如何利用Python將文件中的程序讀入內存時進展緩慢,此時就需要教師加以引導。因此,在討論環節,教師需要及時掌控課堂情況,對共性問題統一講解,個性問題單獨輔導,既要充分了解學生的實際學習能力和個體差異,又要善于觀察學生的課堂表現和學習動態,才能在討論環節與學生進行有效的互動,為學生布置難度適中的學習任務。
作為實驗課,實踐環節必不可少,當然,這個實踐環節不是獨立于前面的三個階段,它融入于前面三個階段,但分量又大于前面三個階段。相比于理論課,學生需要在講授、內化吸收、討論后,形成一套完整的程序設計思路和實現方法,并用Python語言加以實踐,這個過程需要花費更多的時間和精力。通過編寫該實驗,學生借助Python重新構建了一個復雜的計算機系統,并在此系統上模擬了計算機工作的過程,把抽象的理論與復雜的實踐進行有效的結合,在理解理論的基礎上構建了實踐體系,反過來實踐體系更好的詮釋了理論的根基。
教師可以因勢利導,依托Educoder平臺下達實訓任務,設置積分和關卡,以闖關形式吸引學生完成實訓任務,任務可根據實驗的難易程度設置1-3關,進一步鞏固該部分知識,并達到靈活運用、舉一反三的效果。實訓中,闖關成功的學生可獲得相應的積分和經驗值,闖關困難的學生可以尋求參考答案,但平臺會扣除相應的積分。學生通過積分排行榜查看自己的排名,促使每個人不僅要認真對待每一次的實驗,而且要善于思考、積極討論,高質量的完成每一次的實驗任務,不斷提高利用計算思維解決實際問題的能力。
總結:將對分課堂教學模式有效的運用到《大學計算機基礎》課程中,尤其是運用到實驗教學中,教師利用對分課堂理念對課堂進行重新設計,根據實驗課的特點,將課堂劃分為講授、內化吸收、討論、實踐四個階段,不僅給學生一個真正的自主學習、獨立思考、獨自解惑的空間,而且有效地提高了學生的參與度和團隊協作能力。后續,課程組將會繼續開展《大學計算基礎》教學的“對分課堂”實踐,通過不斷的探討實踐,把“對分課堂”方法靈活運用到《大學計算機基礎》課堂教學環節,并通過教學反饋,不斷修改和完善基于“對分課堂”的《大學計算機基礎》課堂教學設計,使之更加合理有效,切實提升學生學習知識的主動性和教師的授課質量。