廖彬 黃小虎 吳鑫成 黃榕榕
摘? 要 針對C語言程序設(shè)計在理學專業(yè)程序設(shè)計課程群中的作用與教學現(xiàn)狀,基于現(xiàn)階段的本科建設(shè)任務(wù)與學生特點,合理編排C語言程序設(shè)計的理論和實踐教學內(nèi)容,結(jié)合教育技術(shù)與教育資源的發(fā)展,融合線上與線下教學,從而促進學生程序設(shè)計、計算思維能力的提高,實現(xiàn)培養(yǎng)創(chuàng)新人才的目標。
關(guān)鍵詞 理學專業(yè);C語言程序設(shè)計;教學方法;線上教學平臺;實踐教學;計算思維
中圖分類號:G434? ? 文獻標識碼:B
文章編號:1671-489X(2021)24-0049-03
Study on Teaching Method of C Language Programming for Science Majors//LIAO Bin, HUANG Xiaohu, WU Xincheng, HUANG Rongrong
Abstract In view of the role and teaching status of C language pro-
gramming in the programming course group of science majors, the
paper studies on the theoretical and practical teaching content and
arrangement of C language programming based on the undergraduate
teaching and students’ characteristics. This research is going to im-prove students’ programming and innovation ability by combining the online/offline teaching technology and resources.
Key words science majors; C language programming; teaching me-thods; online teaching platform; practical teaching; computational thinking
0? 前言
信息技術(shù)已經(jīng)被大量運用在當前社會的各行各業(yè)中,由此導(dǎo)致現(xiàn)階段我國社會對專業(yè)人才的信息處理能力的要求逐漸提高[1]。在信息處理能力中,程序設(shè)計能力是必不可少的組成部分,而信息處理中的程序設(shè)計能力的核心[2]主要包括編程能力、計算思維和算法能力。
在理學專業(yè)本科教學中,程序設(shè)計課程群的主干課程由C語言程序設(shè)計、離散數(shù)學、數(shù)據(jù)結(jié)構(gòu)、算法組成。學生通過學習此課程群的主干課程,掌握編程基本思想與技能,從而具有程序設(shè)計能力、計算思維和基本算法實現(xiàn)能力。其中,C語言程序設(shè)計作為專業(yè)學習的第一門編程語言,能使學生了解、掌握和運用程序設(shè)計的基本概念、原理與方法,從而訓練和培養(yǎng)學生的程序設(shè)計與程序調(diào)試能力,具備程序設(shè)計的基本能力。該課程是現(xiàn)階段大部分學科中程序設(shè)計培養(yǎng)的入門課程,通過學習該課程,能為學生后續(xù)學習其他編程語言及相關(guān)課程打下堅實的基礎(chǔ)。
C語言程序設(shè)計在程序設(shè)計課程群中具有重要作用,同時由于其具有實踐性強的特點,因此要求學生在該課程的學習中學以致用,以實現(xiàn)理論向?qū)嵺`的轉(zhuǎn)化,并能充分理解程序設(shè)計基本知識,能靈活應(yīng)用,為后續(xù)相關(guān)課程的學習做好理論知識與應(yīng)用能力的準備。在針對理科專業(yè)開設(shè)的C語言程序設(shè)計教學中,結(jié)合該課程在程序設(shè)計課程群中的作用與教學現(xiàn)狀,基于現(xiàn)有的教學設(shè)置,合理編排理論教學與實踐教學內(nèi)容,從教學內(nèi)容和實驗設(shè)置出發(fā),探索適用于當前理學專業(yè)的C語言程序設(shè)計課程教學方法。
1? 理學專業(yè)C語言程序設(shè)計課程教學現(xiàn)狀
在現(xiàn)階段的教學中,理論教學與實踐教學是C語言程序設(shè)計教學的必要組成部分[3],學生通過在C語言程序設(shè)計的實踐教學中理解與加強理論課所授知識,并通過實踐過程提高分析、解決問題的能力。為此,需要根據(jù)學生的專業(yè)特點有針對性地為C語言程序設(shè)計的教學活動合理地編排理論課、實踐課教學內(nèi)容,并充分利用已有的在線教學內(nèi)容與移動手機端編程方式使理論與實踐互相促進,從而使學生能充分理解與掌握該課程知識。
1.1? 零起點程序設(shè)計教學
在大部分院校早期的理科課程設(shè)置中,入校新生一般先學習大學計算機基礎(chǔ)課程,其后開始學習C語言程序設(shè)計。隨著近年來國家在高中階段對信息技術(shù)課程的重視,越來越多的高中開設(shè)了信息技術(shù)初級課程。與此相適應(yīng),許多高校開始對大一新生的信息學課程設(shè)置進行改革,將程序設(shè)計類課程的教學前移,以期更快更好地提高現(xiàn)階段大學生對信息技術(shù)的掌握程度。
在華南農(nóng)業(yè)大學近年開始實行的部分理科課程教學改革中,在大學本科第一學期即開設(shè)C語言程序設(shè)計,不再開設(shè)大學計算機基礎(chǔ)課程,因此,C語言程序設(shè)計成為此類專業(yè)學生入校后的第一門信息類課程。雖然近年來部分高中開設(shè)了信息學課程,但是由于高中階段的高考主導(dǎo)作用,以及缺少足夠的教師、配套硬件等,大部分大一新生對程序設(shè)計所需的理論基礎(chǔ)知識較為陌生,如計算機軟硬件系統(tǒng)結(jié)構(gòu),進位計數(shù)制,二、八、十、十六不同進制數(shù)之間的轉(zhuǎn)換,不同數(shù)據(jù)類型在計算機中的表示與存放等。在此狀況下的程序設(shè)計教學,與零起點程序設(shè)計教學有諸多相似之處。如果在C語言程序設(shè)計教學中,不考慮前期課程設(shè)置的變化,機械照搬以往的教學編排與教學內(nèi)容,將在一定程度上增加學生理解與掌握概念的難度,并會影響后續(xù)相關(guān)課程的學習。
1.2? 程序設(shè)計教學內(nèi)容與學生的學習興趣
C語言程序設(shè)計作為專業(yè)基礎(chǔ)課程,近年來的教學大綱較穩(wěn)定,教學內(nèi)容更新不多,這導(dǎo)致該課程的教學內(nèi)容在一定程度上與實際應(yīng)用的聯(lián)系不太緊密。隨著信息技術(shù)在社會生活方方面面的使用,學生日常對科技知識與科技信息的獲取更為便捷。同時,近年來隨著自主意識的增強,學生的創(chuàng)新思維更加活躍,由此引發(fā)了他們對課程所學知識與專業(yè)應(yīng)用、工程應(yīng)用聯(lián)系的關(guān)注。若在授課中僅使用傳統(tǒng)案例講授與展示學科知識,則難以調(diào)動學生的學習積極性,不利于激發(fā)學生的學習興趣,導(dǎo)致不利于創(chuàng)新人才的培養(yǎng)。對此,通過將學生專業(yè)的相關(guān)應(yīng)用實例適度引入傳統(tǒng)教學內(nèi)容,借此提高學生的學習興趣,達到實現(xiàn)培養(yǎng)創(chuàng)新人才的目的。
1.3? 后續(xù)課程的銜接
在程序設(shè)計課程群中,C語言程序設(shè)計的后續(xù)課程通常包括數(shù)據(jù)結(jié)構(gòu)、算法分析與設(shè)計。數(shù)據(jù)結(jié)構(gòu)主要介紹使用計算機解決問題時組織數(shù)據(jù)、存儲數(shù)據(jù)結(jié)構(gòu)以及在各種結(jié)構(gòu)上執(zhí)行操作的方法。算法分析與設(shè)計教學內(nèi)容一般包括遞歸法、分治法、動態(tài)規(guī)劃算法等。通過數(shù)據(jù)結(jié)構(gòu)和算法的結(jié)合,培養(yǎng)學生解決實際問題的能力。在傳統(tǒng)教學中,數(shù)據(jù)結(jié)構(gòu)講授的數(shù)據(jù)關(guān)系較為抽象。在算法分析與設(shè)計教學中,培養(yǎng)學生分析與設(shè)計算法的能力是教學目標之一。若前期C語言程序設(shè)計中的知識與實踐掌握不牢,將影響后續(xù)對數(shù)據(jù)結(jié)構(gòu)、算法等相關(guān)課程知識的掌握。C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)和算法分析與設(shè)計作為程序設(shè)計課程群中的主體課程,教學目標都包括培養(yǎng)學生解決實際問題的程序設(shè)計能力,然而在傳統(tǒng)教學中,這三門課程的教學與實驗相對獨立,課程間的實驗內(nèi)容較少銜接與統(tǒng)一。為了實現(xiàn)課程群間相關(guān)課程的延續(xù)性與一貫性,需要在C語言程序設(shè)計教學中為后續(xù)數(shù)據(jù)結(jié)構(gòu)、算法分析與設(shè)計的學習適當引入相關(guān)內(nèi)容,循序漸進地逐步構(gòu)建數(shù)據(jù)結(jié)構(gòu)與算法的知識體系,實現(xiàn)程序設(shè)計課程群中各門課程知識的統(tǒng)一與銜接。
2? 理論教學、實踐教學與教學手段的改革探索
在C語言程序設(shè)計教學初期,需要先為學生鞏固相關(guān)的數(shù)據(jù)表示與存儲、進制轉(zhuǎn)換的概念;在教學后期,需要有針對性地強化學生的程序設(shè)計能力,為后續(xù)的數(shù)據(jù)結(jié)構(gòu)、算法知識的學習打下良好的基礎(chǔ),并通過程序設(shè)計的學習與實踐,提高學生的程序設(shè)計和實現(xiàn)能力。在線下的面授教學中,充分利用疫情期間建立的線上教學平臺與取得較好效果的線上教學經(jīng)驗,將適宜的線上教學手段與合理設(shè)計、編排的程序設(shè)計教學內(nèi)容相結(jié)合,使學生更好地掌握與理解C語言程序設(shè)計知識,并能建立起程序、數(shù)據(jù)結(jié)構(gòu)和算法之間的聯(lián)系。
2.1? 理論課教學內(nèi)容與案例設(shè)計
C語言程序設(shè)計課程是學生接觸的第一門程序設(shè)計語言,其包含的概念、原理、方法較多,技巧靈活且繁雜,需要針對所學專業(yè)學生的特點進行合適的教學內(nèi)容設(shè)計??紤]到大部分理學專業(yè)新生對程序設(shè)計所需的信息技術(shù)基礎(chǔ)了解不多,在實際教學中,在講授程序設(shè)計內(nèi)容前增加講授程序設(shè)計所需的信息技術(shù)基礎(chǔ)知識的內(nèi)容,具體包括計算機系統(tǒng)基礎(chǔ)知識、微型計算機的硬件組成、數(shù)制及其相互轉(zhuǎn)換、數(shù)值數(shù)據(jù)編碼、西文字符編碼。學生掌握了這些信息技術(shù)基礎(chǔ)知識后,將能較好地掌握與理解程序設(shè)計中諸如數(shù)據(jù)類型與存儲、變量與常量、表達式與運算、輸入與輸出等知識。
由于理學專業(yè)后續(xù)的專業(yè)課程中通常涉及較多的數(shù)值計算、數(shù)據(jù)分析等,若學生能在程序設(shè)計學習中盡早地掌握信息化手段,使用程序設(shè)計知識完成數(shù)據(jù)分析等任務(wù),將極大地提高專業(yè)學習興趣并能提升專業(yè)素養(yǎng),有助于培養(yǎng)創(chuàng)新能力。為此,在C語言程序設(shè)計教學中主要使用數(shù)值計算、數(shù)據(jù)分析等作為教學的示例案例。如在講授了選擇與循環(huán)知識點后,使用示例程序“水仙花數(shù)的判斷”展示選擇與判斷的綜合使用。通過引入此類內(nèi)容,既能對已學的程序設(shè)計知識進行簡單回顧,也能為后續(xù)的數(shù)值計算、數(shù)據(jù)分析等相應(yīng)概念的表示與實現(xiàn)打下前期基礎(chǔ)。
2.2? 實驗課教學內(nèi)容的設(shè)計
在程序設(shè)計課程群中,實踐教學作為C語言程序設(shè)計知識內(nèi)化的有效途徑,有助于提升學生的探究與創(chuàng)新能力。針對C語言程序設(shè)計的實驗需要設(shè)計能有效檢驗知識點的實驗內(nèi)容。以循環(huán)的實驗為例,實踐教學安排的實驗內(nèi)容為“整數(shù)間的數(shù)制轉(zhuǎn)換”。數(shù)制轉(zhuǎn)換的基本方法是大學計算機基礎(chǔ)課程的內(nèi)容,在C語言程序設(shè)計中進行了補充學習,且通常大部分理學專業(yè)學生能較好地掌握。通過數(shù)制轉(zhuǎn)換的編程實驗,既能考查學生對計算機基礎(chǔ)知識的掌握與理解情況,也能反映學生對循環(huán)、選擇、輸出格式控制的掌握情況。
2.3? 線上線下融和
近年來,隨著個人電腦、智能移動設(shè)備的普及以及網(wǎng)絡(luò)建設(shè)的發(fā)展,在線教育具備了推廣與普及的條件。各高校紛紛推出在線精品課程、MOOC課程等線上教學方式,對教學空間與廣度進行拓展。2020年初,在新冠疫情嚴峻的形勢下,學校教學采用完全在線教學的形式。在此期間,為了適應(yīng)網(wǎng)絡(luò)教學的特點,保證學習效果,無論是教學設(shè)計還是教學組織,都突破傳統(tǒng),進行重新規(guī)劃。各門課程的教師利用在線教學的優(yōu)勢,充分發(fā)揮信息化教學的優(yōu)勢[4],
積累與總結(jié)了許多教學經(jīng)驗[5]。在恢復(fù)線下教學后,仍可繼續(xù)利用疫情期間的線上教學資源、教學優(yōu)勢。
在線下教學中,課前根據(jù)教學內(nèi)容確定學生需要掌握的知識點和相關(guān)能力,在學校建立的教學平臺上布置課前需要觀看的視頻并發(fā)布預(yù)習問題。在線下面授課中,教師先采用講授的教學模式講解本課需要掌握的知識點,其后引導(dǎo)學生討論與交流在預(yù)習、自主學習中易出錯與混淆的問題。課后通過在線課后作業(yè)與測驗了解學生對知識點的掌握程度,可迅速地獲得學生學習情況的反饋。
C語言程序設(shè)計是一門與實踐緊密結(jié)合的課程。在教學中通過引入移動手機端編程應(yīng)用,使學生在有限的實踐課外能隨時隨地、快速便捷地檢驗與測試所學的程序設(shè)計知識,更利于學生掌握C語言程序設(shè)計的理論知識,并極大地豐富學生的編程實踐經(jīng)驗。
3? 結(jié)語
本文從C語言程序設(shè)計與程序設(shè)計課程群之間的關(guān)系出發(fā),結(jié)合現(xiàn)階段的本科建設(shè)任務(wù)與學生特點,針對理學專業(yè)的C語言程序設(shè)計理論教學和實踐教學進行合理編排,充分利用現(xiàn)代化的教學平臺與教學手段,對現(xiàn)階段高校理學專業(yè)C語言程序設(shè)計課程教學進行改革與實踐,通過融入線上線下教學的教學改革以提高教學效率,增強教學效果,從而培養(yǎng)學生的創(chuàng)新能力,達到培養(yǎng)創(chuàng)新型人才的教學目的?!?/p>
參考文獻
[1]張先偉,曲志堅,張立紅,等.程序設(shè)計能力培養(yǎng)體系建設(shè)與實踐[J].計算機教育,2019(9):75-79.
[2]蔣宗禮.計算機類專業(yè)人才專業(yè)能力構(gòu)成與培養(yǎng)[J].中國大學教學,2011(10):11-14.
[3]楊傳棟,范昊,王志軍,等.非計算機專業(yè)C語言程序設(shè)計教學方法研究[J].教育教學論壇,2020(36):284-285.
[4]李薇,黑新宏,王磊,等.C語言程序設(shè)計課程的在線教學組織與實踐[J].計算機教育,2020(10):37-41.
[5]白琳.疫情期間基于教學共同體的精準在線教學設(shè)計:以C語言程序設(shè)計課程為例[J].計算機教育,2021(1):36-41.