徐濟(jì)惠 顏晨陽
摘 要 C語言是高職計(jì)算機(jī)類專業(yè)的一門重要的專業(yè)基礎(chǔ)課程,課程學(xué)習(xí)的好壞,對后續(xù)課程的學(xué)習(xí)起到位至關(guān)重要的作用?;诙嗄杲虒W(xué)經(jīng)驗(yàn),提出了“教學(xué)中思考、思考中教學(xué)”的C語言程序設(shè)計(jì)課程教學(xué)方法,目的是讓學(xué)生能夠“學(xué)得會,有興趣的學(xué)、并且學(xué)有所成”。
關(guān)鍵詞 教學(xué)方法 C語言 計(jì)算機(jī)課程 高職教學(xué)
中圖分類號:G424 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A ? ?DOI:10.16400/j.cnki.kjdkx.2020.09.049
Abstract C language is an important professional basic course for computer majors in higher vocational colleges. The quality of course learning plays an important role in the follow-up course learning. Based on many years of teaching experience, this paper puts forward the teaching method of "thinking in teaching and teaching in thinking" in C language programming course. The purpose is to enable students to "learn well, learn with interest, and achieve what they have learned".
Keywords teaching methods; C language; computer course; higher vocational teaching
1 簡介
C語言是一門面向過程的計(jì)算機(jī)語言,囊括了程序設(shè)計(jì)的基本概念,是計(jì)算機(jī)類專業(yè)的一門重要的專業(yè)基礎(chǔ)課程,其目的是培養(yǎng)學(xué)生的程序設(shè)計(jì)理念,掌握程序設(shè)計(jì)的基本方法,為后繼課程(數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蟪绦蛟O(shè)計(jì)、操作系統(tǒng)、編譯原理和軟件工程等)打下堅(jiān)實(shí)的基礎(chǔ)。C語言對一般初學(xué)者來說,規(guī)則較多,使用太靈活,不易掌握,學(xué)習(xí)會有一定的困難。因此,單純地講一些語法、規(guī)則,就顯得比較抽象、枯燥、難學(xué),讓學(xué)生望而生畏。在現(xiàn)在的各大高校計(jì)算機(jī)類專業(yè)中,一般情況下,它是大一新生接觸到的第一門專業(yè)課,因此本課程的教學(xué)效果好比一把雙刃劍,學(xué)得好,能鍛煉學(xué)生的邏輯思維能力,培養(yǎng)學(xué)生的學(xué)習(xí)興趣,為后續(xù)課程打下扎實(shí)的基礎(chǔ)。學(xué)得不好,將影響后續(xù)課程的學(xué)習(xí),更會使學(xué)生對未來的學(xué)習(xí)喪失信心,自暴自棄。因此,作為專任老師,在教學(xué)中應(yīng)該學(xué)會思考,如何上好C語言這門課程,讓學(xué)生能夠“學(xué)得會,有興趣的學(xué)、并且學(xué)有所成”。通過思考,將一些好的教學(xué)方法和手段應(yīng)用于教學(xué),最終達(dá)到我們的教學(xué)目標(biāo)。
2 教學(xué)內(nèi)容
“C語言程序設(shè)計(jì)”課程的主要目的是使學(xué)生能夠初步掌握計(jì)算機(jī)程序設(shè)計(jì)的基本思想和方法,培養(yǎng)學(xué)生分析和解決問題的能力,提高學(xué)生的學(xué)習(xí)和編程興趣,為后續(xù)課程的學(xué)習(xí)打下扎實(shí)的基礎(chǔ)。所以在課程內(nèi)容的設(shè)計(jì)上,不應(yīng)過分注重于語法知識(抽象),而應(yīng)重點(diǎn)強(qiáng)調(diào)程序設(shè)計(jì)的基本方法。因此,在教學(xué)內(nèi)容的選取上,采用“有所取、有所不取”的策略,對于那些與程序設(shè)計(jì)方法關(guān)系不大,也不常用的部分,根本不選取;對哪些不太重要的,在遇到程序舉例時簡單介紹;對哪些常用的語法成份,則穿插在程序設(shè)計(jì)中詳細(xì)介紹。另外,“C語言程序設(shè)計(jì)”課程的重點(diǎn)是訓(xùn)練學(xué)生的邏輯思維能力,其中掌握常用的算法是關(guān)鍵,如:計(jì)數(shù)、累加、累乘、排序、分類等。為學(xué)生以后編寫程序、軟件設(shè)計(jì)打下基礎(chǔ)。同時典型算法的學(xué)習(xí)掌握,也可以增強(qiáng)學(xué)生的信心和學(xué)習(xí)的興趣。因此在課程的教學(xué)中,就應(yīng)想辦法讓學(xué)生將這些算法必須全部掌握,讓學(xué)生感到學(xué)有所成。
3 教學(xué)方法
3.1 運(yùn)用實(shí)例,變抽象為具體
在C語言的教學(xué)中,一開始就要學(xué)習(xí)基本數(shù)據(jù)類型及運(yùn)算符,格式化輸入函數(shù)scanf()和格式化輸出函數(shù)printf(),如果單一地介紹數(shù)據(jù)分為整型、實(shí)型、字符型,對應(yīng)的格式為%d、%f、%c等,學(xué)生就會感到枯燥乏味。如果這時我們能夠選擇一些實(shí)際的例題,提出通過我們學(xué)習(xí),利用相應(yīng)的數(shù)據(jù)類型,就可以編程,如:要求學(xué)習(xí)者給幼兒生成一道加法題“25+67=”,可用下面4種方法實(shí)現(xiàn)(圖1)。
通過類似于這四種方法的變化,使學(xué)生在學(xué)習(xí)%d、%f等格式符和格式化輸入函數(shù)scanf()、格式化輸出函數(shù)printf()的時候,做到不抽象,而變得生動起來。
3.2 層層遞進(jìn),激發(fā)學(xué)習(xí)興趣
C語言中,在語句結(jié)構(gòu)的學(xué)習(xí)中,就會講到條件語句if,循環(huán)語句等,這時我們可以繼續(xù)引用前面的例子,進(jìn)行進(jìn)一步的深化。這樣可以做到環(huán)環(huán)緊扣、層層遞進(jìn),相互聯(lián)系。前面出的題,在幼兒在答題時,不知道題是否答對,現(xiàn)在利用if語句,就可以生成一道題,具有及時告知幼兒答題情況的功能:
if (x+y==z) printf(“恭喜你答對了!”);
else printf(“不對,請繼續(xù)努力,加油!”);
這樣我們每次只能出1道題,如果需要學(xué)生一次性生成10道加法題,如何解決?這樣我們可以進(jìn)一步提出循環(huán)的概念,利用循環(huán)解決問題。讓學(xué)習(xí)者感到有一定的成就感,引發(fā)學(xué)習(xí)者對編寫程序?qū)W習(xí)的興趣。
3.3 探究性學(xué)習(xí),提高教學(xué)質(zhì)量
在學(xué)生有了一定的興趣后,我們可以向?qū)W習(xí)者提出更高的要求。通過對知識的擴(kuò)展,讓學(xué)生感覺到只要通過努力,進(jìn)行一定的深入思考,可以達(dá)到更高的水平。針對上面例題,我們提出是否可以讓計(jì)算機(jī)自動生成2位數(shù)加數(shù)和被加數(shù),這時我們提出隨機(jī)數(shù)rand()的產(chǎn)生,并且可以統(tǒng)計(jì)出答題對錯情況。在這個基礎(chǔ)上我們教師可以進(jìn)一步思考,可以繼續(xù)提出一些問題,完成讓小學(xué)生進(jìn)行“加、減、乘、除”運(yùn)算,以菜單的顯示方式供學(xué)生進(jìn)行選擇(圖2)。這樣看似提高了難度,實(shí)際上就是在原來的基礎(chǔ)上,將加法程序相似地改成“減、乘、除”,同時可以介紹swith()語句的功能和使用。讓學(xué)生感覺到以前做不到的,通過學(xué)習(xí)現(xiàn)在做到了,有了一定的成就感,更加激發(fā)了他們的學(xué)習(xí)興趣。同時也讓他們堅(jiān)定一定的信念,只要通過有效的學(xué)習(xí),他們也可以編寫出有效的代碼程序。
3.4 融入課程思政,提升學(xué)生素質(zhì)
在程序設(shè)計(jì)的教學(xué)過程中,我們不僅要教會學(xué)生編程的方法和技巧,而且更應(yīng)該通過課程的教學(xué),教會學(xué)生踏實(shí)的工作作風(fēng),提升分析問題的能力以及團(tuán)隊(duì)合作的精神等方面的內(nèi)容。首先是樹立踏實(shí)細(xì)致的工作作風(fēng)。編寫程序,我們必須有編譯、調(diào)試改錯的環(huán)節(jié),這時,我們就應(yīng)該教導(dǎo)學(xué)生養(yǎng)成“獨(dú)立、細(xì)致、耐心”的工作作風(fēng),只有這樣才能達(dá)到成功的彼岸。其次是提升分析問題的能力。通過具體實(shí)例,教導(dǎo)學(xué)生“處理任何復(fù)雜的問題,應(yīng)做到先分析、再處理,將復(fù)雜問題分步處理”。提高學(xué)生的邏輯思維能力和今后處理工作問題的能力。最后是培養(yǎng)學(xué)生團(tuán)隊(duì)合作的精神。在教學(xué)的過程中,灌輸學(xué)生團(tuán)隊(duì)合作的重要性,對于一個大型的軟件,現(xiàn)有的軟件公司都是組成一個團(tuán)隊(duì)進(jìn)行分工合作、共同開發(fā),需要進(jìn)行相互的溝通、配合才能完成最終軟件開發(fā)。因此我們在平時的教學(xué)中也應(yīng)該有意識的安排一些合作完成的項(xiàng)目,培養(yǎng)學(xué)生的團(tuán)隊(duì)精神。
4 結(jié)論
這樣,我們通過一道小學(xué)生的加法題入手,通過精心的設(shè)計(jì),由淺入深,層層推進(jìn),貫穿始終,讓學(xué)生在不知不覺中學(xué)到了相關(guān)的知識點(diǎn),同時提高了編程的興趣和能力,讓學(xué)生感覺到編程既不神秘也不是太難,同時也激發(fā)他們要進(jìn)一步學(xué)習(xí)和深入研究的動力。同時在教學(xué)中進(jìn)行適當(dāng)?shù)耐卣购脱由?,培養(yǎng)學(xué)生今后進(jìn)入工作崗位所需要的職業(yè)素質(zhì)。這就需要我們教師在教學(xué)過程中必須不斷探討適合學(xué)生的教學(xué)方法和手段,激發(fā)學(xué)生的學(xué)習(xí)興趣,更新教學(xué)理念,精心研課磨課,努力提高課程的教學(xué)質(zhì)量。真正做到“教學(xué)中思考、思考中教學(xué)”。
參考文獻(xiàn)
[1] 孫雪巖.C++程序設(shè)計(jì)基礎(chǔ)教學(xué)方法改革研究探索[J].新教育時代電子雜志(教師版),2018 (022):237.
[2] 彭穎,梁俊斌.以CDIO教育理念為引導(dǎo)的程序設(shè)計(jì)基礎(chǔ)教學(xué)改革研究[J].大學(xué)教育,2016(1):27-28.
[3] 楊梅,王楊.以計(jì)算思維為導(dǎo)向的程序設(shè)計(jì)基礎(chǔ)課程教學(xué)研究[J].計(jì)算機(jī)教育,2015(16):98-101.
[4] 馬曉娟.校企合作下的《程序設(shè)計(jì)基礎(chǔ)》教學(xué)模式研究[J].軟件導(dǎo)刊.教育技術(shù),2014(7):13-14.
[5] 鐘娟,章曙光,程遠(yuǎn),等.程序設(shè)計(jì)基礎(chǔ)課程多元化教學(xué)體系的研究[J].電腦知識與技術(shù),2018.014(022):92-94.