摘? 要:“程序設(shè)計”課程是數(shù)學(xué)專業(yè)重要的必修課,針對“程序設(shè)計”課程內(nèi)容的特點,采用混合式的教學(xué)方法,根據(jù)課程具體的內(nèi)容特點以及數(shù)學(xué)專業(yè)學(xué)生的學(xué)習(xí)情況,采用不同的教學(xué)方法進(jìn)行教學(xué),把枯燥的程序設(shè)計語言的語法、規(guī)則等內(nèi)容變的易于學(xué)生理解和接受,對提高學(xué)生學(xué)習(xí)效率有較好的效果。
關(guān)鍵詞:混合式教學(xué)法;程序設(shè)計課程;數(shù)學(xué)專業(yè)
中圖分類號:TP311.1-4 ? ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)08-0101-03
Abstract:“C Language Programming” courses is an important required course,mathematics according to the characteristics of the “C Language Programming” course content,teaching method,adopt the hybrid according to the content and features of the courses and mathematics majors,adopt different teaching methods in teaching,it is easy for students to understand and accept the grammar and rules of dull programming language,which has a good effect on improving students’learning efficiency.
Keywords:hybrid teaching method;programming course;mathematics major
0? 引? 言
隨著信息社會的發(fā)展與變化,數(shù)學(xué)專業(yè)的“C語言程序設(shè)計”課程(以下簡稱:“程序設(shè)計”課程)也面臨巨大的挑戰(zhàn),為適應(yīng)教學(xué)改革的發(fā)展,“程序設(shè)計”課程的教學(xué)模式、教學(xué)內(nèi)容需要不斷地更新?!俺绦蛟O(shè)計”課程是計算機(jī)專業(yè)課程體系的核心課程,也是諸多非計算機(jī)專業(yè)的理工科專業(yè)課程體系的基礎(chǔ)課程?!俺绦蛟O(shè)計課程”對數(shù)學(xué)專業(yè)學(xué)生知識結(jié)構(gòu)的構(gòu)建是很重要的,對培養(yǎng)學(xué)生分析問題、構(gòu)建解決問題方案的能力有著不可替代的作用。通過“程序設(shè)計”課程的學(xué)習(xí),挖掘?qū)W生對數(shù)學(xué)專業(yè)的學(xué)習(xí)興趣,調(diào)動學(xué)生的專業(yè)課學(xué)習(xí)熱情,把相對乏味的數(shù)學(xué)融入到程序設(shè)計過程中,提高學(xué)生對新知識和新技術(shù)的敏感性,培養(yǎng)學(xué)生的專業(yè)探索精神,使學(xué)生能夠更好地適應(yīng)社會的發(fā)展。
1? 程序設(shè)計課程教學(xué)存在的問題
首先,“程序設(shè)計”課程是數(shù)學(xué)專業(yè)開設(shè)的第一門涉及程序設(shè)計的課程,對多數(shù)學(xué)生而言,編程是全新的概念,“程序設(shè)計”課程包含理論教學(xué)與實踐教學(xué)兩部分內(nèi)容,理論教學(xué)包括編程思想、編程原理教學(xué)等,實踐教學(xué)包括在編程環(huán)境下,編寫源程序、編譯程序教學(xué)等。面對新的知識,在課程的理論與實踐環(huán)節(jié),學(xué)生都會感覺到壓力與困難。
其次,一方面,由于課時有限,而“程序設(shè)計”課程各章節(jié)之間的內(nèi)容相對獨立,如基本內(nèi)容部分主要是程序設(shè)計的規(guī)范,包括變量名命名規(guī)則、語句的書寫規(guī)則以及保留字等,內(nèi)容的知識點之間沒有很強的關(guān)聯(lián),也就是說,課程內(nèi)容之間的關(guān)聯(lián)與銜接不是很明顯;另一方面,在應(yīng)用或?qū)嵗糠?,程序設(shè)計則體現(xiàn)了對知識的綜合運用的課程形態(tài)。課程內(nèi)容存在的這些問題,增加了學(xué)生理解與掌握知識的難度。
2? 混合式教學(xué)方法的運用和與實施
所謂混合式教學(xué)方法,是對教學(xué)環(huán)節(jié)中不同的內(nèi)容、知識點采用不同的教學(xué)方法進(jìn)行教學(xué),使教學(xué)內(nèi)容讓學(xué)生更易于接受的方法。
2.1? 虛擬現(xiàn)實輔助教學(xué)法
傳統(tǒng)的“程序設(shè)計”課程教學(xué),大多采用從“概念到實驗”的簡單的教學(xué)模式,極易造成原理與實踐相脫節(jié)的現(xiàn)象,為了完成教學(xué)內(nèi)容,大多數(shù)老師只能采用“大容量、快節(jié)奏”的教學(xué)方式,造成了教學(xué)容量大,而出現(xiàn)了部分學(xué)生對這樣節(jié)奏快、容量大的課不適應(yīng)的現(xiàn)象,教學(xué)步入“負(fù)擔(dān)重、效率低”怪圈,導(dǎo)致課堂教學(xué)效果很不理想。虛擬現(xiàn)實技術(shù)恰好彌補了傳統(tǒng)教學(xué)方法的不足,因為虛擬現(xiàn)實技術(shù)可以模擬實驗過程中每個過程的結(jié)果,讓學(xué)生及時了解程序設(shè)計基本算法實現(xiàn)的來龍去脈、前因后果,更好地理解算法中涉及的數(shù)學(xué)思想與數(shù)學(xué)模型,并充分利用虛擬現(xiàn)實的仿真技術(shù)模擬實驗環(huán)境,通過網(wǎng)絡(luò)的先進(jìn)技術(shù),打破傳統(tǒng)的教學(xué)模式與方法。一方面,它可以給“程序設(shè)計”課程教學(xué)提供更豐富的實驗過程、細(xì)節(jié)和實驗結(jié)果,幫助學(xué)生加深對程序運行流程及算法的理解;另一方面,它可以打破傳統(tǒng)教學(xué)各環(huán)節(jié)的時空限制,在實現(xiàn)教學(xué)信息的高度有秩序、大容量共享的同時,提供給學(xué)生一個模擬的實踐環(huán)境,從而全方位的通過實現(xiàn)人與計算機(jī)、人與人的交流來提高“程序設(shè)計”課程教學(xué)的效率,從而達(dá)到提高教學(xué)效率的目的。
“程序設(shè)計”課程中每一條語法,都有其實際的意義以及具體的操作,在編程、解決實際問題中發(fā)揮著作用。在程序設(shè)計語法的教學(xué)過程中,通過虛擬現(xiàn)實的方法,將程序運行過程形象地表現(xiàn)出來,將程序運行“透明化”,有助于加深對相關(guān)知識點的理解,如變量聲明、變量初始化、變量的類型等,這些術(shù)語看似抽象不好理解,其實描述的都是數(shù)據(jù)對內(nèi)存的讀與寫的一系列操作,但這些操作的過程是看不見摸不著的,對初學(xué)者來說,是一個較難掌握的難點。變量聲明是分配內(nèi)存的基本操作,規(guī)定內(nèi)存的類型是更高效地管理內(nèi)存,變量初始化是寫內(nèi)存操作等,由于內(nèi)存的運行是看不見的,因此,教學(xué)過程配合帶有交互式的虛擬現(xiàn)實課件,將內(nèi)存運行過程形象表現(xiàn)出來,將抽象的過程形象化。
2.2? 類比教學(xué)法
“程序設(shè)計”課程內(nèi)容中的常量、變量和函數(shù)是程序設(shè)計語言中的基本內(nèi)容之一,而常量、變量和函數(shù)的概念來源于數(shù)學(xué),但與數(shù)學(xué)中的概念又不完全相同。
數(shù)學(xué)中函數(shù)的概念,從初一的一次函數(shù)開始到高三的二次曲面都與函數(shù)概念密不可分,也就是說,函數(shù)的概念貫穿于整個中學(xué)數(shù)學(xué)的內(nèi)容之中,學(xué)生對函數(shù)的概念并不陌生,因此,程序設(shè)計語言中常量、變量和函數(shù)的教學(xué)內(nèi)容,可采用類比教學(xué)方法。例如:以兩個函數(shù)概念的異同為切入點,圍繞比較兩者之間的關(guān)系、性質(zhì)與功能展開討論,通過比較的方式,把程序設(shè)計語言中函數(shù)的概念講透。數(shù)學(xué)中的函數(shù)是一個沒有被賦予任何實際意義的抽象概念,自變量與因變量相互依存,缺一不可,強調(diào)自變量與因變量的映射關(guān)系,定義域和值域并存。當(dāng)函數(shù)關(guān)系可以用一個解析式表示時,函數(shù)關(guān)系往往表現(xiàn)為一個計算公式。
(1)兩個不同函數(shù)定義的比較。程序設(shè)計語言的函數(shù)來源于數(shù)學(xué),它關(guān)于函數(shù)的定義(以下簡稱:函數(shù)定義1)的格式如下:
類型名? 函數(shù)名(類型名1? 參數(shù)名1,類型名2? 參數(shù)名2,…)={函數(shù)體}
數(shù)學(xué)中關(guān)于(多元)函數(shù)的定義(以下簡稱:函數(shù)定義2)為:
設(shè)D為一個非空的n元有序數(shù)組的集合,f為某一確定的對應(yīng)規(guī)則。若對于每一個有序數(shù)組(X1,X2,…,Xn)∈D,通過對應(yīng)規(guī)則f,都有唯一確定的實數(shù)y與之對應(yīng),則稱對應(yīng)規(guī)則f為定義在D上的n元函數(shù)。
函數(shù)定義1中的參數(shù)相當(dāng)于函數(shù)定義2中的自變量,給定自變量(參數(shù))的值,通過關(guān)系,都有函數(shù)值與之對應(yīng),但是,定義1的函數(shù)值有確定的數(shù)據(jù)類型,定義2的函數(shù)值沒有具體的類型。在教學(xué)過程中通過這樣的比較,可以讓學(xué)生更好地理解程序設(shè)計語言中函數(shù)的內(nèi)涵。
(2)有參函數(shù)與無參函數(shù)的比較。在程序設(shè)計語言關(guān)于函數(shù)的定義1中,參數(shù)相當(dāng)于自變量,返回值相當(dāng)于因變量(函數(shù)),一個參數(shù)相當(dāng)于一元函數(shù),兩個參數(shù)就相當(dāng)于二元函數(shù),等等,返回值只能有一個。參數(shù)的個數(shù)可以取0,沒有參數(shù),稱為無參函數(shù),無參數(shù)函數(shù)的函數(shù)名后面的括號里是空的,沒有參數(shù)列表。無參函數(shù)也可以有返回值,也可以是某個操作功能等,這是與數(shù)學(xué)上函數(shù)定義不同的,在函數(shù)定義2中,自變量的個數(shù)至少是一個,數(shù)學(xué)中關(guān)于函數(shù)的定義必須有自變量。
(3)有返回值與無返回值的比較。程序設(shè)計語言中帶參數(shù)的函數(shù)功能更加強大,也更加靈活。與此相反,有的函數(shù)有參數(shù)但是沒有返回值。一般情況下,程序設(shè)計語言中的無返回值函數(shù),函數(shù)名需用void保留字修飾,無參數(shù)而有返回值的函數(shù)一定要聲明其返回值的類型。
(4)結(jié)構(gòu)體與二維表格的比較。在程序設(shè)計語言中,結(jié)構(gòu)體是一種自定義數(shù)據(jù)類型,也是C++中類的原型,結(jié)構(gòu)體與類的區(qū)別在于前者不帶函數(shù),結(jié)構(gòu)體在程序設(shè)計語言教學(xué)內(nèi)容中是非常重要的。結(jié)構(gòu)體是對二維表格結(jié)構(gòu)的描述,用結(jié)構(gòu)體聲明的變量,其真正的目的就是分配內(nèi)存的復(fù)合單元,用于存放二維表格某一行的數(shù)據(jù)。因此,在教學(xué)過程中,可將結(jié)構(gòu)體的內(nèi)容與二維表格的結(jié)構(gòu)進(jìn)行比較,讓學(xué)生真正理解結(jié)構(gòu)體的定義、聲明變量的目的,進(jìn)而加深理解結(jié)構(gòu)體數(shù)據(jù)類型以及結(jié)構(gòu)體變量的內(nèi)涵,更好地掌握對結(jié)構(gòu)體變量的讀寫操作。
(5)嵌套調(diào)用與復(fù)合函數(shù)的比較。復(fù)合函數(shù)通俗地說就是函數(shù)套函數(shù),是把幾個簡單的函數(shù)復(fù)合為一個較為復(fù)雜的函數(shù)。復(fù)合函數(shù)中不一定只含有兩個函數(shù),有時可能有兩個以上函數(shù),如y=f(u),u=φ(v),v=ψ(x),則函數(shù)y=f{φ[ψ(x)]}是x的復(fù)合函數(shù),u、v都是中間變量。
而在程序設(shè)計語言中,函數(shù)的定義都是相互平行、相互獨立的,也就是說在函數(shù)定義時,函數(shù)體內(nèi)不能包含另一個函數(shù)的定義,即函數(shù)不能嵌套定義,但可以嵌套調(diào)用。
在程序設(shè)計語言中,函數(shù)的調(diào)用是一級調(diào)用一級,可以嵌套,甚至可以自己調(diào)用自己(遞歸),所有定義的函數(shù)都是用來被調(diào)用的,所以都是被調(diào)函數(shù)。但是,某些函數(shù)又調(diào)用了其他函數(shù),所以,就是相對的主調(diào)函數(shù)了。主調(diào)用和被調(diào),就類似于父與子,子與孫,……,是相對的。main()主函數(shù)是程序的入口點。
總之,將舊知識與新知識進(jìn)行比較,利用舊知識理解、掌握新知識,是提高學(xué)習(xí)效率和構(gòu)建知識結(jié)構(gòu)的有效方法。在實際的課堂教學(xué)過程中,教師需要在備課時,找到新知識與舊知識相似的內(nèi)容,有機(jī)融入教學(xué)過程中。所以,利用舊知識理解新知識更多是一種學(xué)習(xí)框架和指導(dǎo)理念。同時又需要學(xué)習(xí)者對舊知識擁有全棧的知識結(jié)構(gòu)和系統(tǒng)化的知識樹,這兩者的建立又依賴于“利用舊知識理解新知識”。通過分析、類比、對比,將掌握的舊知識,提煉及找出其規(guī)律,平移到新的知識上來,實現(xiàn)更好地理解和掌握新知識。
2.3? 任務(wù)驅(qū)動教學(xué)法
任務(wù)驅(qū)動教學(xué)法根據(jù)教學(xué)要求設(shè)計出具有實際意義的、符合學(xué)生認(rèn)知水平的任務(wù),把教學(xué)內(nèi)容隱含在任務(wù)中,當(dāng)學(xué)生能在教師的指導(dǎo)下或?qū)W生自己能獨立地完成任務(wù)時。學(xué)生也就建構(gòu)了本節(jié)課所學(xué)的新知識體系。
“程序設(shè)計語言”是一門工具性的課程,教學(xué)的最終目的是讓學(xué)生能夠運用程序設(shè)計去解決實際問題,教學(xué)內(nèi)容中的實例具有目標(biāo)具體,內(nèi)容實用的特點,教學(xué)目標(biāo)清楚明確,在教學(xué)過程中,教師根據(jù)教學(xué)內(nèi)容設(shè)計教學(xué)任務(wù),教學(xué)過程以解決任務(wù)為中心,以完成任務(wù)為目標(biāo),不求理論的系統(tǒng)性,只求內(nèi)容的實用性,以此為目標(biāo)展開教學(xué),培養(yǎng)學(xué)生發(fā)現(xiàn)問題、解決問題的綜合應(yīng)用能力,提高學(xué)生對學(xué)習(xí)的主動參與意識,激發(fā)學(xué)生的學(xué)習(xí)興趣。
3? 結(jié)? 論
“程序設(shè)計”課程的教學(xué)目的是培養(yǎng)學(xué)生的編程思想與方法,使學(xué)生深刻理解編程原理與程序運行機(jī)制,在解決實際問題中靈活運用,因此,在教學(xué)過程中,對教學(xué)內(nèi)容進(jìn)行細(xì)分,根據(jù)不同的、具體的教學(xué)內(nèi)容,運用不同的教學(xué)方法,制定不同的教學(xué)方案,針對不同的教學(xué)內(nèi)容,從教學(xué)方法、實踐教學(xué)和評價體系等角度提出針對性的教學(xué)改革方案并組織教學(xué),對提高C語言教學(xué)效果,讓學(xué)生更好地理解掌握編程思想與程序運行機(jī)制,對培養(yǎng)學(xué)生運用計算機(jī)編程方法去解決實際問題有積極的意義。
參考文獻(xiàn):
[1] 宛西原,汪霞.非計算機(jī)本科專業(yè)計算機(jī)程序設(shè)計課程的改革思考 [J].計算機(jī)工程與科學(xué),2014,36(S1):56-59.
[2] 張云峰,高春穎,劉俊,等.《程序設(shè)計基礎(chǔ)》實驗教學(xué)模式改革研究 [J].計算機(jī)工程與科學(xué),2016,38(S1):265-268.
[3] 秦新強,趙鳳群,趙康,等.大學(xué)數(shù)學(xué)實踐教學(xué)改革的探索 [J].中國大學(xué)教學(xué),2012(11):16-17.
[4] 陳曉龍,彭志平.計算機(jī)科學(xué)與技術(shù)特色專業(yè)建設(shè)研究與實踐 [J].計算機(jī)教育,2013(6):61-63+67.
[5] 丁海燕.計算機(jī)程序設(shè)計課程中計算思維的培養(yǎng) [J].實驗技術(shù)與管理,2015,32(12):16-18+21.
作者簡介:趙智(1962.10-),男,壯族,廣西龍州人,副教授,畢業(yè)于廣西師范大學(xué)數(shù)學(xué)系,本科,主要研究方向:虛擬現(xiàn)實技術(shù)、智能計算。