劉國奇 靳瑞霞 孫全黨


摘要:目前《C語言程序設計》課程教學存在一些問題,使其課程教學發展陷入了瓶頸期。利用泛在學習的永久性、可獲取性、即時性、交互性、教學行為的場景性、適應性、整合性等特征,搭建《C語言程序設計》課程泛在學習環境,并將其實現于翻轉課堂教學模式中,可以提高《C語言程序設計》課程的教學質量,提升學生問題分析、問題解決及實際動手編程的能力。
關鍵詞:《C語言程序設計》泛在學習;教學環境;翻轉課堂;教學模式
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2016)31-0154-03
一、引言
C語言不僅具有高效、靈活、功能豐富、表達力強及較高可移植性等特點,而且具有通用性、過程式的編程語言優勢,受到廣大計算機程序員的青睞,被廣泛應用于系統與各類應用軟件的開發。有學者認為能否熟練掌握并運用C語言,是衡量一名計算機類專業學生專業水平的基本標準。因此,我國高校計算機類專業對其給予了一定的重視。通常在大一學年面向新生開設《C語言程序設計》課程,將其作為第一門基礎性程序設計課程,為學生學習數據結構、操作系統、高級程序設計等相關專業課程奠定基礎。
從1991年清華大學開設C語言課程以來,《C語言程序設計》課程教學在我國已經歷25年,在多年的實際教學過程中積累了一定的教學經驗,但也出現了一些問題。這些問題降低了學生學習該課程的學習興趣,使《C語言程序設計》課程教學發展陷入了瓶頸期。因此,應用新的教學理念和教學手段,創新《C語言程序設計》課程教學模式,促進其教學發展,成為目前《C語言程序設計》課程教學研究的關鍵問題。
計算機及網絡通訊技術為人們的學習創設了新的教學環境,也引發了新的教學理念思考,電子化學習(E-learning)、移動學習(M-learning)、泛在學習(U-learning)等教學理念及學習環境逐步得到發展及認同,并引發翻轉課堂、MOOC等教學模式的變革。本文結合目前我國高校《C語言程序設計》課程教學的經驗和問題,將泛在學習理念及翻轉課堂教學模式應用于《C語言程序設計》課程教學中,改變以教師為中心的教學現狀,充分體現“以學生為中心”的學習理念,以期提出更加切合《C語言程序設計》課程教學的有效教學模式,從而提高《C語言程序設計》課程的教學質量,提升學生問題分析、問題解決及實際動手編程的能力。
二、《C語言程序設計》課程教學問題分析
如前所述,25年間,譚浩強教授等專家、學者在《C語言程序設計》課程的教材編寫、教學方法、教學手段等方面積累了較為豐富的經驗,《C語言程序設計》課程在我國高校已有一定的教學基礎。但在該課程的建設過程中,也發現存在一些不容忽視的問題。
(一)教學內容多,教學學時不足
目前,我國高校《C語言程序設計》課程教學學時大都為64學時,其中32學時為理論課,32學時為實驗課。但是一方面C語言涉及的概念比較復雜,規則繁多,教師要在有限的時間內高質量地完成教學內容,存在較大的壓力;另一方面C語言使用靈活,容易出錯,學生既要分析問題設計程序,又要動手編寫程序代碼上機調試運行,實驗學時也明顯不足。
(二)教學內容抽象,學習者興趣難引發
C語言的一些基本概念和語法規則的基礎知識既枯燥又比較抽象難懂。例如《C語言程序設計》課程中的“數據類型、運算符與表達式”,內容涉及數據在計算機內存中的存儲形式,較為瑣碎、抽象。教師授課時,如果只是講解具體規則和書本上的例題,則很難引起學生們的興趣。
(三)學習者起點層次不齊,“學習者為中心”難實現
隨著計算機科學技術的普及和目前我國高中信息技術課程的不斷發展,部分大一新生在高中階段對程序設計有所接觸,但也有部分地區的高中信息技術課程改革進程緩慢,學生信息素養培養不足。因此,《C語言程序設計》課程的學習者起點層次不齊,利用有限的教學學時很難實現以學習者為中心的教學模式,進行因材施教。
三、基于問題分析的《C語言程序設計》泛在學習環境搭建
泛在學習環境(U-Learning)創設了一種“以學習者為中心”不受時空限制的智能化學習空間。從更深層面上理解,泛在學習環境是一種任何人可以在任何地方、任何時間,借助任何設備獲取所需的任何信息的5A(Any-one,Anywhere,Anytime,Anydevice,Anything)學習模式。由于泛在學習具有永久性、可獲取性、即時性、交互性、教學行為的場景性、適應性、整合性等特征,將信息技術與網絡技術的發展融入到《C語言程序設計》課程的日常教學及學習生活中,為其搭建泛在學習環境,可以改變現有的教學及學習方式,使教師和學生能夠打破傳統的課堂授課及學習模式,擺脫時間、地點、學習資源的限制,讓教學和學習變得無處不在,有針對性地解決《C語言程序設計》課程教學存在的問題。具體的《C語言程序設計》課程泛在學習環境設計如圖1所示。
利用《C語言程序設計》課程泛在學習環境,教師和學生從不同的側重點展開具體的教學和學習。
1.教師。在泛在學習環境中,教師根據《C語言程序設計》課程教學的重點、難點,利用平板電腦、筆記本電腦、PDA、智能手機等工具,通過校園網絡教學平臺、教師博客、教師微博、師生QQ群、師生微信朋友圈等方式,向學生推送課程學習相關的學習資源并提供學習服務。例如:在每次課前發布《C語言程序設計》課程的具體教學目標及要求、教學課件、精品課程鏈接地址等教學資源,指導學生做好每次課前預習并提出相關熱點問題,引發學生思考和學習興趣;在課后就本次教學內容在線參與學生實時學習討論、及時回答學生問題、批復學生提交的作業等,幫助學生鞏固所學知識,使教學得以深入延展。
2.學生。在泛在學習環境中,針對《C語言程序設計》課程,學生根據自身學習基礎及學習需求,在自由的時間和地點,利用平板電腦、筆記本電腦、PDA、智能手機等工具,通過訪問校園網絡教學平臺、教師博客、教師微博等平臺明確課程的學習目標并獲得第一手學習資料;通過登錄師生QQ群、師生微信朋友圈以及使用搜索引擎等方式搜集學習資料,還可以進行學習提問并進行相互討論。特別是針對《C語言程序設計》的實驗部分內容,學生可以通過實時聊天工具將自己的出錯信息進行截屏,發送給教師或同學,獲得指導和幫助,大大提高了問題的解決效率。由此可見,利用泛在學習環境,學生可以根據自身情況由淺入深地展開《C語言程序設計》課程的學習,可以很好地明確聽課目標、展開課前預習、進行復習討論、提交作業并獲得回饋等。
四、泛在學習環境下《C語言程序設計》翻轉課堂教學模式實現
翻轉課堂(Flipped Classroom或Inverted Classroom),起源于科羅拉多州林地公園高中,是一種利用信息技術,對傳統教學中師生角色定位及課堂時間使用進行重新建構,對知識傳授和知識內化進行顛倒安排的一種新型教學模式。在翻轉課堂教學模式中,首先知識的傳授通過信息技術的輔助在課前完成,教師不再占用課堂時間進行教學內容講授,而是提前發布講解內容的相關教學信息及教學資源,引導學生通過利用網絡查閱學習資料,觀看相關精品課程、視頻講座,閱讀電子書,并與教師、同學討論,進行“以學生為中心”的個性化學習;其次,知識內化在教師的幫助和同學的協助下在課堂中完成,學生通過充分的課前學習就關鍵性問題在課堂中與教師展開交流互動,對所學知識進行深入的理解和優化。翻轉課堂順利開展的基礎是提供能夠滿足學習者自主性選擇的課程學習資源并提供良好的在線學習服務,從這方面來說,泛在學習環境與翻轉課堂是相輔相成的,泛在學習環境是翻轉課堂良好成長的土壤,翻轉課堂是泛在學習環境實現的有效教學模式。
例如:筆者利用泛在學習環境,對清華大學出版社出版的譚浩強教授主編的《C程序設計(第四版)》第3章3.2小節——“數據的表現形式及其運算”內容,展開翻轉課堂教學,取得了良好效果。具體翻轉課堂教學流程如下頁2所示。
(一)課前
在翻轉課堂的課前,教師需要完成基本教學知識的傳授,利用泛在學習環境完成以下工作。
1.公布本次教學的教學目的。
教學內容:清華大學出版社出版的譚浩強教授主編的《C程序設計(第四版)》第3章3.2小節——“數據的表現形式及其運算”
教學目標:掌握c語言中的基本數據類型與運算
教學重點及難點:理解C語言中的數據與真實數據的區別
2.發布本次教學所需的教學資源。
教學課件:http://e-learning.htu.cn/index2.html
精品課程推介:http://cms.hit.edu.cn
學習網站推介:http://cms.hit.edu.cn
參考書目推介:蘇小紅等《C語言程序設計》(第三版)
3.發布本次教學內容相關的主要思考題。
題目1:C整數類型能否表示真實生活中的任意整數?
題目2:C中的浮點數是現實中的實數么?
題目3:C中無符號整數與有符號整數的差別?
題目4:任意大的數應該如何表示?
在翻轉課堂的課前,學生需要根據教師公布的教學目的、發布的教學資源及思考題預設,利用泛在學習環境明確學習目的、搜集學習資料、思考學習問題,基本完成知識的構建。
(二)課堂
教師引導學生以小組為單位對圖2中“課前”部分的思考題預設,進行學習展示、交流互動、反饋評價以及總結反思,使學生對所學知識深入理解,進行知識內化。例如:C語言中每一種整型數據類型有其各自的允許值范圍,如果對應的變量值超出這個范圍,就要發生所謂的“溢出”,但是變量的值將會變成多少呢?這個問題是許多學生不容易理解的地方。在課堂討論中有一組學生對unsigned int型變量(允許值范圍為0~65535)的理解設計了“周期函數設想”,使抽象內容形象化。即假設一個圓周分割了65536個點,從左到右依次表達0到65535,如果是最大值65536則和最小值0相同,于是產生溢出,最大值變為最小值。
基于這一設想,教師引導學生進行思考,提出溢出問題的優化“表盤設想”。即假設有一個巨型鐘表,秒針時間刻度為0~65535,當秒針360度旋轉一圈后,最大值65536與最小值0重合,最大值變為最小值產生溢出。
實踐證明,通過課堂討論的周期函數設想和表盤設想,學生對整型數據的溢出問題得到充分理解,并能夠舉一反三地思考其他知識點的學習問題。
五、結束語
基于泛在學習環境的《C語言程序設計》翻轉課堂教學模式,踐行了“以學生為中心”及“自主學習”的個性化學習理念。該模式使學生能夠根據自身對《C語言程序設計》課程的學習能力、學習起點進行5A學習,并能夠高效地內化所學的知識,自主構建自身的《C語言程序設計》知識體系。基于泛在學習環境的《C語言程序設計》翻轉課堂教學模式有效地解決了目前該課程教學中存在的問題,為信息教育時代《C語言程序設計》課程教學改革研究拓展了新的思路。
參考文獻:
[1]譚浩強.C程序設計[M].第四版.北京:清華大學出版社,2010,(6):9-14.
[2]章亦葵,李英第.C語言函數時間復雜度自動計算方法的實現[J].計算機應用與軟件,2015,11(32):18-22.
[3]盧炳旭.從學習者的視角看計算機專業《C語言程序設計》課程教學改革[J].職教論壇,2015,7(20):76-79.
[4]盧玉瓏.大數據時代成人泛在學習行為導控[J].教育與職業,2015,8(24):111-113.
[5]王懷波,楊現民,李冀紅.泛在學習應用研究的發展與典型模式分析[J].中國遠程教育,2015,(12):18-26.
[6]邵華,喻惠群.基于泛在學習資源共享平臺的翻轉課堂學習者個性化學習模型研究[J].教育評論,2015,(7):88-92.
[7]Sams .A,J. Bergmann. Flip Your StudentsLearning [J].Educational Leadership,2013,(6):16-20.
[8]鐘曉流,宋述強,焦麗珍.信息化環境中基于翻轉課堂理念的教學設計研究[J].開放教育研究,2013,(1):58-64.
[9]Bergmann.J,A. Sams. Flip Your Classroom:Reach Every Student in Every Class Every Day[M].Washington,DC:International Society for Technology in Education,2012:19-34.