国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于函數(shù)的“C語言程序設(shè)計(jì)”課程教學(xué)設(shè)計(jì)

2019-07-15 01:16魏蕾耿楠馮妍
關(guān)鍵詞:C語言程序設(shè)計(jì)C語言教學(xué)設(shè)計(jì)

魏蕾 耿楠 馮妍

摘? ? 要:“C語言程序設(shè)計(jì)”課程在計(jì)算機(jī)教學(xué)領(lǐng)域,既是程序設(shè)計(jì)的基礎(chǔ)課,也是數(shù)據(jù)結(jié)構(gòu)與算法及后續(xù)學(xué)習(xí)的核心基礎(chǔ)課程。對(duì)于這門課程的學(xué)習(xí)有重要的現(xiàn)實(shí)意義,如考研深造、就業(yè)面試,凡是計(jì)算機(jī)專業(yè)領(lǐng)域內(nèi)從事軟件開發(fā)、系統(tǒng)架構(gòu)等多項(xiàng)工作,都離不開對(duì)“C語言程序設(shè)計(jì)”思想的理解和應(yīng)用。文章結(jié)合筆者教學(xué)實(shí)踐,提出基于函數(shù)的課程教學(xué)設(shè)計(jì),探討課程的教學(xué)方法及改進(jìn)。

關(guān)鍵詞:C語言;函數(shù);教學(xué)設(shè)計(jì)

中圖分類號(hào):G642.3? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? 文章編號(hào):1002-4107(2019)08-0068-02

一、引言

函數(shù)是結(jié)構(gòu)化程序設(shè)計(jì)的基本單元。在“C語言程序設(shè)計(jì)”課程中,函數(shù)的概念貫穿了教學(xué)的始終。從第一個(gè)C語言程序開始,包括輸入輸出等,學(xué)生一直在接觸函數(shù)的思想。然而,教材中對(duì)于函數(shù)概念的正式引入比較晚,往往安排在后幾章。筆者在當(dāng)當(dāng)網(wǎng)的書城上查詢“C語言程序設(shè)計(jì)教程”,相關(guān)的書籍有2444本。按好評(píng)度優(yōu)先排序,排除C++、數(shù)據(jù)結(jié)構(gòu)、單片機(jī)、二級(jí)教程等干擾,其中,91.3%都是在講授完程序控制結(jié)構(gòu)后,再介紹函數(shù)及指針的概念。其中包括廣泛使用的譚浩強(qiáng)多版C語言教材,也是采用這樣的順序。導(dǎo)致學(xué)生學(xué)習(xí)了很多語法概念,還無法完整地獨(dú)立編程;沒來得及深刻理解程序設(shè)計(jì)的思想,課程已近尾聲;雖然一直都學(xué)習(xí)和使用函數(shù),卻缺乏對(duì)函數(shù)整體認(rèn)知,遑論建立模塊化的思想;有學(xué)生在main( )函數(shù)中寫出上千行代碼,以致難以跟蹤調(diào)試代碼錯(cuò)誤;甚至有學(xué)生以高分修完課程,仍不會(huì)以多文件結(jié)構(gòu)的形式來編寫程序,不利于日后合作項(xiàng)目的參與。

因此,函數(shù)內(nèi)容不適宜集中滯后講解。本文提出基于函數(shù)的課程教學(xué)設(shè)計(jì):(1)探討函數(shù)的本質(zhì)及作用;(2)調(diào)整函數(shù)部分的講授順序,并根據(jù)學(xué)習(xí)行為理論的指導(dǎo),將函數(shù)內(nèi)容的講授分為三個(gè)階段;(3)針對(duì)函數(shù)部分的知識(shí)點(diǎn),設(shè)計(jì)教學(xué)案例及教學(xué)方法;(4)根據(jù)筆者的教學(xué)經(jīng)驗(yàn),提出幾點(diǎn)教學(xué)過程中的體會(huì)。

二、函數(shù)的本質(zhì)

程序設(shè)計(jì)過程中,隨著現(xiàn)實(shí)問題的復(fù)雜化,解決問題的代碼也會(huì)越來越長。長程序開發(fā)比較困難,不易閱讀和修改,對(duì)于同類型問題重復(fù)寫代碼,增大了工作量。依照結(jié)構(gòu)化程序設(shè)計(jì)思想,處理問題的原則是自頂向下設(shè)計(jì),逐步求精;按功能把程序劃分為多個(gè)相對(duì)簡單的模塊;模塊之間的關(guān)系盡可能簡單,功能上相對(duì)獨(dú)立。這里的模塊就是函數(shù),通常是指抽取并封裝具有獨(dú)立功能的代碼段,形成程序中可以被反復(fù)調(diào)用的獨(dú)立實(shí)體。

函數(shù)是結(jié)構(gòu)化程序設(shè)計(jì)的實(shí)現(xiàn)工具,是C語言源程序的基本單位,也是代碼復(fù)用的重要方法?;凇案邇?nèi)聚,低耦合”的設(shè)計(jì)原則,應(yīng)用程序在開發(fā)過程中通常會(huì)進(jìn)行模塊劃分,在設(shè)計(jì)好模塊間接口的情況下可以將模塊分配給多個(gè)人員實(shí)現(xiàn)。常用的基礎(chǔ)功能模塊可以封裝為函數(shù),集成到相應(yīng)函數(shù)庫,項(xiàng)目成員共享。正確有效地利用函數(shù)能夠使復(fù)雜問題更容易理解,增強(qiáng)代碼的重用性,有利于提升代碼質(zhì)量并提高開發(fā)效率,促進(jìn)了代碼的標(biāo)準(zhǔn)化。

三、教學(xué)設(shè)計(jì)

函數(shù)部分的傳統(tǒng)教學(xué),往往圍繞著函數(shù)概念,函數(shù)定義及調(diào)用,函數(shù)參數(shù)傳遞,函數(shù)返回值等幾方面展開[1],最后再給出應(yīng)用實(shí)例。這種安排,由簡入繁的講解循序漸進(jìn),但如前所述,過多過早灌輸語法概念,學(xué)生對(duì)于算法設(shè)計(jì)和編程思路,缺乏整體認(rèn)知,難窺全貌。因此,調(diào)整函數(shù)的授課順序:學(xué)生初步理解數(shù)據(jù)類型概念并掌握運(yùn)算符用法后,開展函數(shù)部分教學(xué),即把函數(shù)內(nèi)容提前至程序控制結(jié)構(gòu)前講授,之后,再將函數(shù)思想融入后續(xù)章節(jié)中,達(dá)到融會(huì)貫通。這樣,函數(shù)設(shè)計(jì)的思想可以貫穿在教學(xué)整個(gè)過程的始終,也符合學(xué)習(xí)過程的螺旋式結(jié)構(gòu),便于學(xué)生對(duì)知識(shí)的進(jìn)一步理解、應(yīng)用及升華。

美國教育心理學(xué)家布魯納關(guān)于學(xué)習(xí)行為的理論,把學(xué)習(xí)新知識(shí)的行為分為三個(gè)過程,包括知識(shí)的獲取、轉(zhuǎn)換及評(píng)估[2]。據(jù)此,筆者把函數(shù)部分的教學(xué)也分為三個(gè)過程:函數(shù)概念的引入、函數(shù)思想的理解和運(yùn)用、函數(shù)知識(shí)的滲透。

(一)函數(shù)概念的引入

函數(shù)部分,理論性和實(shí)踐性較強(qiáng)。如果一開始就講解語法概念,易降低學(xué)生的求知欲。新知識(shí)的獲取,是對(duì)先驗(yàn)知識(shí)的凝練。學(xué)生接觸到新的知識(shí)范疇,會(huì)按自己經(jīng)驗(yàn),去匹配和對(duì)照,在頭腦里組成有規(guī)律的結(jié)構(gòu)。筆者首先用啟發(fā)法,引導(dǎo)學(xué)生聯(lián)想到熟悉的數(shù)學(xué)函數(shù),如sin( )、cos( )函數(shù),從而引入C語言中的函數(shù)。再用類比法,加以區(qū)別:數(shù)學(xué)函數(shù)強(qiáng)調(diào)自變量x和因變量y之間的映射關(guān)系,而程序中的函數(shù)強(qiáng)調(diào)按功能劃分模塊。此處,就函數(shù)名稱,輸入,輸出,功能獨(dú)立,代碼封裝展開論述,使學(xué)生對(duì)函數(shù)有初步印象。

按照模塊化程序設(shè)計(jì)的思想,具體問題具體分析,幫助學(xué)生樹立函數(shù)設(shè)計(jì)的思想。

1.提出問題。設(shè)計(jì)一個(gè)綜合引例。筆者選用簡易學(xué)生成績管理系統(tǒng)。講解時(shí)盡量避免涉及具體語法,單純從功能劃分的角度來引入。

2.分析問題。按照結(jié)構(gòu)化程序設(shè)計(jì)思想,把大任務(wù)分解成為多個(gè)功能獨(dú)立的小模塊。學(xué)生成績管理系統(tǒng)按照計(jì)算機(jī)處理數(shù)據(jù)的過程可以分為三步:獲取數(shù)據(jù)、數(shù)據(jù)處理、數(shù)據(jù)輸出。在這里,可以借助程序結(jié)構(gòu)圖來厘清思路。初步根據(jù)問題規(guī)模,估計(jì)程序大小,并根據(jù)功能劃分模塊。結(jié)合數(shù)據(jù)的特性,再對(duì)模塊進(jìn)行細(xì)化,完成函數(shù)設(shè)計(jì)。通過引例,學(xué)生初步了解函數(shù)的作用:封裝及代碼重用。

3.解決問題。搭建程序框架,再設(shè)計(jì)算法并優(yōu)化。在該階段,要求學(xué)生模仿函數(shù)框架寫代碼。通過引例,學(xué)生直觀感受模塊化程序設(shè)計(jì)的流程,體會(huì)函數(shù)的重要性,并重新發(fā)現(xiàn)自己的知識(shí)狀況,促進(jìn)、改造現(xiàn)有的知識(shí)結(jié)構(gòu),并且在此基礎(chǔ)上修正和發(fā)現(xiàn)新的學(xué)習(xí),同時(shí)還能增強(qiáng)學(xué)習(xí)的興趣和信心。

(二)函數(shù)思想的理解及運(yùn)用

學(xué)習(xí)知識(shí)的目的不僅是學(xué)習(xí)具體內(nèi)容,而是通過學(xué)習(xí)過程,掌握學(xué)習(xí)方法和技巧,并靈活運(yùn)用新知識(shí)。即學(xué)習(xí)行為的第二過程,知識(shí)的轉(zhuǎn)換和遷移。學(xué)生對(duì)函數(shù)思想的理解和運(yùn)用是按照先驗(yàn)及對(duì)現(xiàn)有知識(shí)的理解,掌握新知識(shí)使之適應(yīng)新任務(wù)的過程。

繼而,通過一些簡單問題,啟發(fā)學(xué)生積極思考。由學(xué)生設(shè)計(jì)函數(shù),逐步導(dǎo)出函數(shù)的名稱、返回值,參數(shù)傳遞,原型等語法基礎(chǔ)知識(shí),如表1。

(三)函數(shù)知識(shí)的滲透

學(xué)習(xí)行為的第三過程,知識(shí)評(píng)估。掌握函數(shù)概念和語法后,核實(shí)所學(xué)函數(shù)知識(shí)能否解決現(xiàn)有問題,還欠缺哪些知識(shí)。對(duì)照引例,在后續(xù)章節(jié)如指針、數(shù)組、文件等內(nèi)容的教學(xué)中,逐步滲透函數(shù)思想和應(yīng)用。使學(xué)生明確函數(shù)與其他部分間的聯(lián)系,并進(jìn)行深入研究和探討。通過教學(xué),學(xué)生了解并接受模塊化程序設(shè)計(jì)流程:根據(jù)實(shí)際應(yīng)用問題,確定程序框架,自頂向下,逐步細(xì)化;能夠綜合運(yùn)用所學(xué)知識(shí),編寫出有實(shí)際應(yīng)用價(jià)值的程序。學(xué)生對(duì)所學(xué)內(nèi)容的結(jié)構(gòu)感越強(qiáng),就能夠高密度長時(shí)間地學(xué)習(xí)而不覺得倦怠。這樣的教學(xué)設(shè)計(jì)不僅能夠提高學(xué)生的積極性,更能有效引導(dǎo)學(xué)生學(xué)習(xí)知識(shí)并掌握學(xué)習(xí)的方法。

學(xué)生學(xué)習(xí)知識(shí),掌握技能的過程不可能一蹴而就,需要日積月累,循序漸進(jìn)。在整個(gè)教學(xué)過程中,教師應(yīng)考慮學(xué)生的認(rèn)識(shí)水平和學(xué)習(xí)基礎(chǔ),激發(fā)學(xué)生的認(rèn)知行為和潛能,引導(dǎo)學(xué)生積極思考,發(fā)散思維。

四、教學(xué)實(shí)踐中的幾點(diǎn)體會(huì)

1.適當(dāng)使用程序結(jié)構(gòu)圖,有助于學(xué)生理解程序的結(jié)構(gòu)。程序結(jié)構(gòu)圖PSD(Program Structure Diagram),是描述程序結(jié)構(gòu)的圖示,一般由構(gòu)成程序的要素和表達(dá)各要素之間關(guān)系的連線或方向箭頭構(gòu)成[3]。傳統(tǒng)程序流程圖動(dòng)態(tài)反映一個(gè)模塊內(nèi)部程序的執(zhí)行順序和具體實(shí)現(xiàn)細(xì)節(jié),PSD則能靜態(tài)地體現(xiàn)程序的整體思路,彌補(bǔ)了前者程序結(jié)構(gòu)不清晰的不足,更好體現(xiàn)模塊化思想,模塊間調(diào)用關(guān)系。

2.充分利用 Debug分析跟蹤技術(shù),有助于學(xué)生深入觀察變量的存儲(chǔ),程序的流程控制,數(shù)組及函數(shù)的調(diào)用及指針的指向。學(xué)生學(xué)會(huì)使用調(diào)試工具后,就能通過單步運(yùn)行、跟蹤和跳出;設(shè)置斷點(diǎn)、增加監(jiān)視、查看變量及表達(dá)式的值等有效手段逐步發(fā)現(xiàn)程序中的邏輯錯(cuò)誤和運(yùn)行錯(cuò)誤,獨(dú)立分析和解決問題,增強(qiáng)了調(diào)試程序的信心及編程的興趣。

3.課程考核,不僅僅片面考查學(xué)生知識(shí)點(diǎn)的掌握,還需考核學(xué)生理解并綜合運(yùn)用程序設(shè)計(jì)思想,獨(dú)立、創(chuàng)新解決問題的能力。筆者所在教學(xué)課組,采用了“平時(shí)成績+實(shí)驗(yàn)技能+創(chuàng)新思維+期末機(jī)試”的多元化考核方式。在機(jī)試考核中,摒棄了學(xué)生強(qiáng)識(shí)硬記就能得分的客觀題,全部采用編程題來測試,大大改善了教與學(xué),學(xué)生的編程能力及計(jì)算思維能力有顯著提高。

總之,筆者結(jié)合“C語言程序設(shè)計(jì)”課程教學(xué)中的經(jīng)驗(yàn),以學(xué)習(xí)行為理論為指導(dǎo),提出了基于函數(shù)的教學(xué)設(shè)計(jì),并探討了教學(xué)方法的改進(jìn)。實(shí)踐證明,本文給出的教學(xué)設(shè)計(jì)和教學(xué)改革是可行的,對(duì)于提高學(xué)生的理論認(rèn)知、培養(yǎng)學(xué)生的創(chuàng)新意識(shí)和編程實(shí)踐能力,具有十分深遠(yuǎn)的意義。

參考文獻(xiàn):

[1]朱安平.一種C語言函數(shù)教學(xué)的設(shè)計(jì)與實(shí)踐[J].計(jì)算機(jī)工程與科學(xué),2014,(S1).

[2] [美]杰羅姆·布魯納.布魯納教育文化觀[M].宋文里,黃小鵬,譯.北京:首都師范大學(xué)出版社,2011:54-57.

[3]徐漫江,姚放吾.一種基于程序結(jié)構(gòu)圖的入侵檢測方法研究[J].雷達(dá)與對(duì)抗,2008,(2).

猜你喜歡
C語言程序設(shè)計(jì)C語言教學(xué)設(shè)計(jì)
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
基于C語言的計(jì)算機(jī)軟件編程
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
高中數(shù)學(xué)一元二次含參不等式的解法探討
“仿真物理實(shí)驗(yàn)室” 在微課制作中的應(yīng)用
翻轉(zhuǎn)課堂在高職公共英語教學(xué)中的應(yīng)用現(xiàn)狀分析及改善建議
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用