曾曉莉 王龍業(yè) 李勇峰
(①西藏大學藏文信息技術(shù)研究中心 ②③西藏大學工學院 西藏拉薩 850000)
C語言程序設計中f o r語句的教學流程設計
——以西藏大學為例
曾曉莉①王龍業(yè)②李勇峰③
(①西藏大學藏文信息技術(shù)研究中心 ②③西藏大學工學院 西藏拉薩 850000)
文章以C語言程序中的循環(huán)控制結(jié)構(gòu)語句的教學流程為例,根據(jù)布盧姆的認知教育目標的層次定義,在學生基礎較差的前提下,提出了C語言中for循環(huán)結(jié)構(gòu)的分層認知教學目標。教學設計過程中以動機激勵模型為理念,根據(jù)加涅的教學設計原理設計了for循環(huán)語句的課堂教學流程。
C語言;for循環(huán)結(jié)構(gòu);教學流程;布盧姆
C語言是程序設計語言中的常青樹。它兼具高級語言和低級語言的特點,既可以編寫系統(tǒng)應用程序,也可以編寫不依賴計算機硬件的應用程序,它比高級語言耗費的代價小,又比低級語言容易理解。幾乎任何一種機型和操作系統(tǒng)都支持C語言開發(fā)。同時,國內(nèi)外的理工科學科中也都普遍開設了C語言程序設計課程,它既是后續(xù)專業(yè)課程學習基礎,亦是培養(yǎng)學生掌握數(shù)據(jù)處理分析和算法設計的工具。
作為結(jié)構(gòu)化程序設計語言,C語言遵循E.W.Dijikstra提出的使用順序、選擇、循環(huán)三種基本控制結(jié)構(gòu)構(gòu)造程序[1]。循環(huán)控制結(jié)構(gòu)是整個C語言程序設計的核心,它和順序、選擇結(jié)構(gòu)一起互相嵌套能實現(xiàn)更復雜的程序功能,且也和后續(xù)數(shù)組、遞歸等知識點相輔相成。從一定意義上講,循環(huán)控制結(jié)構(gòu)掌握與否,將直接影響學生對整個程序設計語言的把握。本文結(jié)合西藏大學的教學現(xiàn)狀,論述了C語言程序設計中for語句的教學流程設計方法。
1.1 學習內(nèi)容分析
循環(huán)控制結(jié)構(gòu)作為程序設計三大控制結(jié)構(gòu)之一,在C語言程序設計中起到了承前啟后的作用。一方面能和順序與選擇結(jié)構(gòu)一起構(gòu)造出更復雜的程序流程,完成更為強大的計算處理工作;另一方面又是后續(xù)課程的基礎,沒有循環(huán)就無從談遞歸,沒有循環(huán)數(shù)組的實現(xiàn)也是空談。
在C語言程序設計中,允許使用for語句、while語句和do-while語句等三種循環(huán)表現(xiàn)形式。另外還涉及到循環(huán)與選擇的嵌套、循環(huán)與循環(huán)的嵌套、break與continue的使用等[2],語法知識龐多而且復雜。在龐雜的知識系統(tǒng)里,需要對知識點進行梳理,找出其內(nèi)在的聯(lián)系。for語句能夠很容易變形為while語句,while語句也能容易變?yōu)閐o-while語句,學生如果深刻理解了for語句,那么其它兩種語句就不會成為難點[3]。因此,筆者認為在教學安排中,for語句是第一個教學重點;而第二個教學重點是循環(huán)與選擇的嵌套,循環(huán)與循環(huán)的嵌套;第三個重點是break與continue在for循環(huán)中的特殊作用。在掌握了for語句的使用以后,很容易通過for語句的變形掌握while語句和do-while語句。
世界中太多的重復,但并不是簡單的復制,而是“九層之臺起于累土”的漸變,這正是我們課程中的循環(huán)之道。循環(huán)控制結(jié)構(gòu)的難點就體現(xiàn)在怎樣運用相應的知識去解決現(xiàn)實生活中的問題,如求解斐波那契數(shù)列,棋盤上的麥粒等古老數(shù)學問題,也包含統(tǒng)計計劃生育政策下男孩女孩的比率等實際應用問題。
1.2 學習者特征分析
西藏大學是西藏自治區(qū)地方高校,按照漢藏生源1:1.5的比例招生,形成混合生源班級。由于學生基礎差距太大,所以在西藏大學的各類教學實施中,通常采用分級教學模式或者統(tǒng)一降低教學難度的方式。分級教學模式主要應用在受眾群體比較廣泛的公共課教學中,按照學生高考成績的不同,重新對學生組班教學,各班級采用不同的教學大綱;而在專業(yè)課教學中,很多老師依照“照顧大多數(shù)學生”的原則,統(tǒng)一降低教學難度,導致基礎好的學生“吃不飽”,基礎差的學生“撐不下”。在這兩種模式中,其共同點是對基礎差的學生采用了降低教學難度,減少教學內(nèi)容的策略。
西藏大學選擇在學生修完計算機文化基礎課程之后,于大學一年級的下學期開設C語言程序設計課程。C語言程序設計作為工具類課程,有其完整的知識體系,某些知識的缺失,必然會導致學生后續(xù)課程學習的困難。例如,如果沒有鏈表的相關(guān)知識,學生在數(shù)據(jù)結(jié)構(gòu)的學習中就會面臨巨大的困難。筆者認為上述兩種方式都不適合C語言程序設計教學。筆者在教學的過程中意識到,C語言程序設計課程不同于英語、數(shù)學等,需要扎實的基礎知識功底,對大部分學生而言,都是初次接觸程序設計語言,大家的起跑線是一樣的。另外基礎差也并不等于“腦子笨”,只是生活中使用藏語言交流的學生在面對普通話授課的課程中,需要先經(jīng)歷語言翻譯一關(guān)而導致理解能力較差。故在教學過程中,由淺入深,貼近生活的教學設計將有助于學生對知識的理解和掌握[4]。
1956年,美國著名的教育心理學家布盧姆立足于教育目標的完整性,制定了教育目標分類系統(tǒng)[5]。梅耶、安德森、拉斯沃爾等專家于2001年完成了對布盧姆教育目標分類理論的修訂,將認知過程維度教育目標分為六個層次:記憶→理解→應用→分析→評價→創(chuàng)造。這六個環(huán)節(jié)環(huán)環(huán)相扣,從低到高,前為基礎,后為深化。原本的知識被變更為知識維度,將知識從本質(zhì)上分為事實性知識、概念性知識、程序性知識和元認知知識等內(nèi)容[6]。
以案例教學為根本,實際應用為目標,結(jié)合布盧姆認知教育目標的劃分及C語言教學強調(diào)實操的特點,通過對教學內(nèi)容的分析和對學生的學習能力進行評價,筆者將循環(huán)控制結(jié)構(gòu)從知識維度進行了梳理[7-10]。在表1中,筆者設計了層次教學目標,且以“掌握知識”“內(nèi)化知識”和“獲得知識的內(nèi)核和精華”的層層推進方式對教學內(nèi)容進行分解。擬實現(xiàn)能使所有學生真正明白和掌握所學知識,使大多數(shù)學生能內(nèi)化知識、學以致用、能解決實際問題,部分學有余力的學生能掌握知識的精髓、實施更高級的知識評價的教學目標。
表1 for循環(huán)結(jié)構(gòu)分層認知教學目標
通過以上的教學目標分析,我們把課程教學內(nèi)容按照循序漸進的方式進行了整理和細化,在教學環(huán)節(jié)中能夠?qū)嵤╇A段遞進式教學,讓學生在每個階段有明確的學習目標。
西藏大學C語言教學面臨著學生基礎差、學習的自主能動性不強、C語言專業(yè)性強、教學學時緊張等客觀條件。在課堂教學的活動中,面臨的第一個問題就是,怎樣引導學生的學習興趣,提高教學效果,我們引入了動機激勵模型。
3.1 動機激勵模型
美國佛羅里達大學的約翰·凱勒教授提出的動機激勵(ARCS)模型得到了眾多從事教學設計和實施實踐教學的教育者的關(guān)注。他分析了很多有關(guān)學生激勵的材料,最后總結(jié)出來四個基本要素,即注意、相關(guān)性、信心和滿足感[11-13]。在課堂教學中,可結(jié)合這四個方面來引導學生的學習興趣,如在課程導入環(huán)節(jié),與簡單的生活實例相結(jié)合,吸引學生的“注意”;在for循環(huán)的案例設計中體現(xiàn)出與實際應用的“相關(guān)性”和與以前學過的程序設計流程等知識點的“相關(guān)性”;對于“信心”的激勵,可結(jié)合課堂學生反映,做出合適的激勵原則,給學生設定“經(jīng)過努力,就能做到”的目標和期望,這其中,目標過高或者過低都只會產(chǎn)生負面影響;最后,要實施公正、正面的評價機制,促進學生“滿足感”的產(chǎn)生。
3.2 課堂教學流程設計
課堂教學流程設計的好壞直接決定了學生的課堂學習效果,在課堂教學中,需要注重引導學生的學習興趣,加強教學互動,以培養(yǎng)學生的應用實踐能力為基本準則,采用形式多樣的教學方法。
3.2.1 課程導入
根據(jù)ARCS模型,在課程導入環(huán)節(jié),需要積極引導學生的注意力,分析循環(huán)和生活的相關(guān)性,引導學生給出循環(huán)的應用場景。吸引學生的注意力有很多方式,包括激發(fā)學生的求知欲,引起學生的好奇心或者推翻學生原有的認知等。由于學生基礎較差,加上語言翻譯上的障礙,筆者嘗試從生活實例中去吸引學生的注意力,用特別簡單的案例來引導學生分析解決問題,獲得“C語言循環(huán)處理功能很強大”的認知。從而將課程導入以課堂討論方式層層推進[14-17]。
第一,老師拋出問題“怎樣讓計算機輸出跳100次”開始,讓學生討論當前所學知識是否能解決這個問題。如果能,解決方案是否合理?如果不能,那我們生活中是怎樣“跳100次的”?
在開放式的提問下,課堂氛圍會變得非?;钴S,給學生1-2分鐘的討論時間后,進行提問引導,在常規(guī)的思維下,學生會按照printf(“跳1次”),printf(“跳2次”),……,printf(“跳100次”)這樣連續(xù)執(zhí)行printf()函數(shù)100次進行輸出。當然方式累贅,不合理。
第二,接著就回憶我們自己在實施“跳100次”時,動作是不變的,只需要從1到100每次遞增1計數(shù)就可以了,而在常規(guī)處理方式下,輸出語句的主體也是不變的,改變的只是用數(shù)字1到100表達的次數(shù)。老師在這時可以拋出循環(huán)的概念就是“重復執(zhí)行某件事”,并讓學生分析要完成一個循環(huán),需要知道哪些要素?
通過課堂討論以及教師引導,學生能夠得出答案:需要重復的事件,循環(huán)開始計數(shù),循環(huán)結(jié)束計數(shù),從開始到結(jié)束的改變方式。
第三,經(jīng)過第二步的分析,學生已經(jīng)從實例分析中掌握了循環(huán)的四個組成部分,如表2為老師用術(shù)語總結(jié)。
表2 循環(huán)基本組成要素
經(jīng)過以上三步,完成了循環(huán)的導入,學生理解了循環(huán)的概念,掌握了實施循環(huán)需要的組成要素。
3.2.2 課程學習
課堂教學是實施整個課程教學的重點,我們按照布盧姆分層教學目標進行了課堂教學組織。教學過程包含教學內(nèi)容的組織、教學案例的選擇以及教學方法的使用。教學內(nèi)容要由易到難呈現(xiàn),并且要注意教學內(nèi)容的銜接以及綜合應用;教學案例要精簡且貼合實際應用,要具有代表性,包含課程講授知識點,能層層推進;教學方法要靈活多樣,加強教學互動,吸引學生的注意力,提高學生學習的興趣[18-22]。如表3所示,根據(jù)布盧姆教學目標,進一步細化了課堂活動環(huán)節(jié),綜合運用不同教學組織形式,按照知識層層推進的模式,加強教學互動,完成課堂教學環(huán)節(jié)。
表3 課堂教學設計
課堂教學目的是實現(xiàn)對學生分析問題、解決問題能力的培養(yǎng)。在C語言教學中要把教學重點放在教會學生對現(xiàn)實問題進行邏輯抽象,掌握分析問題以及解決問題的思路,而不僅僅是以“語言為主”的教學方式。教是為學服務,我們要了解學生的心理,針對學生學習興趣點來設定教學活動,每個教學環(huán)節(jié)都能起到幫助或支持學生對知識的獲取和加固的作用,從而使學生得到進步。根據(jù)加涅的教學設計原理[23],結(jié)合布盧姆的認知教學目標層次,我們對課堂教學環(huán)節(jié)進行了劃分,在教學組織形式中,按照ARCS模型的要求,采用多種教學組織方式引導學生學習興趣,激勵學生學習動力。
在以上的教學環(huán)節(jié)中,以層層推進的方式,完成for循環(huán)語句的所有知識點的教學,在整體的教學流程中,我們不拘泥于語法知識的介紹,強調(diào)了語法知識的應用。在精選的案例教學中,學生能從實際的應用角度出發(fā),利用C語言程序設計的知識來解決實際的問題,這也是我們進行C語言教學根本的目標所在。
3.2.3 課后作業(yè)
在前面的教學環(huán)節(jié)中,成功實施了for循環(huán)程序設計的導入,完成了for語句、for循環(huán)和選擇結(jié)構(gòu)的嵌套,for循環(huán)自身嵌套以及偽隨機數(shù)的產(chǎn)生和應用等知識點的學習。在教學過程中,采用了案例分析的層層推進方式,著重培養(yǎng)學生應用相關(guān)知識點解決實際問題的能力,學生“學中做”,邊學邊做,編程能力得到了鍛煉。接下來的課后的訓練中,還要加強學生的實訓,在課堂訓練的基礎上,推進深化實踐項目,完成“假如2000萬對夫婦中有300萬對夫婦所在地區(qū)實行‘一孩半’(第一胎是女兒,還能生第二胎)政策,繼續(xù)分析其對男女比例的影響,并讓學生自行討論其他的一些生育政策與現(xiàn)狀,并用程序進行模擬”。讓學生自主程序設計中,互相協(xié)作,深入討論,形成實踐報告。在報告中著重闡述設計流程,并分析實踐的難點和重點,作為課程學習最重要的反饋,以供教師分析。
實踐證明,這樣的教學活動流程滿足了學生的學習心理,對知識點的提取、分類、總結(jié)恰當,兼顧到學生的學習基礎不好的問題,由淺入深,較好地實現(xiàn)了既定的教學目標。在組織實施中,引入ARCS模型,很好地調(diào)動學生的學習主動性,教學氣氛活躍,教學相長,較好地完成了課堂教學。
教學設計是一項沒有通用標準的工作,教師要結(jié)合學生現(xiàn)狀考慮學習者特征,并結(jié)合社會發(fā)展來分析教學內(nèi)容,學習各類先進的教學方法和教學理念,充實自己,完善教學過程。循環(huán)結(jié)構(gòu)作為C程序設計的重點和難點,起著承前啟后的作用,語法實現(xiàn)多樣,還涉及到與其他程序設計流程的嵌套。但是只要向?qū)W生講清楚for語句的內(nèi)涵,學生就能較好地掌握while和do…while結(jié)構(gòu)以及后續(xù)數(shù)組等課程的學習都打下了良好的基礎。
[1][2]譚浩強.C語言程序設計(第4版)[M].北京:清華大學出版社,2012.
[3]馬憲敏,于延.C語言中循環(huán)結(jié)構(gòu)的教學設計探討[J].計算機教育,2011(5):87-90.
[4][18]張莉,金瑩.如何讓程序設計課程既有用又有趣[J].計算機教育,2015(19):45-49.
[5]Bloom BS,EngelhartM D,F(xiàn)urst E J.Taxonomy ofeducationalobjectives:The classification ofeducationalgoals,handbook I:Cognitive domain[M].New York:NY:Longman,1956:1-5.
[6]KrathwohlDR.ARevision of Bloom's Taxonomy:An overview[J].Theory Into Practice,2002,41(4):212-218.
[7][14][19]孫華,于炯,田生偉,等.《C語言程序設計》中循環(huán)結(jié)構(gòu)的教學方法探討[J].中國科技信息,2012,08:238.
[8][15][20]吳育含.VB程序設計中“循環(huán)結(jié)構(gòu)”的教學方法改進[J].福建電腦,2015,07:156-157.
[9][16][21]盛小春.VB程序設計中循環(huán)結(jié)構(gòu)教學方法的探討與實踐[J].江蘇技術(shù)師范學院學報,2011,08:86-89,96.
[10][17][22]趙美虹,任建平.程序設計基礎課程中循環(huán)結(jié)構(gòu)的教學方法[J].中國管理信息化,2016,03:253-254.
[11]John M Keller.The systematic processofmotivationaldesign[J].Performance&Instruction,1987,26(9):1-8.
[12]John M Keller.Developmentand Use of the ARCSModel of Instructional Design[J].Journalof Instructional Development,1987, 10(3):2-10.
[13][23]加涅RM,布里格斯L J,韋杰WW,等.教學設計原理[M].皮連生,龐維國,等,譯.上海:華東師范大學出版社,1999.
Teaching processdesign of“For Circulation Structure”in CLanguage Programming design
Zeng Xiao-li①Wang Long-ye②LiYong-feng③
(①Tibetan Information Technology Research Center,TibetUniversity,Lhasa 850000,Tibet;
②③Schoolof Engineeringand Technology,TibetUniversity,Lhasa 850000,Tibet)
According to the hierarchy definition of Bloom's cognitive education goals and the teaching process of circular-control structural statement in C Language as an example,the hierarchical cognitive teaching goal of“For circulation structure”in C Language was proposed based on studentswith poor basic knowledge and low learning interest.The teaching process of“For circulation structure”was designed based on Gagne's instructionalprinciplewith the idea of themotivating encouragementmodel.
C language;For circulation structure;teaching process;Bloom
10.16249/j.cnki.54-1034/c.2016.02.016
TP311.11
A
1005-5738(2016)02-096-006
[責任編輯:張建偉]
2016-04-13
2015年度西藏自治區(qū)高等教育教學改革研究項目“任務驅(qū)動教學模式在西藏信息類課程中的應用研究”(項目號:JG2015-03);2015年西藏大學人才培養(yǎng)模式改革項目“我校大學生開放實驗室管理研究與實踐”(項目號:藏大字[2015]61號);2015年度西藏大學教學改革創(chuàng)新資助項目“基于微課的翻轉(zhuǎn)課堂的研究”(項目號:藏大字[2015]32號)階段性成果。
曾曉莉,女,漢族,四川南充人,西藏大學藏文信息技術(shù)研究中心副教授,主要研究方向為計算機應用和教育技術(shù)。