袁赟 朱鴻鵬
【摘 要】結(jié)合C語言程序設(shè)計(jì)課程的教學(xué)特點(diǎn)和問題,本文對(duì)層次模型及其在課程教學(xué)中的應(yīng)用思路展開了分析,然后對(duì)基于層次模型下C語言程序設(shè)計(jì)課程教學(xué)改革實(shí)施路徑進(jìn)行了探討,從而為關(guān)注這一話題的人們提供參考。
【關(guān)鍵詞】層次模型;C語言;程序設(shè)計(jì)課程教學(xué)
中圖分類號(hào): G642;TP312.1-4 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2018)34-0096-003
DOI:10.19694/j.cnki.issn2095-2457.2018.34.039
Reflections on the Teaching Reform of C Programming Language Course Based on Hierarchical Model
YUAN Yun ZHU Hong-peng
(Shaoyang University,Shaoyang Hunan 422000,China)
【Abstract】In view of teaching characteristics and problems of C programming language course, a hierarchical model and its ideas of application during course teaching are hereby analyzed in this paper and then the teaching reform implementation path of C programming language based on the hierarchical model is discussed to provide references to people who focus on such topic.
【Key words】Hierarchical model;C programming language;Programming course teaching
0 引言
作為計(jì)算機(jī)專業(yè)的重要課程之一,C語言程序設(shè)計(jì)課程具有內(nèi)容抽象、知識(shí)點(diǎn)多、應(yīng)用性強(qiáng)等特點(diǎn),在教學(xué)過程中存在各種困難,采用傳統(tǒng)教學(xué)方法和模式無法滿足課程教學(xué)需求。為推動(dòng)課程教學(xué)改革,還應(yīng)引入新的教學(xué)思路,對(duì)原有教學(xué)模式進(jìn)行更新,繼而更好的滿足課程的教學(xué)需求。
1 C語言程序設(shè)計(jì)課程教學(xué)特點(diǎn)及問題
1.1 課程教學(xué)特點(diǎn)
C語言程序設(shè)計(jì)課程為面向過程型程序設(shè)計(jì)的課程,課程目標(biāo)在于使學(xué)生通過學(xué)習(xí)程序設(shè)計(jì)語言結(jié)構(gòu)、算法分析、數(shù)據(jù)表達(dá)等知識(shí)對(duì)C語言程序設(shè)計(jì)構(gòu)造和算法設(shè)計(jì)方法進(jìn)行掌握,并且能夠掌握數(shù)據(jù)處理流程控制和程序模塊化結(jié)構(gòu)設(shè)計(jì)的方法,形成解決復(fù)雜科學(xué)問題的思維。所以在C語言程序設(shè)計(jì)課程教學(xué)方面,需要結(jié)合算法分析、數(shù)據(jù)表達(dá)、程序編程、問題描述等進(jìn)行不同層面知識(shí)單元設(shè)計(jì),具體包含程序設(shè)計(jì)基礎(chǔ)、數(shù)據(jù)類型基礎(chǔ)、數(shù)組與構(gòu)造類型、算法設(shè)計(jì)基礎(chǔ)等[1]。從總體上來看,課程內(nèi)容較為復(fù)雜、抽象,需要學(xué)生在完成大量程序設(shè)計(jì)概念和語法學(xué)習(xí)的基礎(chǔ)上,獲得求解工程實(shí)踐問題的能力。
1.2 課程教學(xué)問題
現(xiàn)階段在C語言程序設(shè)計(jì)課程教學(xué)方面,首先存在學(xué)生課前預(yù)習(xí)不足的情況,以至于學(xué)生在課堂上時(shí)常出現(xiàn)聽不懂的情況,影響課堂教學(xué)效果。就實(shí)際情況而言,目前C語言程序設(shè)計(jì)課程課時(shí)較短,但是課程內(nèi)容較多,如果學(xué)生僅利用課堂時(shí)間學(xué)習(xí)將難以掌握全部知識(shí),所以教師會(huì)在課前進(jìn)行要求學(xué)生自主預(yù)習(xí)。而對(duì)于學(xué)生來講,C語言程序設(shè)計(jì)知識(shí)相對(duì)抽象,在預(yù)習(xí)中總會(huì)遇到各種困難,導(dǎo)致學(xué)生最終放棄預(yù)習(xí)。其次,課程教學(xué)存在缺乏實(shí)踐教學(xué)的問題,以至于學(xué)生雖然掌握了大量抽象的程序設(shè)計(jì)概念和語法,卻無法順利解決工程實(shí)踐問題。在課堂教學(xué)中,教師依然注重理論教學(xué),將有限課時(shí)以8:2的比例分配給理論課程和實(shí)踐課程,以至于學(xué)生在未完全理解舊知識(shí)的情況下,就開始進(jìn)行新理論的學(xué)習(xí),缺乏實(shí)踐鍛煉的機(jī)會(huì)[2]。再者,C語言程序設(shè)計(jì)課程重點(diǎn)內(nèi)容就是掌握算法設(shè)計(jì)方法。但在實(shí)際教學(xué)中,教師盡管會(huì)提到快速排序等算法,但是卻未能給予學(xué)生運(yùn)用算法編程的機(jī)會(huì),以至于學(xué)生難以形成算法設(shè)計(jì)思維,在后續(xù)編程中容易出現(xiàn)問題。最后,在階段性學(xué)習(xí)之后,教師會(huì)布置編程任務(wù)對(duì)學(xué)生進(jìn)行訓(xùn)練。然而目前C語言程序設(shè)計(jì)課程訓(xùn)練任務(wù)都更側(cè)重技能和知識(shí)的訓(xùn)練,缺乏創(chuàng)新性。受這一因素的影響,學(xué)生在完成訓(xùn)練后也只能進(jìn)行知識(shí)的鞏固,無法從中獲得程序設(shè)計(jì)的啟發(fā)。
2 層次模型及其在C語言程序設(shè)計(jì)課程教學(xué)改革中應(yīng)用思路
2.1 層次模型
層次模型原本為一種數(shù)學(xué)模型,最初在商品數(shù)據(jù)庫管理系統(tǒng)系統(tǒng)中得到運(yùn)用,指的是利用“有向樹”的數(shù)據(jù)結(jié)構(gòu)對(duì)各類實(shí)體及實(shí)體間的聯(lián)系進(jìn)行表示。而樹的每個(gè)節(jié)點(diǎn)為一個(gè)記錄類型,樹的結(jié)構(gòu)代表各實(shí)體間聯(lián)系。從本質(zhì)上來講,層次數(shù)據(jù)模型主要強(qiáng)調(diào)的是事物由層次組織起來的概念。在教學(xué)領(lǐng)域,層次模型可用于將教學(xué)問題當(dāng)成是一個(gè)整體進(jìn)行描述,并通過加強(qiáng)各種教學(xué)方法的聯(lián)系提出切實(shí)可行的教學(xué)模式,從而使問題得到解決[3]。
2.2 應(yīng)用思路
針對(duì)C語言程序設(shè)計(jì)課程教學(xué)存在的問題,采用層次模型方法可以解決教學(xué)中的各種問題,提出全新的課程教學(xué)模式,從而有效推動(dòng)課程教學(xué)的改革與發(fā)展。具體來講,就是針對(duì)不同的教學(xué)問題提出不同的教學(xué)方法,然后結(jié)合課程教學(xué)規(guī)律和特點(diǎn)進(jìn)行完成不同教學(xué)層次的設(shè)計(jì),將各種教學(xué)方法融入到不同層次中,確保預(yù)習(xí)、算法學(xué)習(xí)等各種問題得到逐一解決。首先,針對(duì)課程預(yù)習(xí)的問題,就可以引入微課教學(xué)的方法,由教師結(jié)合理論知識(shí)進(jìn)行微課制作,安排學(xué)生在課前進(jìn)行統(tǒng)一學(xué)習(xí),從而保證課程的課前預(yù)習(xí)效果。其次,針對(duì)課程教學(xué)缺乏實(shí)踐性內(nèi)容的問題,可以采用任務(wù)導(dǎo)向法開展教學(xué),由教師提出與課程內(nèi)容相關(guān)的任務(wù)。而學(xué)生在解決任務(wù)的過程中,則能學(xué)會(huì)運(yùn)用學(xué)習(xí)到的知識(shí)解決問題,得到實(shí)踐能力的鍛煉。再者,針對(duì)算法思維培養(yǎng)的問題,可以采用計(jì)算思維法對(duì)學(xué)生進(jìn)行鍛煉,幫助學(xué)生掌握更多的算法經(jīng)驗(yàn),逐步形成算法設(shè)計(jì)思維[4]。最后,針對(duì)編程任務(wù)缺乏創(chuàng)新性的問題,可以采用項(xiàng)目教學(xué)法,安排各種創(chuàng)新型項(xiàng)目,確保學(xué)生能夠在解決項(xiàng)目的過程中得到創(chuàng)新能力的培養(yǎng)。結(jié)合上述思路,則能完成包含微課教學(xué)層、任務(wù)訓(xùn)練層、計(jì)算思維層和項(xiàng)目實(shí)施層的C語言程序設(shè)計(jì)課程教學(xué)模式的建立,通過微課學(xué)習(xí)幫助學(xué)生加強(qiáng)預(yù)習(xí),通過任務(wù)訓(xùn)練加強(qiáng)學(xué)生實(shí)踐能力培養(yǎng),通過算法測(cè)試加強(qiáng)學(xué)生計(jì)算思維培養(yǎng),最終通過項(xiàng)目驅(qū)動(dòng)提高學(xué)生創(chuàng)新能力。
3 基于層次模型下C語言程序設(shè)計(jì)課程教學(xué)改革實(shí)施方法分析
3.1 做好課前準(zhǔn)備
在實(shí)施層次模型教學(xué)前,教師還要做好課前準(zhǔn)備。具體來講,就是要結(jié)合學(xué)生C語言學(xué)習(xí)情況、學(xué)習(xí)需求和課程內(nèi)容進(jìn)行微課制作,確保微課中囊括課堂上需要講解的核心知識(shí)點(diǎn)。與此同時(shí),教師還要結(jié)合學(xué)習(xí)任務(wù)布置需求進(jìn)行任務(wù)設(shè)計(jì),確保課程教學(xué)能夠順利開展。在該階段,教師還要遵循難易適中的原則,確保學(xué)生的學(xué)習(xí)興趣能夠得到激發(fā),以便使學(xué)生能夠順利完成課前預(yù)習(xí)。為保證學(xué)生能夠高效完成課前預(yù)習(xí),教師制作的微課應(yīng)在15-20分鐘范圍內(nèi),避免學(xué)生因長時(shí)間觀看視頻出現(xiàn)注意力不集中的情況。而學(xué)生通過觀看微課,則能掌握各單元知識(shí)點(diǎn)。為確保課前預(yù)習(xí)效果,教師可以要求學(xué)生在觀看微課的過程中將不理解的內(nèi)容記錄下來,并在課堂上進(jìn)行解答。
3.2 布置學(xué)習(xí)任務(wù)
在課堂教學(xué)中,教師可以完成預(yù)先設(shè)計(jì)的任務(wù)布置,要求學(xué)生根據(jù)任務(wù)清單實(shí)現(xiàn)任務(wù)選擇。結(jié)合學(xué)生任務(wù)選擇情況,教師可以將學(xué)生劃分為多個(gè)小組,各自運(yùn)用掌握的C語言程序設(shè)計(jì)知識(shí)進(jìn)行任務(wù)的解決。在任務(wù)的引導(dǎo)下,學(xué)生可以通過分組討論進(jìn)行任務(wù)的研究,并通過組內(nèi)合作完成任務(wù)。通過組內(nèi)評(píng)價(jià),各小組可以提交選擇出的任務(wù)解決方案,并選派成員進(jìn)行方案講解。在各小組完成任務(wù)解決方案講解后,教師可以對(duì)學(xué)生在學(xué)習(xí)中存在的共性問題進(jìn)行匯聚,然后進(jìn)行問題的解答。在此基礎(chǔ)上,教師可以要求各小組再次進(jìn)行任務(wù)的討論,并通過個(gè)體指導(dǎo)幫助學(xué)生形成各自的任務(wù)求解方案。最后,教師需要對(duì)任務(wù)的求解過程進(jìn)行總結(jié),加強(qiáng)知識(shí)與實(shí)踐問題的聯(lián)系,以便使學(xué)生能夠?qū)崿F(xiàn)知識(shí)的內(nèi)化和得到實(shí)踐能力的培養(yǎng)。
3.3 開展編程測(cè)試
在學(xué)生結(jié)合教師提出的任務(wù)給出最終的求解方案后,教師可以組織學(xué)生開展編程測(cè)試,以便對(duì)學(xué)生的算法設(shè)計(jì)能力進(jìn)行培養(yǎng)。具體來講,就是要結(jié)合各知識(shí)單元內(nèi)容對(duì)設(shè)計(jì)方案進(jìn)行分類,然后分別開展編程設(shè)計(jì)、驗(yàn)證等實(shí)驗(yàn)。在程序設(shè)計(jì)時(shí)的過程中,教師需要以此為主線,對(duì)學(xué)生編程和計(jì)算思維能力進(jìn)行重點(diǎn)培養(yǎng),要求學(xué)生進(jìn)行算法設(shè)計(jì)和描述,能夠利用算法將程序帶出。采取該種方式,則能使語法細(xì)節(jié)得到淡化,突出算法的設(shè)計(jì)。完成設(shè)計(jì)后,通過實(shí)驗(yàn)對(duì)算法進(jìn)行驗(yàn)證,也能幫助學(xué)生發(fā)現(xiàn)其中存在的問題,理清算法的設(shè)計(jì)思路。最后,教師需要組織學(xué)生進(jìn)行測(cè)試結(jié)果的展示,從而使學(xué)生編程的興趣得到激發(fā),更好的投入到算法學(xué)習(xí)和設(shè)計(jì)中,得到算法思維的培養(yǎng)。
3.4 實(shí)現(xiàn)項(xiàng)目驅(qū)動(dòng)
在學(xué)生完成階段性學(xué)習(xí)后,教師可以將科研課題、創(chuàng)新訓(xùn)練項(xiàng)目、各類競賽題目等當(dāng)成是C語言程序設(shè)計(jì)課程的項(xiàng)目布置給學(xué)生。而這類項(xiàng)目往往具有較強(qiáng)的應(yīng)用性和創(chuàng)新性,引導(dǎo)學(xué)生參與項(xiàng)目可以將教學(xué)與實(shí)踐接軌,加強(qiáng)學(xué)生創(chuàng)新能力的培養(yǎng)。在項(xiàng)目驅(qū)動(dòng)過程中,教師可以安排學(xué)生自主選定題目,并在課后進(jìn)行資料查閱和方案設(shè)計(jì),通過算法設(shè)計(jì)得到相應(yīng)的程序。在整個(gè)過程中,教師需要給予適當(dāng)?shù)闹笇?dǎo),幫助學(xué)生克服在學(xué)習(xí)中遇到的一些專業(yè)性難題。
4 結(jié)論
通過研究可以發(fā)現(xiàn),在C語言程序設(shè)計(jì)課程教學(xué)改革的過程中,還要建立全新的教學(xué)模式,才能使過去教學(xué)中存在的種種問題得到全方位解決,達(dá)到加強(qiáng)學(xué)生各方面能力培養(yǎng)的目標(biāo)。而引入層次模型,則能在融合各種教學(xué)方法的基礎(chǔ)上系統(tǒng)開展教學(xué),繼而有助于推動(dòng)C語言程序設(shè)計(jì)課程的教學(xué)改革。
【參考文獻(xiàn)】
[1]郭銀章,王麗芳.基于項(xiàng)目任務(wù)驅(qū)動(dòng)的C語言程序設(shè)計(jì)課程教學(xué)改革與實(shí)踐[J].計(jì)算機(jī)教育,2017(02):41-44.
[2]李妮.基于SPOC的C語言程序設(shè)計(jì)課程教學(xué)研究[J].運(yùn)城學(xué)院學(xué)報(bào),2016,34(03):81-84.
[3]嵩天,黃天羽,禮欣.Python語言:程序設(shè)計(jì)課程教學(xué)改革的理想選擇[J].中國大學(xué)教學(xué),2016(02):42-47.
[4]楊穎,曹紅兵,王詩兵等.基于MOOC的C語言程序設(shè)計(jì)課程混合式教學(xué)探究[J].阜陽師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2015,32(04):116-121.