摘要:應(yīng)用性本科是國(guó)家高等教育的一個(gè)新生事物,具有鮮明的技術(shù)應(yīng)用特征。C語(yǔ)言對(duì)于我校應(yīng)用性本科水保專業(yè)非計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)起來(lái)具有一定的難度,而循環(huán)結(jié)構(gòu)又是三大基本結(jié)構(gòu)中最重要、最復(fù)雜、最廣泛的一種結(jié)構(gòu)。該文從C語(yǔ)言的課程性質(zhì)入手,介紹了循環(huán)結(jié)構(gòu)的重要作用,分析了教學(xué)對(duì)象及傳統(tǒng)教學(xué)存在的問題,創(chuàng)新了教學(xué)模式,以For循環(huán)結(jié)構(gòu)教學(xué)為例,采用“七步法”組織教學(xué),開展C語(yǔ)言循環(huán)結(jié)構(gòu)教學(xué)實(shí)踐。
關(guān)鍵詞:循環(huán)結(jié)構(gòu);單元設(shè)計(jì);C語(yǔ)言
中圖分類號(hào):G642? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? 文章編號(hào):1009-3044(2018)36-0122-02
1 概述
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)》課程是江西環(huán)境工程職業(yè)學(xué)院應(yīng)用性本科水土保持專業(yè)開設(shè)的必修課之一,也是當(dāng)代大學(xué)生應(yīng)用性人才所需掌握的內(nèi)容之一。C語(yǔ)言課程實(shí)踐操作性極強(qiáng),既要了解相關(guān)概念,又要真正動(dòng)手編程。該課程的開設(shè)旨在培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng)、敏捷的邏輯思維能力以及互助的團(tuán)隊(duì)合作能力。同時(shí),這門課程也是“全國(guó)計(jì)算機(jī)等級(jí)考試”二級(jí)考試的主要語(yǔ)種之一,通過課程的開設(shè)使該專業(yè)大部分學(xué)生能夠順序通過“全國(guó)計(jì)算機(jī)等級(jí)考試”二級(jí)(C語(yǔ)言)考試。
C語(yǔ)言是一種面向過程的結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,而循環(huán)結(jié)構(gòu)是三大基本結(jié)構(gòu)(順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu))中最重要、最復(fù)雜、最廣泛的一種結(jié)構(gòu)。學(xué)好循環(huán)結(jié)構(gòu)是學(xué)好C語(yǔ)言課程的關(guān)鍵,它是學(xué)好數(shù)組、指針、函數(shù)等內(nèi)容的基礎(chǔ)和前提。在日常工作和生活中通過循環(huán)結(jié)構(gòu)的應(yīng)用可以很方便地解決許多問題。例如,求全班學(xué)生課程的總成績(jī)和平均成績(jī);求任意兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù);九九乘法表的打印輸出等。本文將結(jié)合作者多年教授程序設(shè)計(jì)語(yǔ)言的教學(xué)實(shí)踐經(jīng)驗(yàn),從課程背景、教學(xué)對(duì)象與教學(xué)現(xiàn)狀分析、教學(xué)組織實(shí)施實(shí)踐等幾個(gè)方面來(lái)對(duì)循環(huán)結(jié)構(gòu)教學(xué)實(shí)踐進(jìn)行探討。
2 應(yīng)用性本科水保專業(yè)教學(xué)對(duì)象與教學(xué)現(xiàn)狀分析
2.1 教學(xué)對(duì)象分析
我院水保本科班是與南昌工程學(xué)院聯(lián)辦的應(yīng)用技術(shù)型本科班,這些學(xué)生具有鮮明的技術(shù)應(yīng)用的特征,他們的培養(yǎng)目標(biāo)與高職生和普通本科生完全不一樣。這些學(xué)生主要是以應(yīng)用型本科教育培養(yǎng)的本科應(yīng)用型人才,不是學(xué)科理論知識(shí)的學(xué)習(xí),更加注重的是動(dòng)手能力和創(chuàng)新能力的培養(yǎng)。普通本科生培養(yǎng)的是從事科學(xué)研究和學(xué)術(shù)研究的研究生人才,教學(xué)過程中注重理論知識(shí)的傳授,更多的側(cè)重系統(tǒng)理論基礎(chǔ)的學(xué)習(xí),培養(yǎng)學(xué)生的理論創(chuàng)新能力。而應(yīng)用型本科生培養(yǎng)的是高科技行業(yè)以及技術(shù)密集產(chǎn)業(yè)等高級(jí)應(yīng)用型人才,教學(xué)過程中理論與實(shí)踐并重,培養(yǎng)學(xué)生實(shí)踐創(chuàng)新能力。這些學(xué)生大部分入校時(shí)高考成績(jī)比普通本科生成績(jī)要低,學(xué)習(xí)基礎(chǔ)要差一些,所以在授課過程中接受能力比普通本科生要弱,講得太快,學(xué)生跟不上進(jìn)度,講得不深,學(xué)生聽不懂。
2.2 傳統(tǒng)教學(xué)存在的問題剖析
“C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)”課程大部分高校在開設(shè)時(shí)采取兩節(jié)理論教學(xué)和兩節(jié)實(shí)驗(yàn)教學(xué)的模式,理論教學(xué)多安排在多媒體教學(xué)上課,實(shí)驗(yàn)教學(xué)安排在機(jī)房練習(xí)。有時(shí)上完理論課后,上機(jī)課隔好幾天才上,這兩個(gè)教學(xué)環(huán)節(jié)脫節(jié),由于許多學(xué)生不會(huì)及時(shí)去復(fù)習(xí)上課內(nèi)容,從而導(dǎo)致學(xué)生在上機(jī)過程中經(jīng)常發(fā)現(xiàn)上過的東西都不會(huì)做。C語(yǔ)言傳統(tǒng)教學(xué)方法單一,教學(xué)方面其一,采取講授為主,在循環(huán)結(jié)構(gòu)內(nèi)容講授過程中的一般步驟是先分析如FOR循環(huán)的語(yǔ)法格式,然后再重點(diǎn)講解FOR循環(huán)的語(yǔ)法規(guī)則,最后通過一個(gè)小例子來(lái)理解FOR循環(huán)。這種授課方式,上面環(huán)節(jié)內(nèi)容相對(duì)枯燥,容易使得學(xué)生產(chǎn)生厭學(xué)心理,而對(duì)于應(yīng)用型本科學(xué)生來(lái)說(shuō),他們的專業(yè)基礎(chǔ)知識(shí)不強(qiáng),學(xué)習(xí)的主動(dòng)性有待加強(qiáng),學(xué)習(xí)效果不是很理想。其次這種以教師為主體的灌輸式教學(xué)模式,使得學(xué)生能動(dòng)性較差,容易出現(xiàn)上課睡覺現(xiàn)象,學(xué)生上課時(shí)對(duì)上課內(nèi)容缺乏思考,上完課后對(duì)于編程應(yīng)用還是無(wú)從下手。傳統(tǒng)教學(xué)方式忽視學(xué)生應(yīng)用能力及創(chuàng)新能力的培養(yǎng),與應(yīng)用型本科人才培養(yǎng)要求不符合。
3 教學(xué)組織實(shí)施實(shí)踐
C語(yǔ)言課程對(duì)于非計(jì)算機(jī)專業(yè)學(xué)生來(lái)說(shuō)學(xué)起來(lái)比較吃力,三大基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是整個(gè)課程的一個(gè)重點(diǎn),而循環(huán)結(jié)構(gòu)相對(duì)其他結(jié)構(gòu)而言較為抽象,學(xué)生學(xué)習(xí)起來(lái)比較困難,怎么才能破解這個(gè)難題,讓學(xué)生學(xué)習(xí)“循環(huán)”內(nèi)容從抽象變成形象呢,為此作者在教學(xué)過程創(chuàng)新教學(xué)模式,是以項(xiàng)目為載體,圍繞一個(gè)個(gè)獨(dú)立的項(xiàng)目實(shí)施過程開展教學(xué)單元設(shè)計(jì),遵循“由簡(jiǎn)到繁、由易到難、由學(xué)到用、循序漸進(jìn)、逐步提高”的原則,從七個(gè)方面組織教學(xué),具體如下:(1)新課導(dǎo)入與項(xiàng)目展示;(2)項(xiàng)目任務(wù)描述;(3)任務(wù)分析;(4)任務(wù)實(shí)施;(5)相關(guān)知識(shí)點(diǎn);(6)技能拓展;(7)指導(dǎo)與評(píng)價(jià)[3]。
3.1 新課導(dǎo)入與項(xiàng)目展示
運(yùn)行該項(xiàng)目源程序,為學(xué)生演示本章項(xiàng)目各個(gè)任務(wù)的實(shí)現(xiàn)效果。
(1) 新課導(dǎo)入
首先導(dǎo)入新課問題:我們都清楚,在C語(yǔ)言中,每門課的成績(jī)錄入,一個(gè)人成績(jī)錄入簡(jiǎn)單,一個(gè)班的成績(jī)錄入怎么辦?數(shù)學(xué)圖形有很多種,如三角形、矩形、菱形,如果要輸出一個(gè)菱形怎么辦?其實(shí)要解決這些現(xiàn)實(shí)問題有比較簡(jiǎn)便的方法就要通過我們今天即將要講得內(nèi)容:循環(huán)結(jié)構(gòu),通過循環(huán)結(jié)構(gòu)可以比較容易解決上面的問題,實(shí)現(xiàn)一個(gè)班的成績(jī)錄入和菱形等圖形的輸出。
(2) 項(xiàng)目展示
3.2 項(xiàng)目任務(wù)描述
項(xiàng)目1 打印幾何圖形——菱形
本項(xiàng)目中,通過設(shè)計(jì)一個(gè)算法輸出一個(gè)幾何圖形,圖形的形狀為菱形。具體輸出圖形如圖2所示:
3.3 項(xiàng)目任務(wù)分析
該圖案是一個(gè)菱形,共有9行,每行由空格和星號(hào)“*”換行符組成,第1行至第5行的空格呈遞減趨勢(shì),而星號(hào)“*”呈增加趨勢(shì),第6至第9行的空格呈增加趨勢(shì),而星號(hào)“*”呈減少趨勢(shì)。圖案輸出時(shí)可以用“For循環(huán)”來(lái)控制輸出,此項(xiàng)目中要用到嵌套的For循環(huán),外循環(huán)控制圖形行的輸出,兩個(gè)內(nèi)循環(huán)分別用來(lái)控制空格和星號(hào)“*”的輸出。
3.4 項(xiàng)目任務(wù)實(shí)施
本項(xiàng)目中,根據(jù)項(xiàng)目描述及任務(wù)分析進(jìn)行詳細(xì)的代碼設(shè)計(jì)。首先打開C-Free集成開發(fā)平臺(tái)進(jìn)行本項(xiàng)目的程序代碼設(shè)計(jì),點(diǎn)擊“工程”菜單的“新建”菜單項(xiàng),輸入項(xiàng)目的工程名稱為“ex4_1.cfpg”,然后再點(diǎn)擊“文件”菜單的“新建”菜單項(xiàng),新建一個(gè)名稱為“ex4_1.c”的C語(yǔ)言源文件,將打印圖案的算法代碼錄入完畢,最后在C-Free平臺(tái)上調(diào)試運(yùn)行,輸出結(jié)果。
1) 主要代碼如下:
void main()
{
int m,n ;
for(m=1;m<=5; m++) {? ? ?//1至5行數(shù)據(jù)輸出
for(n=1;n<=5-m; n++)
printf(“”); //輸出圖形的空格數(shù):5-m個(gè)
for(n=1;n<=2*m-1; n++)
printf(“*”); //輸出圖形的星號(hào)數(shù):2m-1個(gè)
printf(“\n'”); //換行輸出
}
for( ;m<=9; m++) {? ? ? //6至9行數(shù)據(jù)輸出
for(n=1;n<=m-5; n++)
printf(“”);? ?//輸出圖形的空格數(shù):m-5
for(n=1;n<=2*(9-m)+1; n++)
printf(“*”);? ?//輸出圖形的星號(hào)數(shù):2(9-m)+1個(gè)
printf(“\n'”);? //換行輸出
}
}
2) 程序設(shè)計(jì)思考
(1) 此實(shí)例中使用函數(shù)printf()來(lái)實(shí)現(xiàn)星號(hào)和空格符的輸出時(shí),如果使用putchar(),括號(hào)內(nèi)的參數(shù)是什么引號(hào)呢,是“”還是‘?
(2) 為什么程序中第二個(gè)for循環(huán)語(yǔ)句的第一個(gè)表達(dá)式是空的?
3.5 相關(guān)知識(shí)點(diǎn)
1. For 語(yǔ)句
(一)for語(yǔ)句的格式
for (變量初始化;表達(dá)式2;表達(dá)式3){
循環(huán)體主體;
}
(二)for語(yǔ)句的使用說(shuō)明
for語(yǔ)句中三個(gè)表達(dá)式可以為空,但分號(hào)符一定要有,如果表達(dá)式2為空,那么就假定該循環(huán)條件為真。for語(yǔ)句中變量初始化工作在程序開始時(shí)完成,只運(yùn)行一次,表達(dá)式2用于判定循環(huán)是否繼續(xù)執(zhí)行,若為真,則執(zhí)行循環(huán)體主體語(yǔ)句,然后再更新表達(dá)式3,進(jìn)行下一次條件表達(dá)式2的判斷,若條件表達(dá)式為假,則整個(gè)循環(huán)結(jié)束。
(三)for語(yǔ)句的注意事項(xiàng)
(1) 設(shè)置一個(gè)循環(huán)控制變量來(lái)實(shí)現(xiàn)遞減或遞增1;(2)for語(yǔ)句圓括號(hào)內(nèi)的3個(gè)表達(dá)式是可選的,都可以省略,但分號(hào)一定要保留。如果省略了條件表達(dá)式,那么默認(rèn)為真;(3)可在一個(gè)for循環(huán)語(yǔ)句中提供用逗號(hào)分隔的表達(dá)式3和表達(dá)式1,但表達(dá)式2只能有一個(gè);(4)for語(yǔ)句變量初始化部分聲明的變量,其作用域只局限于for語(yǔ)句內(nèi)部。
3.6 技能拓展
(一)break語(yǔ)句
(1) 語(yǔ)法格式
break;
(2) break語(yǔ)句的作用
在while、for、 do-whiler或switch結(jié)構(gòu)中執(zhí)行break語(yǔ)句時(shí),break語(yǔ)句會(huì)造成程序從該結(jié)構(gòu)中退出,程序接著執(zhí)行該結(jié)構(gòu)之后的第一條語(yǔ)句。
(3) 注意事項(xiàng)
執(zhí)行break語(yǔ)句后,for語(yǔ)句的表達(dá)式不被執(zhí)行。
(二)技能拓展訓(xùn)練
項(xiàng)目2? 打印輸出1~100之間的全部素?cái)?shù)
3.7 指導(dǎo)與評(píng)價(jià)
按小組進(jìn)行分組訓(xùn)練,小組同學(xué)相互交流,并對(duì)各小組學(xué)生的任務(wù)實(shí)施過程進(jìn)行全程跟蹤指導(dǎo),并對(duì)其出現(xiàn)的問題進(jìn)行總結(jié)和評(píng)價(jià),指出各組學(xué)生在程序編碼過程中存在的某些共性問題。例如,程序源文件命名不規(guī)范、程序編寫格式不規(guī)范、死循環(huán)、無(wú)注釋或注釋不清晰等問題。
4 結(jié)束語(yǔ)
在C語(yǔ)言程序設(shè)計(jì)課程的教學(xué)過程中,循環(huán)結(jié)構(gòu)是整個(gè)課程教學(xué)的重點(diǎn)和難點(diǎn),是學(xué)好C語(yǔ)言的關(guān)鍵要素,如果沒有學(xué)好它,數(shù)組、函數(shù)和指針的學(xué)習(xí)就難上加難。因此,在教學(xué)過程中,教師要不斷創(chuàng)新教學(xué)模式和教學(xué)方法,優(yōu)化C語(yǔ)言循環(huán)結(jié)構(gòu)教學(xué)單元設(shè)計(jì),讓學(xué)生在快樂中學(xué)習(xí),提升學(xué)生對(duì)循環(huán)結(jié)構(gòu)內(nèi)容的掌握能力,達(dá)到舉一反三的程度。另外,在教學(xué)過程中注重學(xué)生程序設(shè)計(jì)思想的培養(yǎng),針對(duì)不同的教學(xué)內(nèi)容,選擇恰當(dāng)?shù)慕虒W(xué)方法,幫助學(xué)生更好地去化解學(xué)習(xí)中的疑點(diǎn),注重從計(jì)算思維上對(duì)學(xué)生進(jìn)行啟發(fā)訓(xùn)練,發(fā)現(xiàn)和總結(jié)問題求解的規(guī)律,設(shè)計(jì)正確有效的求解算法[2]。加強(qiáng)教學(xué)過程中編程實(shí)踐操作,采用分小組方式加強(qiáng)組員之間的溝通和交流,提高學(xué)生學(xué)習(xí)的積極性,引導(dǎo)學(xué)生自主學(xué)習(xí)。
參考文獻(xiàn):
[1] 宋建萍. C語(yǔ)言教學(xué)中循環(huán)結(jié)構(gòu)的教學(xué)法探討[J].科技視界,2016(6):52-53.
[2] 敖勇平.基于崗位核心能力的“Java面向?qū)ο蟪绦蛟O(shè)計(jì)”課程設(shè)計(jì)與實(shí)踐[J].電腦知識(shí)與技術(shù),2016,12(34):131-132.
[3] 唐紅杰. C語(yǔ)言教學(xué)中循環(huán)結(jié)構(gòu)教學(xué)探討[J].軟件工程師,2014(10):49-50.
[通聯(lián)編輯:王力]