張素真,楊學(xué)鋒,曹東燕,楊延玲
(德州學(xué)院 物理與電子信息學(xué)院,山東 德州 253023)
C語言是全世界普及推廣的程序設(shè)計語言之一,其語言簡潔、使用靈活、可移植性好、更接近計算機底層設(shè)計、執(zhí)行效率高,歷年在軟件開發(fā)領(lǐng)域占據(jù)主流地位[1],因此,成為了高等學(xué)校非計算機專業(yè)普遍開設(shè)的一門專業(yè)基礎(chǔ)課程。該課程不僅是后續(xù)專業(yè)課程的基礎(chǔ),也是學(xué)生以后從事編程行業(yè)必備的學(xué)習(xí)基礎(chǔ)。通過對該課程的學(xué)習(xí),可以培養(yǎng)學(xué)生的計算機邏輯思維能力,為學(xué)生從業(yè)后拓展職業(yè)發(fā)展空間打下堅實基礎(chǔ)。本研究從C語言程序設(shè)計的課程特點、傳統(tǒng)課堂教學(xué)模式的特點及學(xué)生學(xué)習(xí)認知的特點出發(fā),分析了實際教學(xué)中存在的問題,并結(jié)合MOOC網(wǎng)絡(luò)課程的特點,進一步探討如何將MOOC與傳統(tǒng)教學(xué)相融合,通過線上線下混合教學(xué)的模式來提高學(xué)生學(xué)習(xí)的積極性及實際編程的能力。
C語言程序設(shè)計是德州學(xué)院面向電子信息和物聯(lián)網(wǎng)專業(yè)開設(shè)的必修課和專業(yè)基礎(chǔ)課。該課程的前導(dǎo)課程是計算機應(yīng)用基礎(chǔ),其后續(xù)課程有物聯(lián)網(wǎng)軟件設(shè)計基礎(chǔ)、射頻識別技術(shù)及應(yīng)用、Java SE程序設(shè)計及實踐、Android程序設(shè)計及實踐、Android特色應(yīng)用開發(fā)等專業(yè)課程,它不僅是電子信息類和通訊類等專業(yè)的基礎(chǔ)課程,也是計算機、軟件等各種專業(yè)等級資格考試中所要求的程序設(shè)計語言之一。
C語言程序設(shè)計課程內(nèi)容繁多,主要包括基礎(chǔ)知識概述、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體與共用體、編譯預(yù)處理和文件等核心單元。每個核心單元中的知識點也很多,如:函數(shù)這一單元中就包含了函數(shù)的定義、函數(shù)的參數(shù)與函數(shù)值、函數(shù)的調(diào)用和變量的作用域與存儲類型等內(nèi)容,而且每個知識點中的內(nèi)容還可以進一步細分。該課程的教學(xué)目標不僅要求學(xué)生了解算法的基本概念,掌握基本的語法知識,還要培養(yǎng)學(xué)生的計算思維能力及運用C語言編程來解決實際問題的能力[2]。以傳統(tǒng)教學(xué)方式通過有限的64學(xué)時來完成以上教學(xué)內(nèi)容并實現(xiàn)相應(yīng)的教學(xué)目標,無論是對學(xué)生還是對教師來說,都具有一定的挑戰(zhàn)性。
C語言程序設(shè)計是大部分理工科的專業(yè)基礎(chǔ)課程,很多專業(yè)的開課時間都設(shè)置在大一下學(xué)期或大二上學(xué)期。對于初進大學(xué)的很多學(xué)生來說,此時還沒有形成自主學(xué)習(xí)的能力,而且C語言程序設(shè)計也是大部分學(xué)生接觸的第一門編程類課程,無論是在學(xué)習(xí)方式,還是對課程的認識上,都還需要一定的適應(yīng)過程。此外,C語言程序設(shè)計的學(xué)習(xí)內(nèi)容較多,C語言語法繁瑣,比較接近計算機的硬件底層,很容易讓初學(xué)者摸不到“門”,特別是指針部分的學(xué)習(xí)。指針是內(nèi)存空間的地址,在C語言中的應(yīng)用十分廣泛,利用指針可以有效表示各種數(shù)據(jù)結(jié)構(gòu),方便使用數(shù)組和字符串,能夠簡潔實現(xiàn)各種函數(shù)之間的數(shù)據(jù)傳遞,使編寫的程序高效而簡練。但指針的使用復(fù)雜,難以理解,容易出錯,一旦發(fā)生錯誤,其糾錯相對也比較困難。指針不但是C語言學(xué)習(xí)的重點,也是學(xué)習(xí)的難點。在教學(xué)過程中,經(jīng)常有學(xué)生表示指針這部分內(nèi)容特別抽象,很難理解,學(xué)習(xí)的時候有畏懼心理,以至于學(xué)習(xí)的主動性和積極性都不高。
傳統(tǒng)課堂教學(xué)大多是以教師為主體,學(xué)生被動接受的填鴨式教學(xué)。C語言程序設(shè)計內(nèi)容繁雜,包括十幾個章節(jié),每個章節(jié)里面又有大量的概念和眾多的語法規(guī)則,涉及的算法很多且比較抽象,前后知識點之間的相關(guān)性較強,加之有些學(xué)生學(xué)習(xí)的主動性和積極性不高,一旦某個知識點沒掌握,就會對后續(xù)課程的學(xué)習(xí)造成很大影響,部分學(xué)生越來越聽不懂,以至于漸漸喪失了學(xué)習(xí)的自信心。
C語言程序設(shè)計是一門專業(yè)基礎(chǔ)課程,大多都采用大班或合班上課的形式。由于上課學(xué)生人數(shù)眾多,教師不能兼顧到所有學(xué)生,不能全面掌握學(xué)生學(xué)習(xí)的具體情況。C語言程序設(shè)計的課時有限,一般周學(xué)時只有3個或4個,而課程的教學(xué)內(nèi)容又很多,教師在課堂上花費大量時間進行內(nèi)容講解,留給學(xué)生自己思考和探索的時間較少,很難實現(xiàn)學(xué)生編程思維能力的訓(xùn)練,這也是目前學(xué)生實際編程能力普遍較弱的重要原因。
學(xué)生在智力、學(xué)習(xí)能力和認知能力等方面都存在差異。學(xué)生之間的智力差異是客觀存在的,從而直接影響其學(xué)習(xí)能力和認知能力。此外,學(xué)生學(xué)習(xí)的內(nèi)部動機也存在差異,有些學(xué)生有很強的自我提高內(nèi)驅(qū)力,對C語言本身很感興趣,有很強烈的學(xué)習(xí)愿望,能主動學(xué)習(xí),提前預(yù)習(xí),很好地完成教師布置的任務(wù),而有的學(xué)生更多依賴于外部動機,自己沒有學(xué)習(xí)愿望或?qū)W習(xí)愿望很弱,在課堂上主要表現(xiàn)為注意力不集中,學(xué)習(xí)不認真、不努力。由以上的個體差異從而導(dǎo)致了學(xué)生認知方式的差異,也就是掌握知識過程中的具體表現(xiàn)差異,如學(xué)生是否提前預(yù)習(xí)、聽課是否認真、課后是否復(fù)習(xí)、是否能很好地完成教師布置的作業(yè)以及在完成教師布置的任務(wù)之外能否更進一步積極主動拓展自己的知識面,等等。
不同學(xué)生對學(xué)習(xí)內(nèi)容的接受程度是不同的,有的學(xué)生學(xué)得又快又好,能當堂掌握所學(xué)知識,甚至課后積極主動的進一步擴大自己的知識面,而有的學(xué)生學(xué)習(xí)能力和知識接受能力稍差,跟不上教師的節(jié)奏,難以掌握當堂所學(xué)知識。在傳統(tǒng)教學(xué)中,因為教學(xué)進度及課時的限制,教師不可能反復(fù)多次講解,也不可能對每個學(xué)生都能做到因材施教,這就使得有些學(xué)生進入了一步跟不上,步步跟不上的惡性循環(huán)。
MOOC簡稱為“慕課”,是英文Massive Open Online Course的首字母縮寫,其中文直譯為“大規(guī)模開放在線課程”。MOOC是在互聯(lián)網(wǎng)大背景下發(fā)展起來的一種在線免費課程,其目的是使學(xué)習(xí)者不受地域、年齡、學(xué)習(xí)時間和學(xué)習(xí)地點的限制,能夠根據(jù)自己的興趣自主地、有系統(tǒng)地進行學(xué)習(xí)[3-5]。MOOC自出現(xiàn)以來就形成了一股浪潮,受到了極大關(guān)注,國內(nèi)很多高校也都紛紛加入到MOOC建設(shè)中去。
針對C語言程序設(shè)計課程本身的特點,本研究分析了MOOC與傳統(tǒng)教學(xué)方法相比所具有的優(yōu)勢及存在的缺點。MOOC通過互聯(lián)網(wǎng)平臺將傳統(tǒng)課堂以在線學(xué)習(xí)的形式呈現(xiàn),為學(xué)員提供優(yōu)質(zhì)視頻、課件及教學(xué)資料,具有“大規(guī)?!薄伴_放”“在線”三個最主要的特征[6-7]。越來越多的商業(yè)機構(gòu)和高等院校都紛紛加入到MOOC建設(shè)的浪潮中,大大增加了網(wǎng)上課程的數(shù)量及種類,拓展了學(xué)生的學(xué)習(xí)途徑,使學(xué)生的學(xué)習(xí)方式有了更多的可能性和選擇性。
大數(shù)據(jù)統(tǒng)計,國內(nèi)很多高校都開設(shè)了C語言相關(guān)的在線課程,如浙江大學(xué)翁愷老師的程序設(shè)計入門——C語言、C語言程序設(shè)計和C語言程序設(shè)計進階及哈爾濱工業(yè)大學(xué)蘇小紅老師的C語言程序設(shè)計精髓,等等。中國大學(xué)MOOC網(wǎng)上有很多這樣的國家精品課程,學(xué)生可以根據(jù)自己的喜好和需要選擇適合的課程。MOOC的課程是以短視頻的形式呈現(xiàn)的,其視頻長度往往控制在20 min以內(nèi),主題鮮明,重點突出,特別適合C語言知識點繁雜的情況。傳統(tǒng)課堂教學(xué)每節(jié)課長達45 min,學(xué)生很難保持始終如一的注意力,而MOOC時間較短,學(xué)生的注意力相對比較集中,可以很好地提高學(xué)習(xí)效率[8]。
隨著互聯(lián)網(wǎng)的普及,學(xué)生可以通過電腦、手機等多種終端隨時隨地進行上網(wǎng),擺脫了課堂時間上的束縛,為更好地利用各種碎片時間進行學(xué)習(xí)提供了可能。和傳統(tǒng)教學(xué)相比,MOOC的另一大優(yōu)勢是它的可重復(fù)性。同一班級中,不同學(xué)生之間的學(xué)習(xí)能力和認知能力是不同的,有的學(xué)生學(xué)習(xí)能力強,接受比較快,可以跟上教師上課的節(jié)奏,而有的學(xué)生反應(yīng)比較慢,理解能力也比較差,課堂上跟不上教師的節(jié)奏,慢慢的,差距越來越大,以致失去學(xué)習(xí)的信心。若將MOOC引入教學(xué)中,每一個知識點都可以錄成相應(yīng)的視頻、音頻或其他類型的可重復(fù)載體,學(xué)生可以針對每一個知識點或某一個視頻進行反復(fù)學(xué)習(xí),不受時間和次數(shù)的限制。將MOOC引入傳統(tǒng)教學(xué),可以很好地解決學(xué)生學(xué)習(xí)能力差異與傳統(tǒng)統(tǒng)一式教學(xué)模式之間的矛盾。
除了上面說到的各種優(yōu)點,MOOC也存在缺點[9]。一是課程的監(jiān)管問題。對于專注和求知欲強的學(xué)生而言,他們往往能自覺完成課前網(wǎng)上課程的學(xué)習(xí)任務(wù),但對于一些基礎(chǔ)較弱的學(xué)生而言,由于缺乏師生間的直接互動,加之本身的自制力較差,網(wǎng)上學(xué)習(xí)又有太多的誘惑,很容易注意力不集中。因此,在網(wǎng)課學(xué)習(xí)的過程中,學(xué)生的完成情況和學(xué)習(xí)效果都要打一個大大的問號;二是MOOC的互動性不如傳統(tǒng)教學(xué)直接和有效。MOOC的互動性主要體現(xiàn)在討論區(qū)及發(fā)帖提問,但無論是哪種方式,都沒有及時反饋的效果,而在學(xué)習(xí)過程中,及時反饋是非常重要的;三是MOOC的錄制往往需要投入很大的人力、物力及財力。如何在內(nèi)容上更能吸引學(xué)生,制作高質(zhì)量的課程,這對教學(xué)任務(wù)本身就十分繁重的教師來說有一定難度。雖然可以選擇MOOC網(wǎng)絡(luò)平臺上的已有課程,但這種課程往往有時間限制,在上課時間的選擇上受限制。
MOOC是一種新興的課程形式,既有網(wǎng)絡(luò)課程的獨特優(yōu)越性,又有網(wǎng)絡(luò)課程的一些弊端。要想將其運用到教學(xué)過程中,還需要不斷進行研究和探索。關(guān)于MOOC在C語言程序設(shè)計中的應(yīng)用,針對前面對此課程的分析以及該課程在傳統(tǒng)教學(xué)中存在的問題和MOOC課程的特點,可以將傳統(tǒng)教學(xué)和MOOC有效結(jié)合起來,取長補短,采用線上線下混合的方式充分發(fā)揮兩種教學(xué)形式的優(yōu)點。下面在教學(xué)的三個過程中分別加以討論。
教師根據(jù)教學(xué)內(nèi)容,提前布置教學(xué)任務(wù),讓學(xué)生在網(wǎng)上觀看相應(yīng)的教學(xué)視頻,完成初步的、低層次的認知過程,這一過程可以緩解課堂滿堂灌的問題。至于所觀看的視頻,可以是教師本人錄制,也可以是網(wǎng)上各種MOOC平臺上的現(xiàn)有資源。雖然這個過程看似與傳統(tǒng)教學(xué)中的課前預(yù)習(xí)相似,但在這種混合式教學(xué)中卻是至關(guān)重要的,是混合式教學(xué)的關(guān)鍵。要想學(xué)生能自覺按時、按要求完成教師提前布置的自學(xué)任務(wù),那就面臨一個監(jiān)管的問題,如何保證學(xué)生提前觀看視頻?建議采用學(xué)習(xí)小組的形式,小組以宿舍為單位集體觀看視頻并相互討論,小組長負責(zé)監(jiān)督。同時,教師在錄制視頻時也要考慮如何能更吸引學(xué)生,如何在微信、微博和抖音等各種軟件中吸引那些求知欲不強、自制力不高的學(xué)生。針對C語言程序設(shè)計這門課,建議以知識點為單位設(shè)計課程視頻,盡量短小精悍。如果知識點內(nèi)容較多,可以適當分解,但不能打斷課程的連續(xù)性和完整性。
課堂教學(xué)是以學(xué)生課前完成線上學(xué)習(xí)任務(wù)為基礎(chǔ),教師應(yīng)該對學(xué)生課前的學(xué)習(xí)情況有一個大致的了解。學(xué)生應(yīng)將觀看視頻過程中存在的問題反饋給教師,教師要通過提問進一步了解學(xué)生掌握的情況。在此基礎(chǔ)上,教師將教學(xué)任務(wù)整體梳理一遍,使學(xué)生將獨立分散的知識點形成完整的知識體系,并通過適當引導(dǎo)讓學(xué)生掌握重點和難點。當教師和學(xué)生之間進行充分溝通且學(xué)生對知識有了深層次理解之后,進入編程訓(xùn)練階段。教師要先根據(jù)程序?qū)嵗v解編程思想及編程過程中需要注意的語法規(guī)則,然后讓學(xué)生自主上機練習(xí),并通過改寫程序進一步加強訓(xùn)練。這個過程中,教師的主要任務(wù)是引導(dǎo)并幫助學(xué)生解決編程過程中遇到的實際問題,比如一些不易察覺的邏輯錯誤,一些容易忽視的語法錯誤,等等。通過不斷地練習(xí)和糾錯,逐步提高學(xué)生靈活運用所學(xué)知識并熟練編程的能力。
教師可根據(jù)上課的實際情況,布置一定的實踐任務(wù),比如根據(jù)教學(xué)任務(wù)設(shè)計幾個趣味小程序,也可以完成MOOC網(wǎng)絡(luò)平臺上面的作業(yè)與練習(xí)以及每個章節(jié)后面的測驗與作業(yè),或根據(jù)學(xué)生的情況將兩者結(jié)合起來?;诩皶r反饋在教學(xué)過程中的重要性,為了彌補MOOC難以在師生之間進行有效及時反饋的弊端,教師可以建立一個班級QQ群,這樣就建立了師生之間實時有效的溝通渠道,學(xué)生在學(xué)習(xí)中遇到任何問題都可以在群中提出,教師或同學(xué)都可以給出及時解答。通過這種有效的交流,學(xué)生的疑問可以被高效解決。此外,通過學(xué)生的反饋教師能夠知道學(xué)生有沒有認真去學(xué)習(xí)和思考;通過教師的反饋學(xué)生也能知道自己的答案對不對,是否掌握了知識的要點。
基于C語言程序設(shè)計的課程特點,在教學(xué)過程中引入MOOC網(wǎng)絡(luò)平臺,實現(xiàn)線上和線下的混合式教學(xué)模式。針對傳統(tǒng)教學(xué)和MOOC各自的優(yōu)缺點,將兩者有效結(jié)合并給出了具體的方法和實施措施。MOOC平臺的引入增加了學(xué)生和認知之間的鏈接通道,讓教師課上的時間更加充裕。這種方式能有效改變傳統(tǒng)教學(xué)教師滿堂灌,學(xué)生被動接受知識的現(xiàn)狀,也有利于調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性,進而提高學(xué)生的計算思維能力和實際編程能力。