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