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