張宏,王如剛,周鋒,陳傳杰
(鹽城工學院,江蘇鹽城 224000)
C 語言程序設計是計算機類專業的基礎課程,也是其他理工類專業的基礎課程。新時代下,一門學科不能單獨發展,學科之間相互融合,共同發展。計算機類專業的同學要學好這門主干課程,其他專業的同學也必須掌握好這個技能。隨著科技的不斷發展,科技需求的知識量不斷增大,傳統的教學模式已經無法滿足新時代的教學需求。
C 語言程序設計作為一門公共基礎課,具有上課班級多、專業多、學時短、內容多、邏輯思維要求高等特點。傳統的程序設計語言課主要精力放在了語法掌握和代碼的學習。對非計算機類專業的同學而言,通過學習能夠在學時內熟練掌握語法,能夠完成課后練習就算完成教學目標。這些課后練習僅僅是所學知識的鞏固,沒有應用編程解決專業上的問題。脫離了專業應用的學習,容易給學生造成這門課程的學習和專業課的學習沒有關聯。傳統的程序設計教學課程包括理論課和實驗課。理論課是教師負責講授內容,實驗課是同學在教師輔導下,在規定時間內完成實驗內容。有限的理論教學時間不能覆蓋所有內容。實驗課內容統一設置,僅僅完成了對課堂知識的練習,鞏固了課堂學習的知識。C語言程序設計是一種全新的思維模式。不僅要學會基礎語法和編寫代碼,而且要從數學思維轉換到計算思維[1]。這種計算思維的建立需要同學多加練習。傳統的考核方式是一張試卷考核學生的學習情況,并用這個成績代表同學這門課的學習成績。這種考核方式無法綜合客觀地評價同學的學習情況。學習是一個持續的過程,對應的每一個學習的環節都應該有一個相對完整的過程性考核。
BOPPPS教學模式是一個強調以學生為中心的閉環教學過程模型,教學效果被很多名校驗證和推崇[2]。BOPPPS 教學模式的特點就是花費盡量少精力,掌握盡量多知識[3]。BOPPPS 教學過程分為六個環節。分別是引入環節(Bridge-in)、目標環節(Objective)、課前測試環節(Pre-assessment)、參與式學習環節(Participatory Learning)、課內評估環節(Post-assessment)和總結環節(Summary)[4]。這六個環節構成一個完整的教學流程。其中引入環節負責激發學生的興趣。教師可以安排一個有趣的案例讓學生去思考,從而引出后續的內容。目標環節提出學習的目標,指出通過學習要掌握哪些知識和技能。課前測試環節發布測試內容,通過測試,教師可以了解學生的學習情況。參與式學習環節指學生通過課堂參與,激發主動學習的能動性,從而達到教學目標。課內評估環節評估教學是否完成教學目標,是否達到教學預期。總結環節是對教學過程總體的回顧,對知識點的總結。BOPPPS教學模式強調以學生參與為主,在傳統的課堂上有些教學互動難以執行[5]。
傳統教學存在一定的不足,目前國內外各高校都在積極探索高效的教學方式,比如雨課堂、翻轉課堂[6]、微課等教學形式。這些教學形式彌補了傳統教學的不足。每一門課都有自己的特點,每一門課的教學模式也應該有自己的特點。C語言程序設計是對邏輯抽象思維、實踐動手能力要求較高的一門課。這類課程需要大量的練習、頻繁的互動和細致的輔導。這是線下教學無法實現的。基于學習平臺的混合式教學是一種比較適合程序設計教學的一種方案。使用學習平臺后,教師線下時間就可以統一講解重點難點內容和交流互動,而費時較多的思維訓練和動手能力提高部分可以放在線上實現。本文基于BOPPPS教學模式的思想,設計了學習平臺并提出一種基于學習平臺的線上線下混合教學模式。這種模式既避免了傳統教學的不足,又滿足了程序設計教學的需求。這種教學模式需要一個真正以學生為中心的學習平臺。在這個平臺上既可以開展教學活動,也可以自主學習。平臺包含預習模塊、實驗和練習模塊、考核模塊、項目練習模塊、思維訓練模塊、興趣培養模塊和交流互動模塊。
學習平臺除包含了常用的學習考試功能之外,另外基于C程序設計的特點還增加了三個方面的功能。一是幫助學生提高學習興趣的模塊;二是提高同學的實踐動手能力的模塊;三是完善了綜合考核模塊。這三個方面和學習考試模塊組成一個完整的學習平臺。
興趣培養模塊為不同專業方向的同學科普程序設計在相關各專業方向的前沿應用。比如流行的大數據、機器算法在各專業的應用。這些交叉方向的最新科技會極大地激發同學的學習興趣,引導同學向更高更深的領域鉆研。同時,該模塊還包含了思政元素。鼓勵學生樹立遠大理想,激發學習熱情,培養愛國青年。思維訓練模塊用于提高邏輯思維能力。平臺為每一章節提供不同難度等級的題目供同學自主練習。同學可以隨時隨地登錄平臺提高自己的編程能力。項目練習模塊用來提高同學實踐應用能力。這種實踐項目的參與有利于提高編程能力和解決實際問題的能力。考核模塊綜合評價這門課程的學習情況,總成績包含學習過程的成績和期末考試成績。
C語言程序設計共48學時,采用學習平臺和線下教學相互交叉進行教學。學習平臺靈活自由。同學在線上進行實驗和練習的時候可以隨時和同學交流或者請教教師。因此線下的實驗課和練習部分轉移到線上更加合適。48 學時全部分配給線下理論教學和教學互動,為線下教學和討論提供了充足的時間。線上和線下相互配合展開教學,既有線下教學的優點又有互聯網教學的優點。基于學習平臺的教學模式包含教學過程和自主學習過程。教學過程教師和學生緊密配合按順序完成教學。自主學習部分教師負責引導,以學生為主體完成。教師上課流程包括發布預習材料、發布預習測試、分析預習結果、調整線下教學方案、線下上課、發布課后練習和實驗和發布單元測試。學生上課流程包括線上預習、線上預習測試、線下上課、線上練習和實驗、單元測試以及攻克思維訓練題目。其中線上互動和線下交流始終貫穿教學過程。
教學過程包含線上預習、線下上課、線上實驗和練習以及單元測試。
1)預習
每次線下上課前,教師首先在學習平臺發布預習的內容和預習要達到的目標,以及預習測試習題。請同學在規定時間內線上完成預習。同學在預習完成之后,需要完成教師發布的預習測試習題。平臺自動統計預習的情況反饋給教師。預習過程實現了BOPPPS 教學模式的引入環節、目標環節和課前測試環節。
教師發布的預習內容必須是精心準備的。在引入環節一定要引起學生的好奇心。首先拋出一個有吸引力的問題,引導同學思考。鼓勵學生嘗試用學過的知識解決。當遇到用以前學過的知識無法解決的環節,必然會認真地在教師發布的材料里面找答案,從而了解本節要掌握的內容。教師制作課件或者視頻一定要細致,這些材料不但可以幫助同學解決問題。而且通過觀看這些材料能夠明確即將學習的核心內容和學習要達到的目標。預習結束后,掌握了預習內容,就該進入課前測試環節了。教師根據學習目標,以知識點為單位設置測試習題,可以是選擇、填空、程序設計等形式,同學也可以提交自己的問題。平臺收集預習信息,統計預習情況反饋給教師。登錄平臺,教師可以了解到預習完成了多少,哪些知識點需要線下講解等。教師可以根據預習的情況調整線下教學計劃。以分支結構if語句的教學設計為例,設計如表1。

表1 預習部分教學設計
2)線下授課
線下授課對應BOPPPS模式的參與式學習環節和課內評估環節。經過前期的預習,學生已經掌握了部分知識,為線下的教學節省了大量的時間。線下課堂師生可以面對面交流,集中力量對不理解或不能完全理解的知識點進行現場演示。確認基礎知識已經掌握后,可以進一步拓展知識面。教師在課堂上提出問題,引導同學積極思考,鼓勵學生積極發言,參與討論。教師可以通過對討論情況的觀察評估學習情況。線下教學的優點是可以及時了解學習情況,發現存在的問題并及時解決問題,為線上的練習和實驗提供理論依據。以if結構為例教學設計如表2。

表2 線下課堂教學設計
3)發布實驗和練習
線下授課完成之后,需要進一步鞏固課堂學習的知識。線下練習檢查工作量巨大,教師無法準確了解每個同學的學習情況。傳統的實驗課在固定時間內必須完成,缺少思考的時間。有的學生來不及思考,只能匆忙完成實驗。這種實驗不能真實反映學習情況。線上練習以及線上的實驗能夠很好地避免線下實驗的缺點。同學可以找合適時間完成線上的練習和實驗,實驗和練習期間可以在平臺上和同學討論,也可以發消息請老師指導。實驗結果能及時反饋給老師。教師更容易掌握每個同學的學習情況。實驗和練習以學生為主體,教師負責引導和答疑。教師需要精心制作實驗課程,包括實驗目的、實驗要求、實驗內容和實驗步驟。必要的時候制作視頻指導實驗。教師指定練習和實驗的截止時間,完成后根據反饋結果進行輔導和總結。
4)發布單元測試
一個單元學習完成之后,教師準備單元測試題目,發布到學習平臺,請同學在規定時間內完成。測試完成以后教師根據測試情況,評估本單元同學的學習情況,針對評估的情況選擇線上輔導或線下輔導。
自主學習部分包括興趣培養、思維訓練、項目練習部分。這部分內容以學生為主,教師為輔展開。教師隨時可以在學習平臺看到學生的學習情況,學生也可以在平臺上討論或請教教師。
在教學過程中教師和各專業教師相互配合,在專業領域內找一些前沿的案例以圖文、視頻等多媒體的形式展現給同學。比如,機器學習在醫學上的應用。同學通過對這些案例的了解,可以明確他們正在學習的編程是專業知識學習的一部分。在授課過程中,教師可以根據教學內容插入思政元素。比如在學習函數的時候,教師可以請同學在平臺上觀看一些團隊協作的案例,培養團結協作的精神。適當的思政元素能激發學生的學習熱情,樹立遠大理想。
為了進一步提高邏輯思維能力,教師精心挑選思維訓練題目。每一章內容學習結束后,發布到學習平臺。這部分內容按難度不同設置為不同等級,不同分數。鼓勵同學累積分數。學生通過自主練習,挑戰自我。隨著練習難度等級的增加,邏輯思維能力也會逐級提高。攻克的題目越多分數越高,越有成就感,興趣越濃。為了加強實踐動手能力,課程結束后,任課教師聯合各專業教師找一些難度適宜、規模合適、結合各專業知識的項目,發布到學習平臺請同學組成小組形式完成。這種和專業結合的項目能夠培養團隊協作能力,提高同學對編程的重視度。
師生互動和生生互動的交流始終貫穿于整個學習過程。預習階段、實驗練習階段學生都可以通過學習平臺參與討論。線下上課的時候也可以提出自己的問題進行討論。通過交流互動,激發學生積極參與教學活動,極大地提高了學習興趣。平臺記錄同學提問和回答問題的次數。教師設置一定的分數進行獎勵,鼓勵同學積極互動。
綜合、客觀、全面的考核一個學生學習情況也是掌握C 語言程序設計這門課的一個重要方面。使用學習平臺進行考核,教師可以通過學習平臺將學習過程量化,結合自主學習的成績和期末考試成績作為最后的綜合成績。學習過程的成績可以選擇預習過程的成績、實驗和練習的成績、單元測試成績。自主學習的成績可以選擇思維訓練的成績、項目練習的成績以及交流互動和興趣培養獎勵的成績。教師根據實際情況選擇其中的一部分成績納入總成績。期末考試使用學習平臺的題庫考試。題庫抽題避免了試卷的單一性。教師設計抽題方案,保證考試內容的廣度和深度。教師按照一定比例設計每個模塊所占的分數。同學完成部分的成績計入最后的綜合考評成績。通過學習平臺考核既方便又客觀,提高了考核的效率。學期結束用綜合考評成績作為該學生這門課的成績。這種既有能力方面又有態度方面和有過程方面的成績更能科學地代表學生的真實水平。
隨著科技的進步,教學手段需要不斷地提高。本文吸收了BOPPPS教學模式、互聯網教學的優點,并根據程序設計這門課的特點,提出的基于學習平臺的C語言程序設計教學模式。該教學模式實現了從興趣激發到語法學習、知識鞏固、能力提高以及項目練習和綜合考核的教學流程。這是一個從基礎學習到實踐動手能力不斷提高的過程。這種教學模式既有傳統教學直觀生動的特點,又具有線上教學靈活自由的特點。突破了時間和空間的限制,彌補了傳統教學的一些不足,實現了對傳統教學的進一步改進。任何一種教學模式都有優點和缺點。接下來將在以后的教學中不斷實踐,不斷改進,進一步細化教學的每一個環節,達到教學水平的不斷提升。