前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c程序設(shè)計(jì)語言主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞:c++;多媒體教學(xué);教育改革
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
一、引言
基于Visual c++6.0可視化開發(fā)平臺(tái)的c++程序設(shè)計(jì)語言,以其強(qiáng)大的開發(fā)功能受到IT業(yè)界的一致認(rèn)同,是眾多理工科院校開設(shè)的計(jì)算機(jī)基礎(chǔ)必修課。該課程具有很強(qiáng)的可操作性,其實(shí)踐教學(xué)是培養(yǎng)學(xué)生編程能力的重要手段。筆者在擔(dān)任該課程的多年實(shí)踐教學(xué)中發(fā)現(xiàn),在現(xiàn)在多媒體教學(xué)方式下,機(jī)械的教學(xué)雖然可以節(jié)省時(shí)間、增加教學(xué)信息量,但是缺乏傳統(tǒng)教學(xué)中可以采用的靈活機(jī)動(dòng)的授課策略。因此,出現(xiàn)了學(xué)生普遍學(xué)習(xí)成績無法提高、厭學(xué)的情況,針對(duì)這些情況,筆者不斷分析教學(xué)中存在的問題,并提出了相應(yīng)的改革措施,改進(jìn)教學(xué)方法。通過長期實(shí)踐和總結(jié),形成了較系統(tǒng)的適用于該課程特點(diǎn)的教學(xué)方法,在教學(xué)工作中取得了較好的效果。
二、教學(xué)中的問題
(一)內(nèi)容多,課時(shí)少;上機(jī)實(shí)驗(yàn)學(xué)生多,指導(dǎo)老師少
在我校,c++程序設(shè)計(jì)語言一直以來是作為非計(jì)算機(jī)專業(yè)一年級(jí)新生學(xué)習(xí)計(jì)算機(jī)語言最普遍的一門計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語言。新生從中學(xué)來到大學(xué)普遍沒有接觸過計(jì)算機(jī)高級(jí)語言更沒有系統(tǒng)的接受過計(jì)算機(jī)方面的實(shí)踐學(xué)習(xí)。由于c++課程本身邏輯性強(qiáng)、概念多、結(jié)構(gòu)復(fù)雜等特點(diǎn),導(dǎo)致學(xué)生學(xué)習(xí)興趣下降,進(jìn)而反映出學(xué)生最終難以學(xué)好該門課程。
學(xué)生普遍感覺C++語言難學(xué),一個(gè)很大的原因是教學(xué)內(nèi)容多而課時(shí)少。C++程序設(shè)計(jì)語言從知識(shí)體系來說主要分為兩部分,一為結(jié)構(gòu)化編程概念,一為類編程概念。每個(gè)章節(jié)的新概念多,知識(shí)點(diǎn)多。另一方面,程序設(shè)計(jì)語言的學(xué)習(xí)必須要實(shí)踐,總課時(shí)的減少導(dǎo)致實(shí)驗(yàn)時(shí)數(shù)減少。同時(shí),在實(shí)驗(yàn)過程中,每個(gè)主講教師要面對(duì)整個(gè)教學(xué)班級(jí)的幾十個(gè)學(xué)生,必然在上課中無法顧及所有學(xué)生。
由于課程內(nèi)容龐大而課時(shí)有限,為了讓學(xué)生對(duì)該課程有全面的了解,教師必須充分利用有限的課時(shí)完成必要的知識(shí)的講授。
(二)學(xué)生學(xué)習(xí)興趣不濃、學(xué)習(xí)態(tài)度不端正
學(xué)生在學(xué)習(xí)過程中,會(huì)遇到很多抽象的概念和理論,這些概念和理論較難被學(xué)生及時(shí)的吸收消化,從而影響后續(xù)的學(xué)習(xí),惡性循環(huán)后,產(chǎn)生的唯一結(jié)果就是學(xué)生的學(xué)習(xí)積極主動(dòng)性消失,學(xué)習(xí)興趣就下降,最終的結(jié)果就是教學(xué)效果始終無法提高。
另一方面,學(xué)生普遍對(duì)c++程序設(shè)計(jì)語言的學(xué)習(xí)抱有不認(rèn)同感。大部分同學(xué)不明白自己明明不是計(jì)算機(jī)專業(yè)的學(xué)生,為何要學(xué)一門計(jì)算機(jī)編程語言。因此,學(xué)習(xí)態(tài)度、積極性普遍不高。
(三)重書本,輕實(shí)踐
所有的課程學(xué)習(xí),最終的考核方式大部分都是以書面的形式來進(jìn)行的。學(xué)生在學(xué)習(xí)的過程中,大部分僅注重書本上概念和理論的記憶以及習(xí)題的死記硬背,而輕視上機(jī)實(shí)驗(yàn)的重要性。因?yàn)?,?jì)算機(jī)語言本身就是一門實(shí)踐性課程,只有在掌握概念的基礎(chǔ)上不斷的實(shí)踐,才能真正掌握該門語言。學(xué)生重書本,輕實(shí)踐的最終結(jié)果恰好適得其反,反而導(dǎo)致了學(xué)生的實(shí)踐能力無法提高,程序的閱讀能力差。
針對(duì)以上的問題我們?cè)诮虒W(xué)過程中逐步摸索,嘗試了以下的方式以提高教學(xué)效果。
三、優(yōu)化教學(xué)改革
(一)明確學(xué)習(xí)目的,提高學(xué)生學(xué)習(xí)興趣。端正學(xué)生學(xué)習(xí)態(tài)度
為了培養(yǎng)學(xué)生的學(xué)習(xí)興趣,在教學(xué)伊始演示由C++開發(fā)的一些有趣實(shí)用的應(yīng)用軟件,以增強(qiáng)學(xué)生對(duì)c++課程的喜愛。同時(shí),端正學(xué)生的學(xué)習(xí)態(tài)度,讓非計(jì)算機(jī)專業(yè)的學(xué)生明確學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言,不僅僅是為了通過期末考試或計(jì)算機(jī)等級(jí)考試,更重要的是通過深入學(xué)習(xí)c++程序設(shè)計(jì)語言,開闊學(xué)生用c++語言解決實(shí)際問題的思路,掌握相關(guān)領(lǐng)域中的計(jì)算機(jī)應(yīng)用開發(fā)能力、利用計(jì)算機(jī)分析問題、解決問題的能力,以及培養(yǎng)學(xué)生自身的抽象思維和邏輯思維能力。
(二)采用新的教學(xué)材料
在已有的教學(xué)課時(shí)內(nèi),如何完成教學(xué)任務(wù),提高教學(xué)效果,成為了每個(gè)教師的一個(gè)難題。在這幾年的教學(xué)過程中,我們不斷摸索、總結(jié),在已有的教材基礎(chǔ)上,進(jìn)行吸收創(chuàng)新,重組教學(xué)知識(shí)點(diǎn),編制了體系結(jié)構(gòu)合理、內(nèi)容完整、學(xué)生容易接受、前后鋪墊的新教材――《Visual c++程序設(shè)計(jì)》(中國鐵道出版社)。對(duì)每個(gè)示例程序給出了解釋說明,還給出了調(diào)試結(jié)果,同時(shí)在學(xué)生掌握該問題的基礎(chǔ)上,提出疑問引導(dǎo)學(xué)生進(jìn)一步思考同類問題。使學(xué)生在經(jīng)過學(xué)習(xí)后,不僅能知其然,還能知其所以然。
(三)改革考試模式,注重培養(yǎng)學(xué)生獨(dú)立編程能力
1、改革考試模式,加大實(shí)踐環(huán)節(jié)的比重
考試是檢驗(yàn)教學(xué)效果的一個(gè)重要手段,考試模式則是引導(dǎo)學(xué)生學(xué)習(xí)的指揮棒。程序設(shè)計(jì)課程的教學(xué)要求和目標(biāo)是培養(yǎng)學(xué)生的編程能力,所以要通過實(shí)際的編程實(shí)驗(yàn)來檢驗(yàn)學(xué)生是否掌握了所學(xué)內(nèi)容和方法。為此我們采取了“筆試+機(jī)試+平時(shí)”相結(jié)合的考試模式,通過筆試來考查學(xué)生對(duì)基本概念和基本理論的掌握情況,通過上機(jī)考試考查學(xué)生的基本編程能力,再加上學(xué)生平時(shí)的表現(xiàn),最終給出學(xué)生考核成績。通過加大實(shí)踐環(huán)節(jié)所占比重來引導(dǎo)學(xué)生對(duì)實(shí)際編程能力的重視,達(dá)到對(duì)學(xué)生實(shí)際編程能力的培養(yǎng)。
2、注重基本語法調(diào)試技術(shù)
程序調(diào)試是程序設(shè)計(jì)中一個(gè)很重要的環(huán)節(jié),程序調(diào)試水平的高低與編程經(jīng)驗(yàn)密切相關(guān),也決定了學(xué)生的編程能力。在上機(jī)過程中主要是注重學(xué)生程序調(diào)試能力的培養(yǎng),讓學(xué)生盡可能通過編譯器給出的錯(cuò)誤提示信息去分析存在的問題,必要時(shí)通過設(shè)置斷點(diǎn)和單步跟蹤調(diào)試來解決問題。
(四)采用PBL教學(xué)法,改革教學(xué)模式
基于問題式學(xué)習(xí)(PBL)是以問題為基礎(chǔ),以學(xué)生為中心的討論式教學(xué),特點(diǎn)是培養(yǎng)學(xué)習(xí)者運(yùn)用知識(shí)、擴(kuò)展知識(shí)并獲取新知識(shí),鍛煉解決問題的能力為教學(xué)目標(biāo)。
CH程序設(shè)計(jì)語言課程是一種演繹思維方法的訓(xùn)練,實(shí)踐性很強(qiáng),非常適用教學(xué)法通過“提出問題一算法分析一程序示例一語法解釋一總結(jié)擴(kuò)展”這一過程設(shè)計(jì)教學(xué)環(huán)節(jié)。突破傳統(tǒng)教學(xué)模式,從根本上提高學(xué)生分析、解決實(shí)際問題的能力,提高程序設(shè)計(jì)課程的教學(xué)質(zhì)量。
在教學(xué)過程中,逐步的從“知識(shí)”教學(xué)向“能力”教學(xué)轉(zhuǎn)變,有針對(duì)性的采用新的教學(xué)模式――PBL教學(xué)模式。對(duì)于有特色、典型的知識(shí)點(diǎn)的教學(xué),筆者就采用PBL教學(xué)模式進(jìn)行教學(xué)。筆者在最近兩年的教學(xué)過程中,試用了PBL教學(xué)模式,收到了較好的效果。
以循環(huán)結(jié)構(gòu)的教學(xué)為例。第一,提出問題,要求學(xué)生解決某個(gè)數(shù)的階乘,使用循環(huán)語句實(shí)現(xiàn);第二,在講解時(shí),以累加問題為例,分析算法,然后逐步給出程序代碼并分析;第三,要求學(xué)生進(jìn)行配對(duì)組合進(jìn)行討論;第四,在圍繞問題展開討論學(xué)習(xí)后,要求在上機(jī)課上進(jìn)行程序編寫以驗(yàn)證程序的可行性。最后,在下一次理論教學(xué)課上進(jìn)行總結(jié)、反思。
從學(xué)生的反應(yīng)來看,大部分學(xué)生贊同PBL的教學(xué)模式,認(rèn)為該方法能夠啟發(fā)思維,變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí),形成了從理論到實(shí)踐,逐步掌握知識(shí)的過程。表1是不同時(shí)期學(xué)生在筆者不同的教學(xué)模式授課下學(xué)習(xí)VC++程序設(shè)計(jì)課程并參加江蘇省計(jì)算機(jī)等級(jí)考試的成績統(tǒng)計(jì)。從統(tǒng)計(jì)結(jié)果來看,雖然學(xué)時(shí)數(shù)的調(diào)整對(duì)教學(xué)效果有一定的作用,但影響最大的因素還是教學(xué)模式。PBL教學(xué)模式取得了顯著的效果。
摘要:本文在分析了C語言程序設(shè)計(jì)課程的教學(xué)現(xiàn)狀和教學(xué)困境的基礎(chǔ)上,對(duì)比自然語言和程序設(shè)計(jì)語言的共性以及C語言的特殊性,提出了“從概念入手,側(cè)重程序閱讀和程序設(shè)計(jì)能力培養(yǎng)”而非“語法研究”的教學(xué)角度。
關(guān)鍵詞:C語言;程序設(shè)計(jì);教學(xué)內(nèi)容;教學(xué)角度
中圖分類號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A
1教學(xué)現(xiàn)狀
在高等學(xué)校的本科教育中,“C語言程序設(shè)計(jì)”幾乎成了所有專業(yè)的必開課程,從計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò)工程等相關(guān)專業(yè),到電子信息類理工科各專業(yè),乃至理工科院校的所有非計(jì)算機(jī)專業(yè),有的是專業(yè)基礎(chǔ)課,有的是公共必修基礎(chǔ)課,有的是“非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)基礎(chǔ)課”。只是課程名稍有差異,常見的有“C語言程序設(shè)計(jì)”、“高級(jí)語言程序設(shè)計(jì)”、“C語言”、“C程序設(shè)計(jì)”、“結(jié)構(gòu)化程序設(shè)計(jì)”等。無論叫什么樣的課程名,也無論是哪類專業(yè),其課程的教學(xué)要求和教材選用卻無太大差別,只是課時(shí)分配差異較大。
從網(wǎng)絡(luò)調(diào)查的16所不同類型高校的“C語言程序設(shè)計(jì)”教學(xué)大綱看,普遍都包含“通過本課程的學(xué)習(xí),使學(xué)生了解有關(guān)程序設(shè)計(jì)的基本概念、術(shù)語及C語言的特點(diǎn),掌握C語言基本數(shù)據(jù)類型、語法規(guī)則、程序控制結(jié)構(gòu)、常用的標(biāo)準(zhǔn)庫函數(shù),培養(yǎng)學(xué)生的程序設(shè)計(jì)技能,初步積累編程經(jīng)驗(yàn)”的教學(xué)基本要求;約百分之八十左右的“C語言程序設(shè)計(jì)”課程都選用由譚浩強(qiáng)主編、清華大學(xué)出版社出版的“C程序設(shè)計(jì)”作為主教材;課時(shí)分配從30~108課時(shí)不等,其中80課時(shí)以上的多為應(yīng)用型本科院校的計(jì)算機(jī)相關(guān)專業(yè)以及綜合性大學(xué)的非計(jì)算機(jī)專業(yè),理論課時(shí)與實(shí)驗(yàn)課時(shí)的比例一般為1:1到1:1.2。與此同時(shí),其他專業(yè)基礎(chǔ)課(如計(jì)算機(jī)組成原理、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)等)的課時(shí)一般為54課時(shí),最多不超過72學(xué)時(shí)。相比之下,“C語言程序設(shè)計(jì)”所占課時(shí)是其他專業(yè)基礎(chǔ)課的1.5倍至2倍。
從教學(xué)目的看,非計(jì)算機(jī)專業(yè)的“C語言程序設(shè)計(jì)”課程主要目的是“掌握語法規(guī)則和程序結(jié)構(gòu),具備一定的程序設(shè)計(jì)能力”,而計(jì)算機(jī)相關(guān)專業(yè)的“C語言程序設(shè)計(jì)”課的教學(xué)目的則要分為三個(gè)層次,一是使學(xué)生全面理解計(jì)算機(jī)程序設(shè)計(jì)語言的基本內(nèi)容和結(jié)構(gòu);二是通過算法掌握程序設(shè)計(jì)的基本方法和步驟,并具備一定的程序設(shè)計(jì)能力;三是為后續(xù)課程的算法描述和其他程序設(shè)計(jì)語言的學(xué)習(xí)奠定基礎(chǔ)。
2教學(xué)誤區(qū)
從以上的教學(xué)現(xiàn)狀(特別是課時(shí)分配)看,長期以來,“C語言程序設(shè)計(jì)”的課程教學(xué)存在“教學(xué)內(nèi)容背離教學(xué)要求和教學(xué)目的”的誤區(qū),主要表現(xiàn)在教材誤區(qū)、講授誤區(qū)和考核誤區(qū)三個(gè)方面。
2.1教材誤區(qū)
國內(nèi)高校的“C語言程序設(shè)計(jì)”課大多選用譚浩強(qiáng)主編、清華大學(xué)出版社出版的“C程序設(shè)計(jì)”[1]為主教材,目前使用的是2005年7月修訂出版的第三版,教材共363頁,主體內(nèi)容分為14章,其中,第3章的數(shù)據(jù)類型與表達(dá)式占用30頁,第4章的格式輸入輸出占用12頁,前9章共占用218頁,后5章共占用145頁。占用如此大篇幅的原因是教材中除了介紹相關(guān)語法格式外,還增加了相當(dāng)多“特殊格式”和“特殊情況”的解釋和說明,因此,該教材的最大優(yōu)點(diǎn)就是“內(nèi)容詳盡、解釋清晰”。然而,對(duì)于初學(xué)者來說,學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言就是為了“為計(jì)算機(jī)描述求解問題的過程”,過于詳細(xì)但又遠(yuǎn)離現(xiàn)實(shí)問題的“特殊格式”和“特殊情況”的解釋,使得學(xué)習(xí)內(nèi)容復(fù)雜化,增加了程序設(shè)計(jì)語言學(xué)習(xí)的難度,誤導(dǎo)了學(xué)習(xí)者的學(xué)習(xí)重點(diǎn),由此也賦予了該教材無法掩飾的缺點(diǎn),那就是教材編寫的指導(dǎo)思想和教材內(nèi)容的組織脫離了高校各專業(yè)“C語言程序設(shè)計(jì)”課程的教學(xué)目標(biāo),過分強(qiáng)調(diào)語法細(xì)節(jié)而忽略了程序設(shè)計(jì)語言的“正向表達(dá)能力”的應(yīng)用,過分強(qiáng)調(diào)“語言的靈活性”而導(dǎo)致教材主體內(nèi)容的“復(fù)雜化”,從而誤導(dǎo)“C語言程序設(shè)計(jì)”課程的教學(xué)內(nèi)容朝著“重語法學(xué)習(xí)、輕算法描述”的“語言研究”方向發(fā)展。
2.2講授誤區(qū)
由于教材內(nèi)容的“復(fù)雜”,課堂講授自然需要較多課時(shí),教學(xué)重點(diǎn)當(dāng)然也放在了“語法研究”上。從網(wǎng)上下載的“C程序設(shè)計(jì)(第三版)”的配套教學(xué)課件以及有關(guān)院校的“C語言程序設(shè)計(jì)”教學(xué)課件的內(nèi)容組織上可以清楚的給出以上判斷?!罢Z法研究”型的課堂講授,更加放大了教材對(duì)“C語言程序設(shè)計(jì)”課程內(nèi)容的“扭曲”程度,給學(xué)生提供了錯(cuò)誤的程序設(shè)計(jì)語言學(xué)習(xí)方法,把簡單問題復(fù)雜化,更為嚴(yán)重的是,挫傷了學(xué)生學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)語言的興趣和積極性,把本應(yīng)“主動(dòng)學(xué)習(xí)”的課程成引入了“被動(dòng)學(xué)習(xí)”的歧途,直接導(dǎo)致“懂語法、會(huì)做題,但不會(huì)編程序”的教學(xué)后果。
2.3考核誤區(qū)
多年來,“C語言程序設(shè)計(jì)”的主體考試內(nèi)容就是“語法”,無論是選擇題、填空題還是程序閱讀題,大多都無法逃脫“語法”的束縛。考試方式以筆試為主。這在某種程度上肯定了“語言研究”的教學(xué)角度,促使“C語言程序設(shè)計(jì)”的教學(xué)重點(diǎn)更向“語法研究”的方向傾斜,最終誤入“增加課時(shí),強(qiáng)化語法,還是不會(huì)編程序”的怪圈。
3應(yīng)有的教學(xué)角度
按照網(wǎng)上調(diào)查的各專業(yè)教學(xué)大綱中“培養(yǎng)具有一定程序設(shè)計(jì)能力”的教學(xué)目的,“C語言程序設(shè)計(jì)”課程的教學(xué)落腳點(diǎn)應(yīng)該更確切的理解為培養(yǎng)“能用程序設(shè)計(jì)語言描述求解問題過程”的一般程序設(shè)計(jì)者,而不是造就“全面掌握程序設(shè)計(jì)語言語法、能設(shè)計(jì)高效、難懂程序”的程序設(shè)計(jì)語言方面的“作家”。因此,“C語言程序設(shè)計(jì)”課程教學(xué)相當(dāng)于自然語言中的“基本語言能力”教學(xué),而不是“語言研究”或“高級(jí)寫作”能力培養(yǎng)。
3.1自然語言與計(jì)算機(jī)程序設(shè)計(jì)語言
計(jì)算機(jī)程序設(shè)計(jì)語言是用人和計(jì)算機(jī)都能識(shí)別的方式描述計(jì)算機(jī)求解問題過程的過程描述語言,它具有和人所使用的自然語言相同或相似的組成和結(jié)構(gòu)特點(diǎn),對(duì)于已經(jīng)掌握了至少一門自然語言(比如漢語或英語)并具備一定文化程度的人來說,學(xué)習(xí)一種計(jì)算機(jī)程序設(shè)計(jì)語言并非難事。自然語言的基本組成包括符號(hào)集合、字、詞、句、數(shù)據(jù)及其運(yùn)算規(guī)則等基本要素,學(xué)習(xí)過程包括認(rèn)識(shí)符號(hào)、發(fā)音、識(shí)字、組詞、學(xué)語法并造句、學(xué)文法并寫短文、練習(xí)寫文章等基本階段,在具備了基本的語言能力之后,擴(kuò)充詞匯量和提高寫作能力將成為終身學(xué)習(xí)的基本內(nèi)容。按照自然語言的基本組成和學(xué)習(xí)過程,也可將計(jì)算機(jī)程序設(shè)計(jì)語言的基本組成歸納為字符集、標(biāo)識(shí)符(常量、變量、保留字等)、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語句、程序格式等基本要素,其中,字符集和數(shù)據(jù)類型是定義程序設(shè)計(jì)語言的基礎(chǔ),字符按一定規(guī)則組成標(biāo)識(shí)符,用來充當(dāng)常量名、變量名或其他標(biāo)識(shí),在自然語言中被人們公認(rèn)的特殊標(biāo)識(shí)符被賦予特定的語言含義,專門為語言系統(tǒng)所用(用戶不得再次定義其意義),稱為保留字;字符集中的特殊符號(hào)(如+、-、*、/)被賦予特定的運(yùn)算意義(如加、減、乘、除)稱為運(yùn)算符;不同數(shù)據(jù)類型的常量、變量用運(yùn)算符按一定規(guī)則連接起來組成的式子就構(gòu)成表達(dá)式;將特定的保留字與表達(dá)式等語言要素按照語法規(guī)則組合起來就形成相應(yīng)的語句;將語句按照要描述的求解問題的邏輯順序排列起來,就構(gòu)成了某種程序設(shè)計(jì)語言求解特定問題的一段程序。
3.2C語言的特殊性
一方面,C語言是程序設(shè)計(jì)語言的一種,具備一般程序設(shè)計(jì)語言的基本組成要素和結(jié)構(gòu)特點(diǎn)。另一方面,C語言能成為面向過程的結(jié)構(gòu)化程序設(shè)計(jì)語言的代表,也有其自身的特殊性。首先,C語言的數(shù)據(jù)類型極為豐富。除了基本數(shù)據(jù)類型外,還有構(gòu)造類型、指針類型、空類型和用戶自定義類型,其中,構(gòu)造類型包括數(shù)組、結(jié)構(gòu)體(struct)、共用體(union)和枚舉類型(enum)等四種數(shù)據(jù)結(jié)構(gòu)。其次,C語言具有位操作能力。除了能夠?qū)Ω黝愖兞窟M(jìn)行操作外,C語言還具備“按位”進(jìn)行邏輯“與”、“或”、“非”、“異或”運(yùn)算和“左”、“右”移位運(yùn)算,這使得C語言具備了更強(qiáng)的系統(tǒng)開發(fā)能力。第三,C語言具有顯著的結(jié)構(gòu)化程序設(shè)計(jì)能力,并通過完整的函數(shù)定義來實(shí)現(xiàn)。第四,C語言的最大特點(diǎn)就是“語法限制不嚴(yán),解釋靈活”。第五,C語言允許直接訪問物理地址,可直接對(duì)硬件端口進(jìn)行操作。第六,C語言沒有輸入/輸出語句,信息輸入/輸出功能由標(biāo)準(zhǔn)函數(shù)庫中相應(yīng)的I/O函數(shù)來完成。
C語言的這些特殊性,決定了C語言的教、學(xué)過程不同于其他程序設(shè)計(jì)語言的教學(xué)過程。
3.3C語言的教學(xué)角度
根據(jù)一般程序設(shè)計(jì)語言的基本組成與結(jié)構(gòu)特點(diǎn),結(jié)合C語言的特殊性,“C語言程序設(shè)計(jì)”課程的教學(xué)角度應(yīng)該是:從介紹程序設(shè)計(jì)語言的基本概念入手,重點(diǎn)介紹語言的“正
向”設(shè)計(jì)功能而非“特殊格式”或“特殊語法”說明,側(cè)重學(xué)生的程序閱讀和程序設(shè)計(jì)能力培養(yǎng),從教學(xué)內(nèi)容的廣度和深度兩個(gè)方面,恰當(dāng)把握教學(xué)角度。
“C語言程序設(shè)計(jì)”課程的內(nèi)容可分為三個(gè)基本模塊,教學(xué)過程從第一個(gè)模塊切入,逐漸擴(kuò)展到第二和第三個(gè)模塊。第一個(gè)模塊可稱為“程序設(shè)計(jì)語言公共模塊”,主要包括程序設(shè)計(jì)語言的基本概念、程序設(shè)計(jì)語言的基本要素(字符集、標(biāo)識(shí)符、常量變量以及保留字、基本數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語句與控制結(jié)構(gòu)、程序結(jié)構(gòu)以及程序書寫規(guī)范等)以及輸入/輸出格式等內(nèi)容;第二個(gè)模塊是C語言的主體,主要包括函數(shù)、數(shù)組、指針、文件等;第三個(gè)模塊是高級(jí)編程內(nèi)容,主要包括結(jié)構(gòu)體(struct)、共用體(union)、枚舉類型(enum)以及用戶自定義類型等。
在教學(xué)深度方面,各模塊的教學(xué)重點(diǎn)應(yīng)放在“規(guī)范的語法描述和直觀易懂而且正確的語義表述上”,避免涉及各種過細(xì)的“不符合人類閱讀習(xí)慣”的語義描述,暫時(shí)避開“特殊格式”或“特殊情況”的糾纏,擺脫“研究語法”的錯(cuò)誤向?qū)АT诖嘶A(chǔ)上,第一模塊的教學(xué)可與自然語言相比對(duì),通過學(xué)生已有的自然語言學(xué)習(xí)經(jīng)驗(yàn)和語言要素,使學(xué)生快速建立程序設(shè)計(jì)語言的基本概念,正確理解程序設(shè)計(jì)語言的基本要素及其關(guān)系,掌握基本語法和程序基本控制結(jié)構(gòu)(順序、選擇、循環(huán)),并通過算法歸納求解問題的過程,正確理解算法不同描述方式(自然語言、傳統(tǒng)流程圖、N-S流程圖、偽代碼、程序設(shè)計(jì)語言)的作用和差異,特別是從“問題”到“程序”的漸進(jìn)轉(zhuǎn)化過程,從而培養(yǎng)學(xué)生的基本程序設(shè)計(jì)能力。通過第二模塊的教學(xué),使學(xué)生明確函數(shù)、數(shù)組、指針、文件等概念和作用,掌握它們的定義和引用方法,能進(jìn)行相應(yīng)數(shù)據(jù)類型的編程,進(jìn)而掌握用函數(shù)定義的結(jié)構(gòu)化模塊程序設(shè)計(jì)的方法;通過第三個(gè)模塊的教學(xué),將程序的數(shù)據(jù)處理能力擴(kuò)展到結(jié)構(gòu)體、共用體、枚舉類型以及用戶自定義類型等復(fù)雜數(shù)據(jù)類型的處理上來,通過恰當(dāng)?shù)睦討?yīng)用這些數(shù)據(jù)類型,向?qū)W生展示C語言強(qiáng)有力的數(shù)據(jù)表示和處理能力。
另外,可以將C語言中的“語法靈活性”和不同部分的各種“特殊情況”分類總結(jié),歸納整理成“語言參考手冊(cè)”等形式,以附錄的形式提供給學(xué)生,以便需要時(shí)“備查”。這樣既可節(jié)省教學(xué)課時(shí),又可向?qū)W生提供學(xué)習(xí)語言的主動(dòng)權(quán)。
3.4教學(xué)策略和方法
“C語言程序設(shè)計(jì)”屬語言類課程,教學(xué)過程充滿了逐步完善和熟練的基本特點(diǎn),因此,從教學(xué)安排的策略上要分重點(diǎn)、分階段逐步進(jìn)行,每個(gè)階段的教學(xué)方法應(yīng)該采用建立在一定基礎(chǔ)上的有重點(diǎn)的“部分教學(xué)法”,以核心內(nèi)容為基礎(chǔ),向外逐漸延伸,部分學(xué)習(xí),漸進(jìn)掌握。盡可能避免不分主次、不論難易、不顧急緩,盲目一次性掃清各類知識(shí)點(diǎn)的“地毯式”教授方法或?qū)W習(xí)方法,同時(shí)強(qiáng)調(diào)自學(xué)和上機(jī)驗(yàn)證,強(qiáng)化在特定環(huán)境下(如Turbo C++ 3.0)的程序設(shè)計(jì)訓(xùn)練,做到“精講多練[2]”,從小程序練起,逐漸過渡到求解較大或?qū)嶋H問題的程序設(shè)計(jì)上來。
4結(jié)束語
從目前的教學(xué)現(xiàn)狀看,無論是計(jì)算機(jī)相關(guān)專業(yè),還是理工科的電子信息類專業(yè),乃至綜合性大學(xué)的非計(jì)算機(jī)專業(yè),“C語言程序設(shè)計(jì)”的課程教學(xué)均占有重要的教學(xué)地位,在全面提高教學(xué)質(zhì)量和教學(xué)效率的今天,不同類型專業(yè)結(jié)合自身優(yōu)勢(shì)和程序設(shè)計(jì)語言類課程的特點(diǎn),選擇合適的角度組織和實(shí)施“C語言程序設(shè)計(jì)”課程的教學(xué)活動(dòng)非常重要,而且很有必要。筆者的教學(xué)實(shí)踐證明,避開“語法研究”的程序設(shè)計(jì)教學(xué)不僅可減少課時(shí),更可提高學(xué)生利用程序設(shè)計(jì)語言“表述求解問題過程”的能力。
參 考 文 獻(xiàn)
關(guān)鍵詞: C語言;常見錯(cuò)誤;程序調(diào)試;實(shí)例
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)35-9969-02
Analysis of Common Error Based on C Programming Language
GAO Ya-xia1, ZOU Hai-rong2
(1.Shaanxi Commercial School, Hanzhong 723000, China; 2.Shaanxi Institute Of Technology, Hanzhong 723000, China)
Abstract: In recent years, not only the computer professionals use C language, but also the majority of staff computer applications favorite and use. In the use of C language application development, due to C language has a flexible programming style, grammar constraints are less stringent and program design large degree of freedom and so on. This C language to a number of beginner and causing a number of difficulties, in order to be able to quickly identify and correct errors in the program; this paper, the C language program design issues common mistakes analysis and research. Gives some examples and reference solutions, in order to learn C language program designed users to provide with convenient.
Key words: C Language; common errors; debugging program; example
C語言是在國內(nèi)外廣泛流行、使用的一種計(jì)算機(jī)高級(jí)程序設(shè)計(jì)語言。它的主要特點(diǎn)是:概念簡潔、數(shù)據(jù)類型豐富、表達(dá)能力強(qiáng),運(yùn)算符多且使用方便靈活。與其它程序設(shè)計(jì)語言相比較,具有靈活的編程風(fēng)格,語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大(例如:一個(gè)語句可以采用多種方式,分多行撰寫;對(duì)數(shù)組下標(biāo)越界不做檢查;整型、字符型和邏輯型的數(shù)據(jù)可以通用等)。這就給程序設(shè)計(jì)人員留下“靈活的余地”,但是由于這個(gè)靈活往往給程序調(diào)試,尤其對(duì)初學(xué)C語言的人來說,經(jīng)常會(huì)出一些連自己都不知道錯(cuò)在哪里的實(shí)例??粗绣e(cuò)的程序,不知該如何進(jìn)行修改。通過在C語言的教學(xué)與研究過程中,分析了一些關(guān)于C語言程序設(shè)計(jì)時(shí)容易犯的錯(cuò)誤實(shí)例,提供給學(xué)習(xí)C語言的同學(xué)及相關(guān)人員參考。
1 C語言常見錯(cuò)誤實(shí)例與分析
實(shí)例1.Printf語句中“控制字符串”部分分寫在不同的行。
例如:main()
{ printf(“* * * * *”\n
Very good!\n
* * * * * \n);}
該程序的目的是為了顯示這樣的結(jié)果: * * * * *
Very good!
* * * * *
但程序運(yùn)行后卻出現(xiàn)錯(cuò)誤信息:“Unterminated string or character constant in function main”,對(duì)上述錯(cuò)誤,只要在程序第二行、第三行的最后分別加上“\” 即可得到正確的結(jié)果,也就是說printf語句中的“控制字符串”部分分寫在不同的行時(shí)加“\”連接。
實(shí)例2. 忽略了“=”與“==”的區(qū)別。
在許多高級(jí)語言中,用“=”符號(hào)作為關(guān)系運(yùn)算符“等于”。如在BASIC程序中可以寫if (m=10) then …,但C語言中,“=”是賦值運(yùn)算符,“==”是關(guān)系運(yùn)算符。
例如:if (m==10) m=n;
前者是進(jìn)行比較,m是否和10相等,后者表示如果m和10相等,把n值賦給m。由于習(xí)慣問題,初學(xué)者往往很容易犯這樣的錯(cuò)誤。
實(shí)例3.定義變量的位置不正確。
例如:#include
main()
{ char ch,filename[10];
scanf(“%s”,filename);
FILE *fp;
fp=fopen(filename,“w”);
ch=getchar();
while(ch!=‘#’)
{ fputc(ch,fp);putchar(ch);ch=getchar();}
fclose(fp);}
程序運(yùn)行后出現(xiàn)錯(cuò)信息“Improper use of a typedef symbol in function main”,只要把第六行:FILE *fp;放到第四行前,程序通過。原因是:說明部分要放在其他語句之前。
實(shí)例4.將字符常量與字符串常量混淆。
char ch;
ch="M";
在這里就混淆了字符常量與字符串常量,字符常量是由一對(duì)單引號(hào)括起來的單個(gè)字符,而字符串常量是一對(duì)雙引號(hào)括起來的字符序列。C規(guī)定以‘\0’作字符串結(jié)束標(biāo)志,它是由系統(tǒng)自動(dòng)加上的,所以字符串“M”實(shí)際上包含兩個(gè)字符:‘M'和‘\0',而把它賦給一個(gè)字符變量是不正確的。
實(shí)例5.輸入變量時(shí)忘記加地址運(yùn)算符“&”。
int a,b;
scanf("%d%d",a,b);
這是不合法的。Scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進(jìn)去?!?a”指a在內(nèi)存中的地址。“&b”指b在內(nèi)存中的地址。
實(shí)例6.輸入數(shù)據(jù)的方式與要求不符。
1) scanf("%d%d",&x,&y);
輸入時(shí),不能用逗號(hào)作兩個(gè)數(shù)據(jù)間的分隔符,如下面輸入不合法:
1,5
輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)之間以一個(gè)或多個(gè)空格間隔,也可用回車鍵,跳格鍵tab。
2) scanf("%d,%d",&x,&y);
C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。下面輸入是合法的:
1,5
此時(shí)不用逗號(hào)而用空格或其它字符是不對(duì)的。如下面輸入不合法:
1 5 1:5
又如:scanf("a=%d,b=%d",&a,&b);輸入應(yīng)如以下形式:
a=1,b=5
實(shí)例7.輸入字符的要求與格式不一致。
在用“%c”格式輸入字符時(shí),“轉(zhuǎn)義字符”和“空格字符”都作為有效字符輸入。
scanf("%c%c%c",&c1,&c2,&c3);
例如:輸入O K !
則字符“O”送給c1,空格字符“ ”送給c2,字符“K”送給c3,因?yàn)?c只要求讀入一個(gè)字符,后面不需要用空格作為兩個(gè)字符的間隔。
實(shí)例8. 同時(shí)定義了形參與函數(shù)中的局部變量。
int max(x,y)
int x,y,z;
形參應(yīng)該在函數(shù)體外定義,而局部變量應(yīng)該在函數(shù)體內(nèi)定義。應(yīng)改為:
int max(x,y)
int x,y;
{int z;
z=x>y?x:y;
return(z);}
實(shí)例9. 誤用變量定義數(shù)組。
int n;
scanf("%d",&n);
int a[n];
數(shù)組名后用方括號(hào)括起來的是常量表達(dá)式,可以包括常量和符號(hào)常量。即C不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義。
實(shí)例10. 被調(diào)用的函數(shù)未在主函數(shù)中進(jìn)行聲明。
例如:main()
{ int a,b,*p1,*p2;
Scanf(“%d,%d”,&a,&b);
p1=&a;p2=&b;
if(a
printf(“5d,%d\n”,*p1,*p2); }
void swap(int *p1,int *p2)
{ int *p;
P=*p1;*p1=*p2;*p2=p; }
程序運(yùn)行后出現(xiàn)錯(cuò)誤信息:“Type mismatch in redeclaration of ‘swap’”,只要在程序的第二句int a,b;前加一句:void swap();程序運(yùn)行通過。也就是說:被調(diào)用函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之后(除了函數(shù)的值是整型或字符型的),要在main()函數(shù)中對(duì)被調(diào)用函數(shù)進(jìn)行說明,void型函數(shù)也不例外。
2 結(jié)論
通過上面這些實(shí)例的分析,可以看出,由于C語言的開放式編程風(fēng)格,讓C語言初學(xué)者,在進(jìn)行C語言程序設(shè)計(jì)時(shí)往往會(huì)出現(xiàn)一些微妙的、不易覺察的錯(cuò)誤。C語言作為一門完善的編程語言,具有它的科學(xué)性與嚴(yán)謹(jǐn)性。因此,只有在充分掌握和熟練運(yùn)用C語言的基本概念、語法規(guī)范及結(jié)構(gòu)的基礎(chǔ)上,才能真正享受到C語言靈活自如的編程風(fēng)格的魅力,這也是學(xué)習(xí)一切科學(xué)知識(shí)的基本方法。
參考文獻(xiàn):
[1] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2008:37-242.
關(guān)鍵詞:C/C++語言程序設(shè)計(jì);教學(xué)改革;國家精品課程;教學(xué)方法
文章編號(hào):1672-5913(2013)07-0095-04
中圖分類號(hào):G642
1 課程教學(xué)現(xiàn)狀及存在問題
“C/C++語言程序設(shè)計(jì)”是理工科非計(jì)算機(jī)專業(yè)本科學(xué)生的第二門計(jì)算機(jī)課程,也是大學(xué)計(jì)算機(jī)基礎(chǔ)系列課程的核心課程?!癈/C++語言程序設(shè)計(jì)”課程的內(nèi)容抽象,概念和語法規(guī)則較多,特別講究適用技巧。長期以來,高校都在不斷地探索和實(shí)踐關(guān)于“C/C++語言程序設(shè)計(jì)”課程的教學(xué)改革,但仍然存在很多問題。例如,教學(xué)依然以傳統(tǒng)教學(xué)方式為主,不能將實(shí)驗(yàn)環(huán)節(jié)與課堂教學(xué)環(huán)節(jié)很好地相互連貫,相互印證,使得理論教學(xué)和實(shí)踐教學(xué)脫節(jié);某些教師忽視學(xué)生的實(shí)踐能力和創(chuàng)新能力的培養(yǎng),使學(xué)生在分析問題和解決問題時(shí)無從下手,缺乏編程和調(diào)試的能力;實(shí)驗(yàn)教學(xué)中的多數(shù)實(shí)驗(yàn)內(nèi)容是驗(yàn)證性的,學(xué)生機(jī)械式的運(yùn)行程序,對(duì)知識(shí)的理解只停留在表面上;理論和實(shí)驗(yàn)課時(shí)數(shù)較少,上課信息量大,學(xué)生接受知識(shí)的進(jìn)度不一樣,這就導(dǎo)致教師和學(xué)生的學(xué)習(xí)步調(diào)不一致。
針對(duì)上述問題,許多高校對(duì)“C/C++語言程序設(shè)計(jì)”課程的教學(xué)作出了有益的探索,如文獻(xiàn)[1]提出“通、實(shí)、新、聯(lián)”的教學(xué)理念;文獻(xiàn)[2]提出教學(xué)設(shè)計(jì)原理;文獻(xiàn)[3]提出項(xiàng)目教學(xué)法;文獻(xiàn)[4]提出案例教學(xué)法;文獻(xiàn)[5]提出“機(jī)房授課+自主學(xué)習(xí)”的授課模式;文獻(xiàn)[6]提出將“以應(yīng)用為背景,以知識(shí)為主線,以提高能力和興趣為目的,變應(yīng)試為應(yīng)用”的教學(xué)理念應(yīng)用于該課程的教學(xué)中。這些方法均在一定程度上激發(fā)了學(xué)生的學(xué)習(xí)興趣,增強(qiáng)了學(xué)生的動(dòng)手能力,取得了較為明顯的教學(xué)效果。
為了探究出適合成都理工大學(xué)人才培養(yǎng)的課程特點(diǎn),“C/C++語言程序設(shè)計(jì)”課程組經(jīng)過多年的課程建設(shè)和對(duì)教學(xué)環(huán)節(jié)的研究與探索,提出了“以應(yīng)用為前提,學(xué)生為主體,知識(shí)為主線,培養(yǎng)學(xué)生的實(shí)踐動(dòng)手能力為著力點(diǎn)”的教學(xué)理念,構(gòu)建了一套教材體系完善、教學(xué)資源豐富、教學(xué)手段先進(jìn)、教學(xué)評(píng)價(jià)合理、考核方式差異化、精品課程網(wǎng)站新穎的教學(xué)體系。下面分別從教學(xué)設(shè)計(jì)、教學(xué)方法、教學(xué)手段、考核方式以及教學(xué)資源等方面進(jìn)行闡述。
2 教學(xué)設(shè)計(jì)及課程內(nèi)容組織
2.1教學(xué)設(shè)計(jì)
成都理工大學(xué)每年有4000名以上的學(xué)生參加“C/C++語言程序設(shè)計(jì)”課程學(xué)習(xí)。為實(shí)施因材施教,我們重視研究性學(xué)習(xí)、探究性學(xué)習(xí)、協(xié)作學(xué)習(xí)等現(xiàn)代教育理念在教學(xué)中的應(yīng)用,根據(jù)課程內(nèi)容和學(xué)生特征,對(duì)教學(xué)方法和教學(xué)評(píng)價(jià)進(jìn)行設(shè)計(jì),并在教學(xué)理念與教學(xué)設(shè)計(jì)上實(shí)施了多種改革舉措。
1)以學(xué)生為中心的教學(xué)模式。
以學(xué)生為中心的教學(xué)模式讓教師從傳統(tǒng)的教學(xué)方式中解脫出來,變“教學(xué)”為“導(dǎo)學(xué)”。教師充分利用多種教學(xué)媒體和提示學(xué)習(xí)資源,講重點(diǎn)、解難點(diǎn)、釋疑點(diǎn),講評(píng)作業(yè),指導(dǎo)學(xué)習(xí)方法,輔助小組學(xué)習(xí),發(fā)揮學(xué)生的主體作用,引導(dǎo)學(xué)生自主學(xué)習(xí),幫助學(xué)生培養(yǎng)自學(xué)能力。
教師要在理論課前了解學(xué)生是否掌握了與課程有關(guān)的基礎(chǔ)知識(shí)和基本技能,根據(jù)學(xué)生在實(shí)驗(yàn)課的表現(xiàn)來了解學(xué)生是否掌握了教學(xué)目標(biāo)中要求學(xué)會(huì)的知識(shí)和技能,以及掌握的程度等信息,從而確定后續(xù)教學(xué)中應(yīng)重點(diǎn)講解和輔導(dǎo)的知識(shí),根據(jù)學(xué)生的實(shí)際情況設(shè)計(jì)教學(xué)環(huán)節(jié)。對(duì)于部分優(yōu)秀學(xué)生和已經(jīng)學(xué)習(xí)了程序設(shè)計(jì)的學(xué)生,我們要加快他們的學(xué)習(xí)進(jìn)度,增加學(xué)習(xí)難度和深度,使他們可以很快在自己的專業(yè)中使用程序設(shè)計(jì)來解決相關(guān)問題。
2)精心準(zhǔn)備每一節(jié)課,激發(fā)學(xué)生學(xué)習(xí)積極性。
激發(fā)學(xué)生對(duì)程序設(shè)計(jì)課程的學(xué)習(xí)興趣,是本課程任務(wù)執(zhí)行的重要目標(biāo)。學(xué)生是主動(dòng)學(xué)習(xí)還是被動(dòng)學(xué)習(xí)會(huì)讓教學(xué)效果產(chǎn)生明顯的差別,因此每位教師都應(yīng)精心準(zhǔn)備每一節(jié)課。引領(lǐng)學(xué)生跨入程序設(shè)計(jì)大門的第一節(jié)課是極其重要的。學(xué)生所關(guān)心的是所學(xué)課程對(duì)自己的專業(yè)和今后的工作有什么作用,教師可從不同的專業(yè)角度,結(jié)合當(dāng)前最熱門的IT話題和實(shí)際應(yīng)用為學(xué)生介紹學(xué)習(xí)本課程的意義和作用,同時(shí)介紹一些往屆學(xué)生將所學(xué)程序設(shè)計(jì)知識(shí)用于數(shù)學(xué)建模、程序設(shè)計(jì)競(jìng)賽、專業(yè)課程學(xué)習(xí)等方面的生動(dòng)實(shí)例,這些都是教師第一節(jié)課的良好素材。
3)培養(yǎng)學(xué)生系統(tǒng)化的程序設(shè)計(jì)思維。
程序設(shè)計(jì)課程長期存在著注重語句、語法和細(xì)節(jié)的特點(diǎn),基本上是以程序設(shè)計(jì)語言自身的體系為脈絡(luò)展開的。許多學(xué)生在學(xué)習(xí)程序設(shè)計(jì)語言課程時(shí)會(huì)覺得枯燥難學(xué),學(xué)過后又不能用來解決實(shí)際問題。所以學(xué)生雖然學(xué)了一定的程序設(shè)計(jì)知識(shí),但編程能力較差?!糠謱W(xué)生在遇到實(shí)際問題依舊無從下手。而系統(tǒng)化程序設(shè)計(jì)思維培養(yǎng)模式是從本科生的認(rèn)知特點(diǎn)出發(fā),讓教師在教授學(xué)生程序設(shè)計(jì)課程、提高學(xué)生編程能力的同時(shí),培養(yǎng)學(xué)生的系統(tǒng)化程序設(shè)計(jì)思維。
程序設(shè)計(jì)課程不僅教學(xué)生如何進(jìn)行計(jì)算機(jī)編程,而且教學(xué)生如何像程序員一樣思考問題。系統(tǒng)化的程序設(shè)計(jì)思維的培養(yǎng)過程就是讓學(xué)生自己動(dòng)手解決實(shí)際問題的過程。這個(gè)過程充滿了學(xué)生對(duì)未知問題的探索、研究與創(chuàng)新,不僅可以教會(huì)學(xué)生解決在程序設(shè)計(jì)中遇到的問題,而且可以鍛煉思維,使學(xué)生的邏輯思維更加嚴(yán)密,這對(duì)一個(gè)理工科的大學(xué)生來說是至關(guān)重要的,對(duì)學(xué)生整體素質(zhì)的提高、程序設(shè)計(jì)課程整體教學(xué)水平的提高都有現(xiàn)實(shí)意義。
4)互換角色思考與提問。
在教學(xué)過程中我們發(fā)現(xiàn),很多學(xué)生不提問,有時(shí)是學(xué)生提不出問題,有時(shí)是不知該如何提問。這時(shí),教師需要站在學(xué)生位置上,思考學(xué)生可能會(huì)有什么問題,然后由教師提出問題,讓學(xué)生來回答。如果學(xué)生不能回答,教師再為學(xué)生解答。教師備課時(shí)不再只是準(zhǔn)備我要講什么,而是思考學(xué)生會(huì)遇到什么難點(diǎn),需要向?qū)W生提什么問題、解答什么問題?;诖四康模處熜铚?zhǔn)備大量經(jīng)典案例,提出問題,分析問題,并在問題中設(shè)置一些錯(cuò)誤,讓學(xué)生思考原因,并進(jìn)一步思考如何修改錯(cuò)誤,在這樣的學(xué)習(xí)過程中潛移默化地掌握基本的語法知識(shí)和解決問題的方法。這種模式轉(zhuǎn)變了學(xué)生的學(xué)習(xí)方式,激勵(lì)學(xué)生積極思考問題、分析和解決問題。
2.2理論課程設(shè)計(jì)
由于科學(xué)技術(shù)的快速發(fā)展,計(jì)算機(jī)科學(xué)與其他學(xué)科間的交叉、融合日益增強(qiáng)。大多數(shù)非計(jì)算機(jī)專業(yè)的培養(yǎng)目標(biāo)已將學(xué)生的計(jì)算機(jī)程序設(shè)計(jì)能力作為了一項(xiàng)重要內(nèi)容。
本課程主要是針對(duì)非計(jì)算機(jī)專業(yè)的理工科一年級(jí)大學(xué)生開設(shè)的。與計(jì)算機(jī)專業(yè)不同的是,非計(jì)算機(jī)專業(yè)學(xué)生一般只學(xué)一門語言課程。因此,該課程的教學(xué)就擔(dān)負(fù)起培養(yǎng)學(xué)生編程能力的重要責(zé)任,成為了學(xué)習(xí)其他程序設(shè)計(jì)語言的基礎(chǔ)。
根據(jù)非計(jì)算機(jī)專業(yè)各學(xué)科的培養(yǎng)目標(biāo),“C/C++語言程序設(shè)計(jì)”課程在理論課程內(nèi)容設(shè)計(jì)上注意知識(shí)結(jié)構(gòu)的合理,強(qiáng)調(diào)基本能力的培養(yǎng),注重基礎(chǔ)理論與實(shí)際應(yīng)用的融合。課程內(nèi)容體系結(jié)構(gòu)重點(diǎn)突出學(xué)以致用。課程內(nèi)容知識(shí)結(jié)構(gòu)由C語言簡單程序的編寫和調(diào)試、C語言程序設(shè)計(jì)基礎(chǔ)、控制結(jié)構(gòu)、數(shù)組、指針、函數(shù)、編譯預(yù)處理與變量的存儲(chǔ)類型、文件、結(jié)構(gòu)體與共用體、圖形程序設(shè)計(jì)基礎(chǔ)、C++程序設(shè)計(jì)基礎(chǔ)、查找和排序12部分組成。
根據(jù)學(xué)以致用的原則,在實(shí)際應(yīng)用中,函數(shù)是程序設(shè)計(jì)的重要內(nèi)容之一,也是學(xué)生學(xué)習(xí)的難點(diǎn)之一,因此在理論課程設(shè)計(jì)中,我們將函數(shù)的使用提前講解,讓學(xué)生盡早接觸函數(shù),理解模塊化的設(shè)計(jì)方法,掌握函數(shù)的基本設(shè)計(jì)和操作。在講授第2章有關(guān)輸入/輸出庫函數(shù)時(shí),可同時(shí)結(jié)合第8章文件的知識(shí),使學(xué)生掌握實(shí)際問題中涉及不同數(shù)據(jù)的不同輸入/輸出方式,較好地解決了學(xué)生學(xué)習(xí)C語言后不能熟練掌握文件操作的問題。
教材在內(nèi)容編排上注重易用性。每章的開頭設(shè)置本章學(xué)習(xí)目標(biāo),之后設(shè)置本章學(xué)習(xí)指導(dǎo),包含“課前思考”“本章難點(diǎn)”和“本章編程中容易出現(xiàn)的錯(cuò)誤”。每章后的練習(xí)題涵蓋了程序設(shè)計(jì)中的常見算法,涉及簡單程序設(shè)計(jì)、較復(fù)雜程序設(shè)計(jì)、易于舉一反三的程序設(shè)計(jì)問題等內(nèi)容,使學(xué)生能夠通過練習(xí),大大地提高編程能力。
2.3實(shí)驗(yàn)課程設(shè)計(jì)
“C/C++語言程序設(shè)計(jì)”是一門實(shí)踐性很強(qiáng)的課程。在近幾年的課程建設(shè)與教學(xué)改革中,實(shí)驗(yàn)課程注重理論課程內(nèi)容與實(shí)驗(yàn)內(nèi)容的有機(jī)結(jié)合,強(qiáng)調(diào)學(xué)生創(chuàng)新能力和實(shí)際動(dòng)手能力的培養(yǎng)。C/C++程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)內(nèi)容改變了以往驗(yàn)證性實(shí)驗(yàn)為主的現(xiàn)象,使設(shè)計(jì)性實(shí)驗(yàn)內(nèi)容占了70%以上。通過實(shí)驗(yàn),培養(yǎng)學(xué)生分析問題和解決問題的能力,以及動(dòng)手能力和程序設(shè)計(jì)能力,從而加深對(duì)理論課程內(nèi)容的理解。
實(shí)驗(yàn)課程配有實(shí)驗(yàn)指導(dǎo)書,共設(shè)計(jì)了11個(gè)實(shí)驗(yàn)項(xiàng)目和一個(gè)綜合程序設(shè)計(jì),其基本出發(fā)點(diǎn)是幫助學(xué)生理解和消化課堂教學(xué)的內(nèi)容,培養(yǎng)學(xué)生自主學(xué)習(xí)能力,加強(qiáng)其實(shí)踐能力和團(tuán)隊(duì)協(xié)作精神,讓學(xué)生掌握程序設(shè)計(jì)的基本思想和方法。具體實(shí)驗(yàn)內(nèi)容包括:C/C++簡單程序的編寫和調(diào)試、C語言程序設(shè)計(jì)基礎(chǔ)、控制結(jié)構(gòu)、數(shù)組、指針、函數(shù)、編譯預(yù)處理、文件、結(jié)構(gòu)體與共用體、圖形程序設(shè)計(jì)、C++程序設(shè)計(jì)基礎(chǔ)。
3 教學(xué)方法和手段
3.1教學(xué)方法
為了實(shí)現(xiàn)程序設(shè)計(jì)課程的教學(xué)目標(biāo),使學(xué)生不但掌握高級(jí)編程語言的知識(shí)、編程技術(shù)和基本算法,更要掌握程序設(shè)計(jì)的思想和方法,培養(yǎng)學(xué)生進(jìn)行問題求解和編程的能力,以及探索和創(chuàng)新能力,我們采用了多種教學(xué)方法,主要做了以下改革。
1)課內(nèi)與課外訓(xùn)練相結(jié)合,注重學(xué)生綜合能力的培養(yǎng)。
課內(nèi)教師根據(jù)教材進(jìn)行引導(dǎo)學(xué)習(xí),加強(qiáng)典型例題的啟發(fā)式講解。在分析常見錯(cuò)誤案例的過程中,教師講解程序設(shè)計(jì)的基本方法、程序測(cè)試方法以及程序調(diào)試和排錯(cuò)方法,幫助學(xué)生理解錯(cuò)誤發(fā)生的原因和實(shí)質(zhì),掌握糾錯(cuò)的方法和解決的對(duì)策。在實(shí)驗(yàn)教學(xué)中,我們?yōu)槊刻脤?shí)驗(yàn)課設(shè)計(jì)相應(yīng)的實(shí)驗(yàn)項(xiàng)目。實(shí)驗(yàn)項(xiàng)目的設(shè)計(jì)注重實(shí)用性和綜合性。實(shí)踐教學(xué)強(qiáng)調(diào)大量程序設(shè)計(jì)的訓(xùn)練。教師在網(wǎng)上為學(xué)生一些經(jīng)典、實(shí)用、有一定挑戰(zhàn)性的作業(yè),鼓勵(lì)學(xué)生課外多訓(xùn)練,倡導(dǎo)學(xué)生課后以寢室為單位,組成學(xué)習(xí)小組,進(jìn)行討論、分析和解決問題。
為了激勵(lì)學(xué)生參與程序設(shè)計(jì)的實(shí)踐,進(jìn)一步提高學(xué)生程序設(shè)計(jì)的興趣,提升他們的軟件技術(shù)水平,成都理工大學(xué)每年舉行一次全校范圍的程序設(shè)計(jì)大賽。大賽采用初賽和決賽制,要求學(xué)生在2~4小時(shí)內(nèi)完成一個(gè)綜合性較強(qiáng)的程序設(shè)計(jì)題目,或在一段時(shí)間內(nèi)完成一個(gè)綜合程序設(shè)計(jì)題目,然后進(jìn)行答辯。
2)重視實(shí)踐教學(xué)環(huán)節(jié)、注重學(xué)生創(chuàng)新意識(shí)與應(yīng)用能力的培養(yǎng)。
為了培養(yǎng)學(xué)生的實(shí)踐動(dòng)手能力,我們加強(qiáng)了實(shí)踐教學(xué)環(huán)節(jié)的管理。教師要積極使用多媒體實(shí)驗(yàn)室的教學(xué)設(shè)備,進(jìn)行啟發(fā)、引導(dǎo)式的實(shí)驗(yàn)指導(dǎo),將平時(shí)測(cè)試與期末測(cè)試結(jié)合,測(cè)試學(xué)生在1個(gè)小時(shí)內(nèi)調(diào)試和正確編寫程序的能力,引導(dǎo)和督促學(xué)生重視實(shí)踐教學(xué)。開放性實(shí)驗(yàn)注重培養(yǎng)學(xué)生的創(chuàng)新意識(shí)與應(yīng)用能力。
3)網(wǎng)站互動(dòng)學(xué)習(xí)。
課程組建立的教學(xué)網(wǎng)站、精品課程網(wǎng)站、課程資源平臺(tái)等為學(xué)生提供了網(wǎng)絡(luò)課程、網(wǎng)上答疑、作業(yè)提交、理論試題及答案、上機(jī)試題及答案、教學(xué)錄像、視頻節(jié)目、精品課程網(wǎng)站鏈接、相關(guān)學(xué)習(xí)網(wǎng)站鏈接等資源,擴(kuò)充了課堂教學(xué)區(qū)域。學(xué)生可以在任何時(shí)候、任何地點(diǎn)進(jìn)行互動(dòng)學(xué)習(xí)。這種方法及時(shí)地解決了學(xué)生在學(xué)習(xí)中遇到的疑難問題。
4)改革考核方式,采用多元評(píng)價(jià)方式考核實(shí)驗(yàn)成績。
為了提高學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生問題求解和編程能力,以及探索和創(chuàng)新能力,我們采用了開卷和閉卷相結(jié)合的考試方式,鼓勵(lì)基礎(chǔ)好的學(xué)生開卷考試,完成一個(gè)綜合編程題目。經(jīng)過實(shí)踐,參加開卷考試的學(xué)生在獨(dú)立分析問題、解決問題和編程能力上得到了很大提高。
3.2教學(xué)手段
多年以來,成都理工大學(xué)“C/C++語言程序設(shè)計(jì)”課程最大限度地、多方位地應(yīng)用了以下現(xiàn)代教育技術(shù)手段。
1)課堂多媒體理論教學(xué)。
本課程的理論教學(xué)將傳統(tǒng)教學(xué)手段和現(xiàn)代教育技術(shù)手段相結(jié)合,在應(yīng)用現(xiàn)代教育技術(shù)手段的同時(shí),繼續(xù)發(fā)揮傳統(tǒng)教學(xué)的優(yōu)勢(shì)。課堂上多媒體課件的播放效果直接影響到學(xué)生的聽課效果,因此我們不僅制作了幻燈片,還利用Autherware、Flash等工具,制作了具有較強(qiáng)動(dòng)畫效果的多媒體課件,將程序的執(zhí)行過程利用動(dòng)畫演示,生動(dòng)、形象地模擬了計(jì)算機(jī)執(zhí)行程序的真實(shí)情況。
2)建立計(jì)算機(jī)基礎(chǔ)教學(xué)網(wǎng)站。
我們開發(fā)課程網(wǎng)上教學(xué)平臺(tái),為學(xué)生提供電子教案、多媒體課件、視頻等豐富的網(wǎng)上教學(xué)資源,同時(shí)提供討論和在線答疑,構(gòu)建以學(xué)生為中心的自主學(xué)習(xí)環(huán)境。
3)網(wǎng)上考試系統(tǒng)。
網(wǎng)上考試系統(tǒng)為學(xué)生提供了模擬和考試環(huán)境,實(shí)現(xiàn)了系統(tǒng)自動(dòng)組卷和評(píng)分功能,為學(xué)生課后自學(xué)和自測(cè)、提高教學(xué)效果搭建了一個(gè)有效的平臺(tái)。
4 考核方式
課程考核可以采用開卷和閉卷2種形式。
1)閉卷考試由筆試和機(jī)試組成。
(1)筆試(占總成績的50%)主要考核語言基礎(chǔ)、基本的閱讀和編寫程序的能力。題型包括選擇題、填空題、程序閱讀題和程序填空題。
(2)機(jī)試(占總成績50%)主要考核程序設(shè)計(jì)能力,包括上機(jī)考試(占總成績的30%)和平時(shí)出勤及作業(yè)完成情況(占總成績的20%)。
2)開卷考試主要考核學(xué)生綜合程序設(shè)計(jì)的能力,獨(dú)立分析問題和解決問題的能力,難度較大。通常只有學(xué)習(xí)優(yōu)秀的學(xué)生可以參加開卷考試。這些學(xué)生必須是按時(shí)完成了每一次的實(shí)驗(yàn)項(xiàng)目,且中期考試合格。開卷考試要求學(xué)生提供源程序、開卷考試報(bào)告并參加面試。
5 結(jié)語
通過對(duì)各種教學(xué)方法和教學(xué)手段的研究和探索,我們改變了傳統(tǒng)的知識(shí)傳授理念,從而更加注重學(xué)生解決實(shí)際問題的能力,并提出“以學(xué)生為主體,教師為引導(dǎo),網(wǎng)絡(luò)教學(xué)為輔助”的全新理念,極大地激發(fā)了學(xué)生的學(xué)習(xí)興趣,挖掘了學(xué)生的創(chuàng)造潛能,又培養(yǎng)了他們自主研究、協(xié)作學(xué)習(xí)的能力。實(shí)踐證明,通過上述教學(xué)改革措施,教學(xué)效果取得了顯著提高。在計(jì)算機(jī)二級(jí)c語言考試中,學(xué)生通過率較往年大大提升。當(dāng)然,實(shí)際教學(xué)過程是一個(gè)相當(dāng)復(fù)雜的系統(tǒng),也還存在著一些需要解決的問題,還需要我們?cè)诮窈蟮膶?shí)踐中繼續(xù)開拓,不斷探索。
參考文獻(xiàn):
[1]趙珊,賈宗璞,“C語言程序設(shè)計(jì)”課程教學(xué)模式改革方案探討[J],科技資訊,2011(35):185-187。
[2]黃群,C語言程序設(shè)計(jì)課程教學(xué)設(shè)計(jì)探討[J],計(jì)算機(jī)教育,2010(5):78-81。
[3]陳洪超,項(xiàng)目教學(xué)法在“C語言程序設(shè)計(jì)”課程中的應(yīng)用[J],重慶電力高等??茖W(xué)校學(xué)報(bào),2012,17(3):29-30,36。
[4]左永文,案例教學(xué)法在“C語言程序設(shè)計(jì)”課程中的應(yīng)用[J],科技創(chuàng)新導(dǎo)報(bào),2012(18):175-175。
關(guān)鍵詞關(guān)鍵詞:C++;程序設(shè)計(jì); 教學(xué)方法;教學(xué)改革
中圖分類號(hào):G433
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):16727800(2014)002018902
0引言
C++語言廣泛應(yīng)用于基礎(chǔ)軟件、桌面系統(tǒng)、網(wǎng)絡(luò)通信、音頻視頻、游戲娛樂等諸多領(lǐng)域,是世界上使用最廣泛的編程語言之一。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,C/C++技術(shù)在3G網(wǎng)絡(luò)通信、多媒體處理、智能識(shí)別等領(lǐng)域得到了進(jìn)一步的推動(dòng)和發(fā)展。但人才短缺依然制約著行業(yè)的發(fā)展,很多高校都認(rèn)識(shí)到這一點(diǎn),相繼開設(shè)《C++語言程序設(shè)計(jì)》課程,目的在于讓計(jì)算機(jī)專業(yè)的學(xué)生多學(xué)會(huì)一門編程語言,進(jìn)一步培養(yǎng)學(xué)生獨(dú)立思考、分析和解決問題的能力,增加就業(yè)砝碼。然而《C++語言程序設(shè)計(jì)》這門課程學(xué)起來并不容易,不僅有很強(qiáng)的理論性,更具有實(shí)用性,課堂理論教學(xué)和代碼編寫缺一不可。在傳統(tǒng)教學(xué)過程中,由于教學(xué)目標(biāo)不清晰,部分學(xué)生會(huì)質(zhì)疑開設(shè)這門課程的必要性,并且教學(xué)內(nèi)容或教學(xué)方法上的不足,也使得學(xué)生學(xué)起來枯燥,逐漸產(chǎn)生畏難心理。因此,高?!禖++語言程序設(shè)計(jì)課程》的教學(xué)改革勢(shì)在必行。本文根據(jù)多年來的實(shí)際教學(xué)情況和C++培訓(xùn)市場(chǎng)調(diào)研分析,從該課程的教學(xué)目標(biāo)、教學(xué)內(nèi)容以及教學(xué)實(shí)施方法等方面進(jìn)行探索性的改革。
1教學(xué)中存在的普遍問題
1.1學(xué)生無法明確教學(xué)目標(biāo)
以武漢東湖學(xué)院的《計(jì)算機(jī)語言程序設(shè)計(jì)》課程為例,4年的時(shí)間依次開設(shè)了《高級(jí)語言程序設(shè)計(jì)——C》、《面向?qū)ο蟪绦蛟O(shè)計(jì)——Java》、《C++語言程序設(shè)計(jì)》《.net 程序設(shè)計(jì)》4門課程。學(xué)校的出發(fā)點(diǎn)是全面培養(yǎng)學(xué)生的軟件開發(fā)編程能力,不斷提高學(xué)生獨(dú)立思考、分析和解決問題的能力,從而增加學(xué)生就業(yè)砝碼。4門課程跨越不同的教學(xué)學(xué)期,由不同的教師授課,教師如果只關(guān)注自己所授課程,沒能從全局比較分析,學(xué)生很可能無法明確教學(xué)目標(biāo)。
C++語言比較難學(xué),課程教學(xué)中牽涉到的概念比較復(fù)雜、規(guī)則繁多;C++使用靈活、容易出錯(cuò),不少學(xué)生感到學(xué)習(xí)困難;同時(shí)C++是面向?qū)ο蟪绦蛟O(shè)計(jì)語言,但又不是純面向?qū)ο笳Z言,它在過程語言中增加了面向?qū)ο蟮慕Y(jié)構(gòu)。這種特性使得C++語言能夠保持與C語言的兼容。在教學(xué)初期,學(xué)生會(huì)覺得C++很親切,許多C語言代碼不經(jīng)修改就可以為C++語言使用[1]。此時(shí)如果不讓學(xué)生明確學(xué)習(xí)的目標(biāo)和意義,學(xué)生很容易誤解甚至?xí)靡桑簩W(xué)了C為什么還要學(xué)C++,既然不是純面向?qū)ο笳Z言,用Java替代C++不就可以了嗎?這樣,C++語言教學(xué)自然不會(huì)有良好的教學(xué)效果。
1.2教學(xué)內(nèi)容注重語法,課后延伸不多
教學(xué)內(nèi)容更多關(guān)注語法。C++語言同所有算法語言一樣都由自己特定語句組成,每條語句又有自己的一些特定使用規(guī)則[2]。在傳統(tǒng)的《C++語言程序設(shè)計(jì)》課程教學(xué)中,無論是教材還是教師授課,都是先介紹概念,再介紹規(guī)則,最后講解例子。有關(guān)概念規(guī)則的內(nèi)容相對(duì)來說較為枯燥難記,在講授過程中,難以引起學(xué)生的興趣。雖然最后有例子講解,但通常都是彼此孤立的、按章節(jié)對(duì)應(yīng)教學(xué)內(nèi)容的一些小數(shù)學(xué)問題[2],學(xué)生還是很難從中感受到實(shí)際應(yīng)用價(jià)值。
受課程學(xué)時(shí)所限,課程教學(xué)內(nèi)容大多也只能以基本的語法、規(guī)則、小案例形式來呈現(xiàn)。如果課后不加以延伸或適當(dāng)學(xué)習(xí),學(xué)生對(duì)C++的學(xué)習(xí)就只能停留在皮毛。
1.3教學(xué)方法與企業(yè)實(shí)際脫節(jié)
學(xué)生在學(xué)習(xí)《C++語言程序設(shè)計(jì)》課程時(shí),往往有種“只見樹木,不見森林”的感覺。因?yàn)閭鹘y(tǒng)教學(xué)往往都是簡單地按照教材順序循序漸進(jìn)地進(jìn)行,每節(jié)課都會(huì)讓學(xué)生學(xué)習(xí)并記住許多概念和規(guī)則,但他們并不知如何綜合起來解決問題[3]。即使安排大量實(shí)驗(yàn)課,也多是圍繞每個(gè)章節(jié)分散地進(jìn)行相關(guān)概念或者規(guī)則的實(shí)踐。一段時(shí)間后學(xué)生往往對(duì)這門課感到厭倦,學(xué)到的知識(shí)也不足以駕馭實(shí)際項(xiàng)目開發(fā)。
2教學(xué)改革策略
針對(duì)上述現(xiàn)象,本文從以下幾方面探討了對(duì)課程的教學(xué)改革,實(shí)際運(yùn)用中也取得了良好的教學(xué)效果。
2.1明確學(xué)習(xí)目的,激發(fā)學(xué)生的內(nèi)在動(dòng)力
教育心理學(xué)指出,學(xué)習(xí)動(dòng)機(jī)是學(xué)習(xí)活動(dòng)得以發(fā)生、維持進(jìn)行,直到完成的內(nèi)在動(dòng)力?,F(xiàn)代大學(xué)生對(duì)自己的學(xué)習(xí)活動(dòng)、學(xué)習(xí)內(nèi)容以及其對(duì)未來的就業(yè)和發(fā)展十分關(guān)注,如能在課堂教學(xué)初期講清課程的開設(shè)目標(biāo)以及相關(guān)就業(yè)前景,充分重視學(xué)生的這種學(xué)習(xí)動(dòng)機(jī),學(xué)習(xí)效果自然會(huì)提高。例如,在講授《C++語言程序設(shè)計(jì)》課程前,可以收集一些招聘C++語言編程人員的就業(yè)信息及畢業(yè)生從事C++語言編程工作的收入、工作崗位發(fā)展趨勢(shì)等學(xué)生十分關(guān)注的重要信息。到了教學(xué)初期,在講授“什么是C++”時(shí),可穿插著介紹這些信息,并讓學(xué)生知道“C++語言廣泛應(yīng)用于基礎(chǔ)軟件、桌面系統(tǒng)、網(wǎng)絡(luò)通信、音頻視頻、游戲娛樂等諸多領(lǐng)域。目前,企業(yè)招牌C++軟件開發(fā)工程的數(shù)量占軟件開發(fā)工程師總量的1/3左右,薪水居高不下。要盡快使每個(gè)學(xué)生明確即將學(xué)習(xí)的知識(shí)與社會(huì)的關(guān)系,因人而異地幫助學(xué)生找到各自的學(xué)習(xí)目標(biāo),激發(fā)學(xué)生的內(nèi)在動(dòng)力。
2.2教學(xué)內(nèi)容注重從整體到具體,再從具體到整體
雖然教材的編排大都按照先概念、再規(guī)則、最后舉例這一順序,但由于其間知識(shí)的分散性,彼此缺乏聯(lián)系,使學(xué)生不能體會(huì)一個(gè)完整的編程過程。在教學(xué)中,應(yīng)注重教學(xué)內(nèi)容從整體到具體,再從具體到整體,使學(xué)生通過一個(gè)完整案例先快速了解C++語言程序設(shè)計(jì)的全過程,然后增添程序設(shè)計(jì)的教學(xué)內(nèi)容,具體分析實(shí)現(xiàn)步驟中的各個(gè)知識(shí)點(diǎn),學(xué)習(xí)更高標(biāo)準(zhǔn)和要求的程序,最后學(xué)生在學(xué)完所有知識(shí)點(diǎn)后完成一個(gè)完整的設(shè)計(jì)。這種思路特別適合程序設(shè)計(jì)類的其它課程。
2.3教學(xué)方法注重同中求異、異中求同
這樣可使學(xué)生學(xué)會(huì)抓住事物的本質(zhì)特點(diǎn),加深對(duì)事物的理解,有利于培養(yǎng)學(xué)生的創(chuàng)造性思維。為了能使學(xué)生的學(xué)習(xí)更深入,采用對(duì)比的方法進(jìn)行教學(xué),可以達(dá)到很好的教學(xué)效果。例如,學(xué)生在學(xué)習(xí)C++語言時(shí)可以拿它與C語言作比較,C++程序語言與C語言在程序設(shè)計(jì)思路上存在著不同:一個(gè)是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,將數(shù)據(jù)與數(shù)據(jù)方法捆綁在一起;一個(gè)是面向過程的程序設(shè)計(jì)語言,由上至下,采用分模塊方式。但兩者之間的共同之處也比較多,C++語言是對(duì)C語言的改進(jìn)與擴(kuò)充,是C語言的一個(gè)超集,它保持了對(duì)C語言的兼容,也即在C語言中使用的命令,可以直接在C++中使用。通過比較,學(xué)生更能體會(huì)到教學(xué)的目的性。
2.4校企聯(lián)合,模擬職前培訓(xùn)
計(jì)算機(jī)專業(yè)的畢業(yè)生為了快速就業(yè),有時(shí)會(huì)選擇到培訓(xùn)機(jī)構(gòu)進(jìn)行職前培訓(xùn)。培訓(xùn)并不意味著一定就業(yè)或高薪,關(guān)鍵還是看學(xué)生。高校進(jìn)行《C++語言程序設(shè)計(jì)》課程教學(xué)時(shí),如能實(shí)現(xiàn)校企聯(lián)合,在后期的實(shí)踐環(huán)節(jié)注入培訓(xùn)機(jī)構(gòu)的授課法,即通過多個(gè)項(xiàng)目讓學(xué)生掌握C++的軟件開發(fā)技能,將大量的開發(fā)經(jīng)驗(yàn)融入教學(xué);并且,每學(xué)完一個(gè)專題就配一個(gè)項(xiàng)目實(shí)戰(zhàn),最后完成一個(gè)即時(shí)通信或多媒體音/視頻項(xiàng)目,積累開發(fā)經(jīng)驗(yàn),模擬職前培訓(xùn),對(duì)學(xué)生能力的提高大有益處。
3結(jié)語
本文提出了《C++語言程序設(shè)計(jì)》課程的教學(xué)改革思路,即通過改善教學(xué)方法,調(diào)整教學(xué)內(nèi)容,真正以激發(fā)學(xué)生學(xué)習(xí)興趣為導(dǎo)向,校企聯(lián)合或者注入培訓(xùn)機(jī)構(gòu)的授課法模擬職前培訓(xùn),讓學(xué)生積累開發(fā)經(jīng)驗(yàn)。教學(xué)實(shí)踐證明,這些教學(xué)改革舉措在一定程度上能夠提高教學(xué)效果,同時(shí)其非常適用于其它編程語言課程的學(xué)習(xí)。
參考文獻(xiàn):
[1]楊庚.面向?qū)ο蟪绦蛟O(shè)計(jì)與C++語言[M].北京:人民郵電出版社,2006.
關(guān)鍵詞:C++;課程研究;教材建設(shè);負(fù)反饋教學(xué)
1C++教材建設(shè)現(xiàn)狀
C++語言是兼容C語言的面向?qū)ο蟪绦蛟O(shè)計(jì)語言,隨著軟件工程技術(shù)和面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù)的發(fā)展,迅速成為主流的面向過程和面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是編寫系統(tǒng)軟件和應(yīng)用軟件的通用語言,也是各類高校,尤其是理工類和綜合性高校開設(shè)高級(jí)語言程序設(shè)計(jì)課程的首選教學(xué)語言之一,同時(shí)也是非計(jì)算機(jī)專業(yè)計(jì)算機(jī)等級(jí)考試和計(jì)算機(jī)專業(yè)程序員水平與資格考試指定語種之一,其影響廣泛而深遠(yuǎn)。C++程序設(shè)計(jì)課程(以下簡稱C++課程)也因此成為國內(nèi)外高校普遍開設(shè)的計(jì)算機(jī)基礎(chǔ)課程。它不僅是一門程序設(shè)計(jì)課程,而且是許多專業(yè)課程(如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、微機(jī)原理,單片機(jī)及應(yīng)用)的重要基礎(chǔ),更是這些專業(yè)開展計(jì)算機(jī)研究、應(yīng)用和綜合運(yùn)用本專業(yè)知識(shí)的重要表達(dá)工具和開發(fā)工具。它的基礎(chǔ)性、普遍性和重要性逐步為人認(rèn)識(shí)和重視。國外高校比較重視該課程建設(shè),從原版影印教材可見一斑。國內(nèi)高校講授該課程較晚,課程建設(shè)也較晚,現(xiàn)有教材狀況可分下列幾類。
1) 英文影印版。主要用于高校圖書館館藏、教學(xué)參考和高校雙語教學(xué)試點(diǎn),如高等教育出版社影印出版的《The C++ Programming Language》(BjarneStroustrup著)和《Programming in C++》(Nell Dale,Chip Weems和Mark Headington著)。由于國外高校課程體系與國內(nèi)高校有較大差別,且國外高校的教學(xué)課程通常只指定教學(xué)參考書而不指定教材,因此,若把這些教學(xué)參考書當(dāng)教材使用,必然使主講教師所講內(nèi)容與所選教材吻合度較差,很難發(fā)揮教材應(yīng)有的作用。
2) 英文編著版。這類教材是指由高校主講教師依據(jù)本校雙語教學(xué)試點(diǎn)要求和/或合作辦學(xué)要求自編,目前尚處于探索階段。
3) 編譯版。這類教材是指引進(jìn)國外經(jīng)典C++教材,翻譯成中文,在國內(nèi)銷售的教材,如Harvey M.Deitel, Paul James Deitel編著的《C++ How to Program》分別由清華大學(xué)出版社出版(名為《C++程序設(shè)計(jì)教程》,施平安譯)及電子工業(yè)出版社出版(名為《C++大學(xué)教程》,邱仲潘等譯)。由于翻譯質(zhì)量、閱讀習(xí)慣、價(jià)格、教材配套、課程體系等方面的問題,通常用作教學(xué)參考和圖書館館藏,很少用作教材。
4) 中文編著版。這類教材量大面廣,通常由高校主講教師(如南京理工大學(xué)張?jiān)佬?浙江工業(yè)大學(xué)錢能,清華大學(xué)鄭莉,西安交通大學(xué)羅建軍,華南理工大學(xué)周靄如,北京大學(xué)呂鳳翥等)結(jié)合本校實(shí)際編寫。編寫思路多,如有的以算法為主、有的以語法為主、有的先講面向過程程序設(shè)計(jì)后講面向?qū)ο蟪绦蛟O(shè)計(jì)、有的自始至終貫徹面向?qū)ο蟪绦蛟O(shè)計(jì)思想,還有的參照國外教材的編排體系等。但上述教材或多或少存在一些不足,如起點(diǎn)高、跨度大、系統(tǒng)性不強(qiáng)、急于闡述C++的新進(jìn)展等,對(duì)實(shí)驗(yàn)、學(xué)習(xí)、課程設(shè)計(jì)指導(dǎo)等重視不夠,不一定滿足其他學(xué)校的教學(xué)要求。
2C++教材建設(shè)思路
C++課程是各類高校普遍開設(shè)的計(jì)算機(jī)核心基礎(chǔ)課程,應(yīng)用廣、影響大。與歐美發(fā)達(dá)國家高校相比,我國高校生平均教學(xué)資源占有率嚴(yán)重偏低,尤其是可用的C++課程教學(xué)參考資料較少,因此,教材在我國既是知識(shí)的載體,又是教學(xué)的工具,對(duì)保障教學(xué)質(zhì)量顯得格外重要。與傳統(tǒng)教材相比,C++課程教材的內(nèi)容廣,理論性、實(shí)踐性和綜合性強(qiáng),更新速度快,成熟意味著過時(shí),教材作者新人輩出,教材種類多、更新快、問題也多。因此,C++課程教材改革與建設(shè)有其自身的顯著特點(diǎn)。
C++課程理論教學(xué)和實(shí)驗(yàn)教學(xué)并重,學(xué)以致用,以通過編程解決實(shí)際問題為目標(biāo);課程內(nèi)容涉及基本語法、基本算法、基本數(shù)據(jù)結(jié)構(gòu)、編程思想、編程技巧和程序調(diào)試技術(shù)等,綜合性、實(shí)踐性強(qiáng),理論與實(shí)踐結(jié)合緊密;實(shí)驗(yàn)編程環(huán)境極其嚴(yán)格,結(jié)果要求百分之百正確,對(duì)培養(yǎng)大學(xué)生編程能力、創(chuàng)新能力和嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng)有非常重要的作用。
好的C++程序設(shè)計(jì)教材首先應(yīng)以長期持續(xù)的課程建設(shè)為依托,以堅(jiān)實(shí)的教學(xué)研究和教學(xué)實(shí)踐為基礎(chǔ),體現(xiàn)課程建設(shè)成果;其次應(yīng)結(jié)合自身實(shí)際,分析研究C++課程的目標(biāo)、特點(diǎn)、內(nèi)容、結(jié)構(gòu)及與其他課程的關(guān)系,在教材的編寫思路、框架結(jié)構(gòu)和教學(xué)內(nèi)容的組織、取舍、闡述、更新、難點(diǎn)處理等諸多方面有所改進(jìn)和創(chuàng)新,注重學(xué)生實(shí)際編程能力培養(yǎng)和創(chuàng)新能力培養(yǎng);再次應(yīng)符合讀者的認(rèn)識(shí)規(guī)律和編程能力的形成規(guī)律,既便于自學(xué)和教學(xué),又利于教學(xué)效果的鞏固和教學(xué)質(zhì)量的提高;最后還應(yīng)有必要的優(yōu)質(zhì)的配套教學(xué)資源。
3C++課程建設(shè)歷程
我校于1998年在計(jì)算機(jī)專業(yè)首先開設(shè)C++課程,2000年擴(kuò)展到電子信息工程、電子科學(xué)與技術(shù)、通信工程、電氣工程、自動(dòng)化、信息計(jì)算、信息系統(tǒng)與信息管理等非計(jì)算機(jī)專業(yè)。目前課程規(guī)模年均近2000人。
基于C++課程的基礎(chǔ)性和重要性,2000年在校教務(wù)部門和院領(lǐng)導(dǎo)的指導(dǎo)和支持下,專門成立了以具有豐富教學(xué)經(jīng)驗(yàn)和實(shí)際編程經(jīng)驗(yàn)的教師為主體的C++教學(xué)研究小組(以下簡稱教研組),并設(shè)立課程負(fù)責(zé)人,使課程的教學(xué)、研究、建設(shè)和管理步入持續(xù)不斷的良性發(fā)展軌道。
十多年來,教研組結(jié)合我校實(shí)際,對(duì)C++課程的特點(diǎn)、內(nèi)容、結(jié)構(gòu)、方法及與其他課程的關(guān)系等方面做了大量研究工作,以提高教學(xué)質(zhì)量為首要目標(biāo),改進(jìn)教學(xué)方法,形成了一整套針對(duì)該課程實(shí)際的教學(xué)理論和教學(xué)方法,即C++課程負(fù)反饋教學(xué)法,并編寫了大量具有負(fù)反饋教學(xué)法特色的教學(xué)材料,采取了一系列的教改措施,使該課程的教學(xué)質(zhì)量得到明顯的提高,為本課程的精品化建設(shè)奠定了堅(jiān)實(shí)基礎(chǔ)。
3.1積極穩(wěn)妥推進(jìn)教學(xué)方法改革,形成頗具特色的負(fù)反饋教學(xué)法[1-3]
課題組根據(jù)多年教學(xué)研究與實(shí)踐,在教育學(xué)和心理學(xué)的基礎(chǔ)上,用現(xiàn)代過程控制理論分析傳統(tǒng)教學(xué)過程,于2002年建立負(fù)反饋教學(xué)模型(如圖1所示)。由于模型引入了負(fù)反饋環(huán)節(jié),從理論上可以確保教學(xué)質(zhì)量的穩(wěn)定。在負(fù)反饋教學(xué)模型基礎(chǔ)上,吸收單元教學(xué)法、布魯納的“發(fā)現(xiàn)教學(xué)法”和瓦根舍因的“范例教學(xué)法”的合理成分,形成負(fù)反饋教學(xué)法,在我校C++課程教學(xué)實(shí)踐中,取得了較好的教學(xué)效果。
負(fù)反饋教學(xué)法的原理是從教學(xué)過程中反饋(作業(yè)、實(shí)驗(yàn)、答疑、單元測(cè)驗(yàn)等)的問題入手,通過及時(shí)講評(píng),解決學(xué)生學(xué)習(xí)中存在的各種問題,以達(dá)到預(yù)期的教學(xué)目標(biāo)。由于反饋的是教學(xué)過程中存在的問題,故稱此方法為負(fù)反饋教學(xué)法。負(fù)反饋教學(xué)法包括以下4個(gè)主要方面。
1) 教學(xué)內(nèi)容單元化組織。
按程序設(shè)計(jì)方法演進(jìn)發(fā)展的自然順序及C++實(shí)際編程能力形成的3個(gè)關(guān)鍵期,即結(jié)構(gòu)化程序設(shè)計(jì)模塊程序設(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì),將C++教學(xué)內(nèi)容組織為3個(gè)單元,有利于教學(xué)的組織、實(shí)施、考核,有利于教學(xué)效果的鞏固和教學(xué)質(zhì)量的提高。
2) 用“范例”組織課堂教學(xué),貫徹“發(fā)現(xiàn)式”教學(xué)思想,注重學(xué)生創(chuàng)新素質(zhì)和優(yōu)秀人才的培養(yǎng)。
范例教學(xué)法由教育學(xué)家瓦根舍因(M.Wagenshein)提出,教師通過范例輔助學(xué)生理解、掌握知識(shí)和原理,其目的是讓學(xué)生能夠獨(dú)立地獲得判斷能力、推理能力、認(rèn)識(shí)能力和繼續(xù)學(xué)習(xí)的能力。以往,程序設(shè)計(jì)課程教學(xué)通常以一門具體語言為主線,圍繞語法知識(shí)展開。而實(shí)質(zhì)上,設(shè)計(jì)程序是為了解決實(shí)際問題,是一種縝密思維方式、創(chuàng)新素質(zhì)和綜合能力的培養(yǎng),要使學(xué)生對(duì)程序設(shè)計(jì)有興趣,必須使他們親自感受并體驗(yàn)程序設(shè)計(jì)的無限魅力。為此,我們改用范例組織本課程的課堂教學(xué)。在多媒體教學(xué)設(shè)備和真實(shí)編程環(huán)境的支持下,課堂教學(xué)以程序(范例)為主線。所選范例程序具有典型性、綜合性和可擴(kuò)展性,涉及基本語法、基本算法和基本調(diào)試技術(shù)。范例程序的講解首先符合“現(xiàn)象發(fā)現(xiàn)問題分析問題解決問題驗(yàn)證”的探索過程,使學(xué)生掌握基本語法、算法及應(yīng)用;其次,通過對(duì)范例程序的啟發(fā)式擴(kuò)展,揭示程序由小到大、由簡單到復(fù)雜直到實(shí)用的過程,激發(fā)學(xué)生的探索熱情和興趣,使學(xué)生掌握知識(shí)間的聯(lián)系和編程的工程化思想,獲得實(shí)際編程能力。
3) 采集教學(xué)負(fù)反饋信息,做好分類、分析和講評(píng),注重學(xué)生整體水平。
按負(fù)反饋教學(xué)法要求,任課教師做好作業(yè)和實(shí)驗(yàn)報(bào)告抽樣批改、單元測(cè)驗(yàn)的全樣批改,重視實(shí)驗(yàn)指導(dǎo)和答疑。在獲取足夠的負(fù)反饋信息后,任課教師及時(shí)做好問題的分類、分析和講評(píng),以保證學(xué)生整體水平的提高。
4) 根據(jù)大班教學(xué)特點(diǎn),推進(jìn)強(qiáng)同步教學(xué)策略,確保整體效果。
大班教學(xué)成功的關(guān)鍵在于保持教學(xué)的師生同步狀態(tài)。負(fù)反饋教學(xué)法的師生同步措施有:授課、作業(yè)、實(shí)驗(yàn)、講評(píng)和測(cè)驗(yàn)。其中,作業(yè)與實(shí)驗(yàn)報(bào)告同步效果欠佳,其原因是大班教學(xué)學(xué)生抄襲現(xiàn)象較為普遍,因此,作業(yè)與實(shí)驗(yàn)報(bào)告為弱同步措施;授課、講評(píng)與測(cè)驗(yàn)同步效果較好,為強(qiáng)同步措施。為使大班教學(xué)取得較好的效果,采用強(qiáng)同步措施是必要的。我們?cè)诿總€(gè)單元結(jié)束時(shí)安排一次測(cè)驗(yàn),以實(shí)現(xiàn)師生的強(qiáng)同步,及時(shí)取得真實(shí)的負(fù)反饋信息。
由于采用負(fù)反饋教學(xué)法,所以課堂教學(xué)可以突出重點(diǎn)和難點(diǎn),而將易于自學(xué)的內(nèi)容只做要求不做講解,這樣,一方面解決了課時(shí)少與內(nèi)容多、難點(diǎn)多的矛盾,另一方面也提高了學(xué)生的自學(xué)能力和自我解決問題的能力。
3.2強(qiáng)化實(shí)踐教學(xué),注重培養(yǎng)學(xué)生的實(shí)際編程能力和創(chuàng)新能力[1-3]
C++課程難點(diǎn)多、綜合性,主要涉及基本語法、基本算法、基本操作及綜合應(yīng)用等方面內(nèi)容。
實(shí)驗(yàn)是本課程至關(guān)重要的環(huán)節(jié),學(xué)生只有通過實(shí)驗(yàn)才能檢驗(yàn)自己是否真正掌握和運(yùn)用該語言:通過上機(jī)調(diào)試程序,會(huì)發(fā)現(xiàn)很多想不到的問題;通過解決這些問題,可以加深對(duì)語言和算法的理解、提高程序調(diào)試能力、實(shí)際編程能力和創(chuàng)新能力。為此,本課程設(shè)有課內(nèi)實(shí)驗(yàn)和課程設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)。
1) 課內(nèi)實(shí)驗(yàn)注重培養(yǎng)學(xué)生基本調(diào)試能力和基本編程能力。
基本調(diào)試能力是學(xué)生通過深入學(xué)習(xí)取得實(shí)際編程能力的前提,常被人忽視。因此,我們根據(jù)教學(xué)內(nèi)容編寫了一套以調(diào)試技術(shù)、基本語法、基本算法、綜合編程為核心內(nèi)容的同步實(shí)驗(yàn)指導(dǎo),共擬定了17個(gè)實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)通常包括調(diào)試題、編程題和選做題,可供不同層次的學(xué)生選用。
2) 課程設(shè)計(jì)注重培養(yǎng)學(xué)生綜合編程能力。
C++課程設(shè)計(jì)以綜合性程序設(shè)計(jì)訓(xùn)練為主,選題具有典型性、綜合性和示范性,突出難點(diǎn)及其實(shí)用價(jià)值,使學(xué)生體會(huì)到難點(diǎn)不難,而且感到難點(diǎn)在實(shí)際編程中非常有用。學(xué)生通過訓(xùn)練進(jìn)一步鞏固和掌握基本語法、基本算法和基本調(diào)試技術(shù),養(yǎng)成良好程序設(shè)計(jì)風(fēng)格(模塊化、結(jié)構(gòu)化)和嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),初步形成軟件工程化思想,并具有一定的程序組織能力。
C++課程設(shè)計(jì)的內(nèi)容包括基本算法和數(shù)據(jù)結(jié)構(gòu)的綜合運(yùn)用。其中,基本算法涉及窮舉、迭代、遞推、遞歸、排序和查找等,數(shù)據(jù)結(jié)構(gòu)涉及數(shù)組、結(jié)構(gòu)、指針、動(dòng)態(tài)內(nèi)存分配、單向鏈表、類、文件等。
3) 強(qiáng)化實(shí)踐教學(xué)輔導(dǎo)和考核,確保實(shí)踐教學(xué)質(zhì)量。
實(shí)踐環(huán)節(jié)實(shí)行教師輔導(dǎo)、答疑和考核。課內(nèi)實(shí)驗(yàn)實(shí)踐環(huán)節(jié)主要涉及預(yù)習(xí)情況檢查、輔導(dǎo)情況記錄、實(shí)驗(yàn)報(bào)告批閱和典型問題講評(píng),課程設(shè)計(jì)實(shí)踐環(huán)節(jié)主要涉及預(yù)習(xí)情況檢查、輔導(dǎo)情況記錄、聯(lián)機(jī)考核和課程設(shè)計(jì)報(bào)告批閱。對(duì)于課程設(shè)計(jì)考核,每位學(xué)生的聯(lián)機(jī)考核時(shí)間約5~10分鐘,考核內(nèi)容包括講解和演示自編程序,回答老師提問(3~5個(gè))。通過采取上述措施,實(shí)踐教學(xué)質(zhì)量得到充分保障。
4) 及時(shí)總結(jié)和推廣實(shí)踐教學(xué)經(jīng)驗(yàn)。
根據(jù)教師多年的實(shí)際編程經(jīng)驗(yàn)和教學(xué)經(jīng)驗(yàn),編印典型問題和綜合問題編程專題,供學(xué)生課外閱讀參考,便于學(xué)生突破難點(diǎn),融會(huì)貫通,體驗(yàn)綜合編程的樂趣,培養(yǎng)他們分析和解決問題的能力。
3.3積極開展教學(xué)內(nèi)容研究,及時(shí)更新教學(xué)內(nèi)容
根據(jù)程序設(shè)計(jì)課程本身發(fā)展快、更新快、綜合性強(qiáng)、存在問題多的特點(diǎn),針對(duì)同類教材中普遍存在的問題和不足,積極開展教學(xué)內(nèi)容的研究,確保教學(xué)內(nèi)容的正確性和系統(tǒng)性,確保將重點(diǎn)難點(diǎn)內(nèi)容講清講透,先后發(fā)表教學(xué)內(nèi)容研究論文20多篇。代表性論文有:C++運(yùn)算符重載教學(xué)和編程中易被忽視的問題、C++語言引用型變量的實(shí)現(xiàn)機(jī)制淺析、C/C++語言可變參數(shù)函數(shù)的參數(shù)傳遞機(jī)制剖析、C/C++中數(shù)組與指針的關(guān)系、C++中二維數(shù)組與指針關(guān)系的深入剖析、C++迭代器機(jī)制剖析、C++標(biāo)準(zhǔn)模板庫與代碼重用。
4C++教材建設(shè)成果
教研組根據(jù)對(duì)國內(nèi)外流行C++教材的研究分析和試用,結(jié)合我校非計(jì)算機(jī)專業(yè)計(jì)算機(jī)基礎(chǔ)教學(xué)改革、計(jì)算機(jī)專業(yè)教學(xué)改革和課程建設(shè)的實(shí)際,積極穩(wěn)妥地開展體現(xiàn)負(fù)反饋教學(xué)特色的系列教材的編寫和出版工作。
2005年2月,教研組自編教材《Visual C++程序設(shè)計(jì)習(xí)題、實(shí)驗(yàn)與編程實(shí)踐》由華東理工大學(xué)出版社出版,同年12月第二次印刷,累計(jì)印刷3次,得到了社會(huì)讀者的認(rèn)同。2005年10月,我校C++課程獲江蘇省高等學(xué)校精品教材立項(xiàng)建設(shè),在清華大學(xué)出版社的支持下,于2007年2月主編出版教材《C++程序設(shè)計(jì)實(shí)踐教程》(含教學(xué)課件),累計(jì)印刷3次;在高等教育出版社的支持下,于2007年11月主編出版教材《C++程序設(shè)計(jì)教程》(含教學(xué)課件)和《C++程序設(shè)計(jì)實(shí)驗(yàn)與編程實(shí)踐》。
教材的配套建設(shè)充分發(fā)揮了教材的作用,滿足了我校教學(xué)需要。其中,《C++程序設(shè)計(jì)教程》和《C++程序設(shè)計(jì)實(shí)驗(yàn)與編程實(shí)踐》主要用于我校計(jì)算機(jī)專業(yè)教學(xué),《C++程序設(shè)計(jì)實(shí)踐教程》和《Visual C++程序設(shè)計(jì)習(xí)題、實(shí)驗(yàn)與編程實(shí)踐》主要用于我校非計(jì)算機(jī)專業(yè)教學(xué)。
下面簡要介紹教研組近年主編出版的C++課程系列教材的特點(diǎn)。
4.1 《C++程序設(shè)計(jì)教程》及其配套教材[4-5]
1) 內(nèi)容組織結(jié)構(gòu)合理,層次分明。教材按程序設(shè)計(jì)方法演進(jìn)發(fā)展的自然順序及C++實(shí)際編程能力形成的三個(gè)關(guān)鍵期,將C++教學(xué)內(nèi)容分為三大單元,即結(jié)構(gòu)化程序設(shè)計(jì)(1~4章)模塊化程序設(shè)計(jì)(5~9章)面向?qū)ο蟪绦蛟O(shè)計(jì)(10~14章)。內(nèi)容組織由淺入深,循序漸進(jìn),符合讀者的認(rèn)識(shí)規(guī)律和編程能力的形成規(guī)律,便于教學(xué)的組織、實(shí)施和考核,利于教學(xué)效果的鞏固和教學(xué)質(zhì)量的提高。
2) 緊跟標(biāo)準(zhǔn),內(nèi)容求新。本書介紹的是標(biāo)準(zhǔn)C++,符合ANSI/ISO C++標(biāo)準(zhǔn)(包括1998第一版和2003第二版),引導(dǎo)讀者按C++標(biāo)準(zhǔn)編寫程序。本書對(duì)以往教材中帶有一定普遍性的問題如“指針就是地址,地址就是指針”等進(jìn)行了澄清和糾正。
3) 不避難點(diǎn),力求突破。許多有一定基礎(chǔ)的讀者學(xué)習(xí)程序設(shè)計(jì)半途而廢的重要原因之一是未能突破實(shí)際編程中的難點(diǎn)問題,這與不少主流教材以各種理由極力回避難點(diǎn)有密切的關(guān)系。本書針對(duì)教學(xué)和實(shí)際編程中的難點(diǎn)(如遞歸、指針、動(dòng)態(tài)內(nèi)存分配、虛函數(shù)等),精挑多選范例程序,想方設(shè)法講清講透,力求使讀者突破難點(diǎn),學(xué)以致用,不致半途而廢。
4) 范例程序,精心設(shè)計(jì)。程序是語法、算法、思想和方法有機(jī)結(jié)合的載體,是計(jì)算機(jī)解決實(shí)際問題的鑰匙,學(xué)習(xí)程序設(shè)計(jì)離不開程序。書中大量的范例程序是經(jīng)過作者精心挑選和精心設(shè)計(jì)的,表達(dá)準(zhǔn)確、簡練,書寫規(guī)范,示范性強(qiáng)。
配套教材《C++程序設(shè)計(jì)實(shí)驗(yàn)與編程實(shí)踐》分三部分:
1) 實(shí)驗(yàn)指導(dǎo)。實(shí)驗(yàn)與課堂教學(xué)同步進(jìn)行,是本課程至關(guān)重要的環(huán)節(jié)。共20個(gè)實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)通常包括調(diào)試題、編程題和選做題,供不同層次讀者選用。
2) 典型問題和綜合問題編程。列舉實(shí)際編程中提煉的典型和綜合問題的編程范例,突出難點(diǎn)及其實(shí)用價(jià)值,使讀者體會(huì)到難點(diǎn)不難,難點(diǎn)在實(shí)際編程中非常有用。所列范例程序涉及程序的結(jié)構(gòu)化書寫格式、程序由小到大、由簡單到復(fù)雜直到實(shí)用的過程。
3)Visual C++ 6.0程序調(diào)試技術(shù)。這部分內(nèi)容幫助讀者熟練掌握主流的C++開發(fā)環(huán)境Visual C++ 6.0的程序調(diào)試技術(shù),使他們具備主動(dòng)上機(jī)調(diào)試程序的能力。
4.3 《C++程序設(shè)計(jì)實(shí)踐教程》[6]
1) 內(nèi)容組織原則與4.2一致。
2) 內(nèi)容取舍上,根據(jù)閱讀對(duì)象為高校理工類專業(yè)的一年級(jí)新生的實(shí)際,注重基礎(chǔ)和系統(tǒng),兼顧提高。內(nèi)容包括:結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ)(C++概述、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、簡單的輸入輸出、算法及其表示、流程控制)、模塊化程序設(shè)計(jì)(函數(shù)、編譯預(yù)處理、數(shù)組、結(jié)構(gòu)體、共用體、枚舉類型、指針和引用)和面向?qū)ο蟪绦蛟O(shè)計(jì)(類、對(duì)象、繼承、派生、友元、虛函數(shù)、運(yùn)算符重載、I/O流類庫、模板、異常處理、命名空間等)。
3) 編寫思路上,通過以基本語法和基本算法為主線的典型、綜合范例程序,適時(shí)闡述有關(guān)程序設(shè)計(jì)的思想、方法和技巧,將C++語法、基本算法和程序設(shè)計(jì)方法有機(jī)結(jié)合起來,理論聯(lián)系實(shí)際,注重學(xué)生實(shí)際編程能力培養(yǎng)。
4) 內(nèi)容闡述上,注重概念準(zhǔn)確、由淺入深、循序漸進(jìn)、圖文并茂、簡明扼要、舉一反三、用例精練,便于教學(xué)和自學(xué)。范例程序表達(dá)簡潔,書寫規(guī)范,示范性強(qiáng)。
5) 難點(diǎn)處理上,不回避教學(xué)和實(shí)際編程中的難點(diǎn),并適時(shí)提出擴(kuò)展性問題,激發(fā)學(xué)生的探索熱情和興趣,利于創(chuàng)新人才培養(yǎng)。
6) 內(nèi)容的更新上,及時(shí)反映C++程序設(shè)計(jì)課程的教學(xué)研究成果,對(duì)以往教材中帶有一定普遍性的問題如“引用型變量不占內(nèi)存”等進(jìn)行了澄清和糾正。
7) 配套的教學(xué)資源上,豐富、實(shí)用,包括實(shí)驗(yàn)與編程指導(dǎo)、學(xué)習(xí)指導(dǎo)、課程設(shè)計(jì)指導(dǎo)、電子教案、試卷庫和課程網(wǎng)站等。
8) 教學(xué)的試點(diǎn)上,校內(nèi)試用多年,幾經(jīng)調(diào)整,起點(diǎn)低,教學(xué)效果好。
4.4 《Visual C++程序設(shè)計(jì)習(xí)題、實(shí)驗(yàn)與編程實(shí)踐》[7]
1) 學(xué)習(xí)指導(dǎo)。根據(jù)非計(jì)算機(jī)專業(yè)計(jì)算機(jī)等級(jí)考試要求,按章編排了相應(yīng)具有較強(qiáng)啟發(fā)性的典型例題和習(xí)題。為取得較好學(xué)習(xí)效果,按C++實(shí)際編程能力形成的三個(gè)關(guān)鍵期,共設(shè)置了三個(gè)單元測(cè)驗(yàn)。單元測(cè)驗(yàn)的內(nèi)容突出重點(diǎn)和難點(diǎn)以及綜合運(yùn)用,目的是及時(shí)發(fā)現(xiàn)并解決教學(xué)中存在的問題。
2) 實(shí)驗(yàn)指導(dǎo)。共有17個(gè)實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)包含調(diào)試技術(shù)介紹、程序調(diào)試題、程序設(shè)計(jì)題和選做題,注重培養(yǎng)學(xué)生的編程能力和調(diào)試能力,強(qiáng)化其實(shí)際編程能力訓(xùn)練,激發(fā)其編程興趣。
3) 典型問題和綜合問題編程。共8個(gè)專題,便于學(xué)生突破難點(diǎn),融會(huì)貫通,體驗(yàn)綜合編程的樂趣,培養(yǎng)他們分析和解決問題的能力。
4) 二級(jí)考試模擬試卷。
5)VC++ 6.0程序調(diào)試技術(shù),包括使用VC++ 6.0 IDE編寫和調(diào)試程序的方法和技巧。
5結(jié)語
十多年來,教研組圍繞C++課程,潛心教學(xué)、研究、建設(shè)和積累,形成了頗具特色的負(fù)反饋教學(xué)法,發(fā)表相關(guān)教學(xué)論文20多篇,出版教材4部,建成1門省級(jí)精品課程(《Visual C++程序設(shè)計(jì)》)、1部省級(jí)精品教材(《C++程序設(shè)計(jì)教程》)和1個(gè)校級(jí)優(yōu)秀教學(xué)團(tuán)隊(duì),取得中國交通教育研究會(huì)2007-2009年度優(yōu)秀成果一等獎(jiǎng)(《C++程序設(shè)計(jì)實(shí)踐教程》)1項(xiàng),獲得第十屆“挑戰(zhàn)杯”全國大學(xué)生課外科技作品競(jìng)賽全國二等獎(jiǎng)等5項(xiàng)省級(jí)以上獎(jiǎng)勵(lì)。
精品教材建設(shè)是一個(gè)長期過程,我們將繼續(xù)沿著自底向上的建設(shè)路徑,及時(shí)總結(jié)C++教材建設(shè)的經(jīng)驗(yàn),認(rèn)真做好特色系列教材的編寫、重印、修訂、再版和配套建設(shè),進(jìn)一步提升教材建設(shè)的層次,不斷擴(kuò)大C++教材在校內(nèi)、省內(nèi)和國內(nèi)的受益面。
參考文獻(xiàn):
[1] 陳建平,劉維富,王春明,等. Visual C++程序設(shè)計(jì)課程建設(shè)研究與實(shí)踐[J]. 計(jì)算機(jī)教育,2007(12):18-20.
[2] 劉維富,陳建平,王春明,等. 淺談“C++程序設(shè)計(jì)”課程的建設(shè)與實(shí)踐[C]//大學(xué)計(jì)算機(jī)課程報(bào)告論壇組委會(huì). 大學(xué)計(jì)算機(jī)課程報(bào)告論壇論文集2006. 北京:高等教育出版社,2007:92-97.
[3] 顧暉,劉維富,管致錦,等. 負(fù)反饋教學(xué)法的原理與實(shí)踐[J]. 電氣電子教學(xué)學(xué)報(bào),2004(4):102-104.
[4] 陳建平,劉維富,葛建芳. C++程序設(shè)計(jì)教程[M]. 北京:高等教育出版社,2007:前言.
[5] 劉維富,葛建芳. C++程序設(shè)計(jì)實(shí)驗(yàn)與編程實(shí)踐[M]. 北京:高等教育出版社,2007:前言
[6] 劉維富,陳建平,葛建芳,等. C++程序設(shè)計(jì)實(shí)踐教程[M]. 北京:清華大學(xué)出版社,2007:前言.
[7] 劉維富,丁衛(wèi)平,沈?qū)W華,等. Visual C++程序設(shè)計(jì)習(xí)題、實(shí)驗(yàn)與編程實(shí)踐[M]. 上海:華東理工大學(xué)出版社,2005:前言.
C++ Programming Course Research and Textbook Construction
LIU Wei-fu, CHEN Jian-ping, WANG Chun-ming, GE Jian-fang, QIU Jian-lin, GU Hui
(Computer School of Science and Technology, Nantong University, Nantong 226019, China )
關(guān)鍵詞:《C語言程序設(shè)計(jì)》;教材建設(shè);教學(xué)改革;教學(xué)模式
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2007)04-11170-02
1 引言
程序設(shè)計(jì)作為計(jì)算機(jī)等有關(guān)專業(yè)必修的一門重要的專業(yè)技術(shù)課程,是信息系統(tǒng)學(xué)科的一門核心課程,是一門理論性和實(shí)踐性都很強(qiáng)的課程。C語言程序設(shè)計(jì)是理工科各專業(yè)計(jì)算機(jī)應(yīng)用能力培養(yǎng)的重要技術(shù)基礎(chǔ)。C語言既具有低級(jí)語言可直接訪問內(nèi)存地址、能進(jìn)行位操作、程序運(yùn)行效率高的優(yōu)點(diǎn),又具有高級(jí)語言運(yùn)算符和數(shù)據(jù)類型豐富、結(jié)構(gòu)化控制語句功能強(qiáng)、可移植性好的優(yōu)點(diǎn),成為程序設(shè)計(jì)語言的常青樹。C語言課程是數(shù)據(jù)結(jié)構(gòu)、C++面向?qū)ο蟪绦蛟O(shè)計(jì)、操作系統(tǒng)和軟件工程等課程的基礎(chǔ),并可為這些課程提供實(shí)踐工具。
C語言是一門實(shí)用性的語言。其實(shí)驗(yàn)教學(xué)環(huán)節(jié)作為C語言程序設(shè)計(jì)課程教學(xué)中一個(gè)十分重要的教學(xué)環(huán)節(jié),對(duì)于實(shí)現(xiàn)課程教學(xué)的目標(biāo)起著重要的作用,是理論聯(lián)系實(shí)際的必需的手段,對(duì)于理工科大學(xué)接受系統(tǒng)的實(shí)驗(yàn)方法和實(shí)踐技能訓(xùn)練,培養(yǎng)科學(xué)實(shí)驗(yàn)?zāi)芰κ呛芎玫腻憻?,學(xué)生經(jīng)過C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)環(huán)節(jié)后對(duì)于C語言程序設(shè)計(jì)理論知識(shí)的“三基”(基本理論、基本方法、基本手段)才會(huì)有更為深刻地理解。
傳統(tǒng)的教學(xué)方法中,程序?qū)嶒?yàn)環(huán)節(jié)只是配合每一章所學(xué)的內(nèi)容進(jìn)行在計(jì)算機(jī)上的實(shí)踐,這樣的方法讓學(xué)生只是孤立的了解了某些C語言程序設(shè)計(jì)知識(shí),所涉及的知識(shí)面較窄,缺少學(xué)科的綜合性,而且動(dòng)手能力很差,無法將實(shí)際的具體問題和C語言程序設(shè)計(jì)知識(shí)聯(lián)系起來。學(xué)生的學(xué)習(xí)興趣不高,教學(xué)效果較差。為了改變這一現(xiàn)狀,我們對(duì)C語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)的實(shí)驗(yàn)教學(xué)觀念、實(shí)驗(yàn)教學(xué)內(nèi)容、實(shí)驗(yàn)教學(xué)的組織方式和實(shí)驗(yàn)教學(xué)的手段進(jìn)行改革性的探索和實(shí)踐,將教學(xué)的目的變?yōu)槔碚摵蛯?shí)踐并重,以提高學(xué)生的實(shí)用的掌握這門語言的能力。
2 教學(xué)改革方法
針對(duì)這些問題,我們?cè)诮虒W(xué)中進(jìn)行了大膽的探索和嘗試,主要從以下幾個(gè)方面進(jìn)行的:
2.1 加強(qiáng)教材建設(shè)
在教學(xué)工作中,我們主張講授要少而精,而選擇教材則應(yīng)在廣度和深度上留有較大的余地。在高等學(xué)校中應(yīng)該提倡老師講授的內(nèi)容和課時(shí)不要太多,為學(xué)生提供的教材和學(xué)習(xí)材料則應(yīng)該盡量多,并且有一定的深度。這樣,才可能讓學(xué)生有充分的主動(dòng)學(xué)習(xí)的空間,使學(xué)生在花費(fèi)精力學(xué)習(xí)不同課程時(shí)有較大的選擇余地,同時(shí),學(xué)生學(xué)習(xí)這門課程的能力和興趣往往差別很大,對(duì)于水平高有興趣的同學(xué),應(yīng)該為他們創(chuàng)造深入學(xué)習(xí)的條件。教材應(yīng)該是一個(gè)學(xué)習(xí)園地,而不是講稿,老師的講課好像是導(dǎo)游,為學(xué)生的游覽(學(xué)習(xí))提供指導(dǎo)。講授的內(nèi)容不可能與教材的內(nèi)容相一致,正是這種不一致性,使得學(xué)生獲得了較大的獨(dú)立學(xué)習(xí)的空間,這樣培養(yǎng)出來的人才,才可能有較強(qiáng)的學(xué)習(xí)和創(chuàng)新能力。我們將“少課時(shí),大教材”作為教學(xué)改革的一項(xiàng)措施,認(rèn)為教材應(yīng)該為學(xué)生留有主動(dòng)學(xué)習(xí)的空間,這樣有利于加強(qiáng)素質(zhì)教育,從而提高教學(xué)質(zhì)量。
另外,我們針對(duì)當(dāng)前市場(chǎng)上課本的魚龍混雜的情況,常常在語言的細(xì)節(jié)上浪費(fèi)筆墨,這樣不但容易使得初學(xué)者迷失在這些復(fù)雜而龐大的細(xì)枝末節(jié)上,而且不能很好的掌握C語言程序設(shè)計(jì)的實(shí)質(zhì)。我們根據(jù)自己多年來從事C語言程序設(shè)計(jì)語言教學(xué)的經(jīng)驗(yàn)和實(shí)際開發(fā)軟件項(xiàng)目所積累的豐富的軟件開發(fā)經(jīng)驗(yàn)編寫教材。強(qiáng)調(diào)程序設(shè)計(jì)方法和技巧的掌握比對(duì)語言細(xì)節(jié)的理解重要得多,而對(duì)語言細(xì)節(jié)的透徹理解只有通過大量的時(shí)間和長期的編程實(shí)踐才能獲得。我們編寫《C語言程序設(shè)計(jì)》教材使學(xué)生能在較短的時(shí)間內(nèi)理解C語言程序設(shè)計(jì)的基本概念并掌握C語言程序設(shè)計(jì)的方法,初步培養(yǎng)學(xué)生按C語言的思想方式分析和解決問題的思維習(xí)慣。
2.2 編程實(shí)踐環(huán)節(jié)驅(qū)動(dòng)的教學(xué)模式
上機(jī)編程實(shí)踐是學(xué)好C程序設(shè)計(jì)語言的關(guān)鍵?!熬v多練”式教學(xué)方法的基本特點(diǎn)是上機(jī)時(shí)數(shù)較多。上機(jī)實(shí)踐是掌握Visual C++的一種有效途徑,我們?cè)诮虒W(xué)中采用1.5:1的模式,即每上3課時(shí)的理論課,安排2課時(shí)的上機(jī)實(shí)踐。在講授理論課時(shí),還要針對(duì)自學(xué)部分和調(diào)試技術(shù)等內(nèi)容進(jìn)行簡短的指導(dǎo), 然后學(xué)生在教師指導(dǎo)下上機(jī)練習(xí)。
2.2.1 重視C語言的上機(jī)編譯環(huán)境的運(yùn)用
C 語言的理論知識(shí)是以實(shí)踐作為依據(jù)的,一個(gè)程序的執(zhí)行過程涵蓋該程序所有知識(shí)點(diǎn)。我們機(jī)房提供了TurboC 2.0、WinTC、Visual C++6.0三種C語言的編譯和運(yùn)行環(huán)境。我們認(rèn)為WinTC雖然基于windows環(huán)境,操作簡單,但調(diào)試功能不強(qiáng)。我們采用Visual C++6.0集成開發(fā)環(huán)境,強(qiáng)調(diào)利用調(diào)試工具幫助編程者去思考程序,我們強(qiáng)調(diào)單步執(zhí)行功能(step in、step out、step over)、設(shè)置斷點(diǎn)(breakpoint)、添加變量監(jiān)視框(Add Watch)的運(yùn)用,這樣可以對(duì)程序執(zhí)行過程進(jìn)行跟蹤監(jiān)視,可以幫助學(xué)生更好的理解程序中的分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和函數(shù)的虛參實(shí)參調(diào)用等C語言的知識(shí)點(diǎn),從而彌補(bǔ)課堂教學(xué)的距離感和枯燥感,使學(xué)生學(xué)的更有興趣,更為主動(dòng),掌握的知識(shí)也更全面。
2.2.2 重視對(duì)警告信息的改正
學(xué)生通過課堂和書本的學(xué)習(xí),編出來的C語言程序,在實(shí)際上機(jī)運(yùn)行時(shí)可能會(huì)不斷出現(xiàn)麻煩,特別在編譯程序時(shí)計(jì)算機(jī)會(huì)檢測(cè)出許多錯(cuò)誤,這時(shí)的錯(cuò)誤可大致分為語法錯(cuò)誤和語義錯(cuò)誤,我們認(rèn)為學(xué)習(xí)C語言就是一個(gè)發(fā)現(xiàn)錯(cuò)誤和改正錯(cuò)誤的過程,強(qiáng)調(diào)學(xué)生自己的去發(fā)現(xiàn)和改正錯(cuò)誤。Visual C++6.0集成開發(fā)環(huán)境會(huì)提示兩種信息,一種信息為錯(cuò)誤信息,另一種信息為警告信息。一般情況下只要將錯(cuò)誤信息改正過來,程序就能通過運(yùn)行給出結(jié)果,這樣警告信息往往會(huì)被忽略。我們?cè)趯?shí)踐教學(xué)中要求學(xué)生將警告信息與錯(cuò)誤信息一樣重視,在調(diào)試過程中遇到警告信息必須改正,因?yàn)榫嫘畔⒌某霈F(xiàn)說明了學(xué)生對(duì)知識(shí)點(diǎn)理解的偏差,讓學(xué)生通過改正警告信息來正確的理解理論知識(shí),會(huì)給學(xué)生留下深刻印象,在進(jìn)一步理解理論知識(shí)的同時(shí)培養(yǎng)學(xué)生嚴(yán)肅、認(rèn)真的科學(xué)態(tài)度。
2.3 綜合性“大作業(yè)”的引入
我們?cè)趯?shí)驗(yàn)教學(xué)的開始就引入軟件工程的理念,強(qiáng)調(diào)學(xué)生們從一開始了解到養(yǎng)成良好的軟件設(shè)計(jì)規(guī)范的重要性。我們?cè)趯?shí)驗(yàn)內(nèi)容上引入面向?qū)ο蟮能浖枷牒蛙浖こ痰睦砟睿瑢語言課程和軟件工程緊密的有機(jī)聯(lián)系起來,要求學(xué)生按照軟件工程的思想去分析設(shè)計(jì)實(shí)現(xiàn)一個(gè)具體的MIS系統(tǒng)。
具體說來,我們的實(shí)踐教學(xué)分為以下幾個(gè)環(huán)節(jié):
第一階段,學(xué)習(xí)C語言的各個(gè)理論知識(shí)點(diǎn)和熟悉VisualC++6.0的開發(fā)環(huán)境。
第二階段,我們?cè)诘谝欢螌W(xué)習(xí)的基礎(chǔ)上,引入綜合性“大作業(yè)”。先由教師給出實(shí)驗(yàn)題目,提出具體要求,而后學(xué)生根據(jù)要求查閱相關(guān)的書籍資料,寫出實(shí)驗(yàn)原理、實(shí)驗(yàn)方法步驟交給教師批閱;師生一起討論,確定實(shí)驗(yàn)方案;然后在限定的時(shí)間內(nèi)進(jìn)行實(shí)驗(yàn),并寫出相關(guān)的系統(tǒng)的分析、設(shè)計(jì)、實(shí)現(xiàn)等實(shí)驗(yàn)報(bào)告,然后分組討論,最后進(jìn)行集體的總結(jié)交流,初步掌握C語言軟件系統(tǒng)的設(shè)計(jì)方法和步驟,鍛煉學(xué)生靈活運(yùn)用C語言開發(fā)語言進(jìn)行軟件開發(fā)的初步能力。
大作業(yè)的具體內(nèi)容如下:
Step 1:教師給學(xué)生講解大作業(yè)的題目要求,要求學(xué)生在選好題目的基礎(chǔ)上,認(rèn)真研究題目要求,自行查閱有關(guān)資料,實(shí)行系統(tǒng)的需求分析,總體框架設(shè)計(jì);
Step 2:完成C語言的設(shè)計(jì),建立C語言;
Step 3:編寫界面,要求完成各個(gè)功能單元的實(shí)現(xiàn)和調(diào)試;
Step 4:聯(lián)編調(diào)試,要求把各個(gè)功能塊聯(lián)編起來進(jìn)行調(diào)試;
Step 5:上機(jī)檢查;
Step 6:實(shí)驗(yàn)報(bào)告軟件文檔。
第三階段,繼續(xù)完善實(shí)際系統(tǒng)的開發(fā)。本階段主要讓學(xué)生在注重基本功能的實(shí)現(xiàn)的基礎(chǔ)上,對(duì)其所完成的軟件進(jìn)行正確性的測(cè)試和進(jìn)行必要的包裝設(shè)計(jì)。
在實(shí)驗(yàn)教學(xué)中,我們突出以項(xiàng)目訓(xùn)練為主的教學(xué)實(shí)踐。我們使用項(xiàng)目驅(qū)動(dòng)的教學(xué)方法,針對(duì)學(xué)習(xí)目標(biāo)設(shè)計(jì)問題與任務(wù),將所要學(xué)習(xí)的概念技巧蘊(yùn)含在所要解決的問題之中,通過解決問題,從中發(fā)現(xiàn)知識(shí)點(diǎn)和實(shí)踐技巧。我們通過實(shí)例講解,系統(tǒng)開發(fā)與調(diào)試的基本方法的講解,使得學(xué)生從實(shí)際中學(xué)習(xí)。
2.3 采用教學(xué)網(wǎng)站作為教學(xué)的輔助方法
目前,計(jì)算機(jī)和互聯(lián)網(wǎng)已滲透到各個(gè)領(lǐng)域。我們可以充分利用互聯(lián)網(wǎng)的優(yōu)勢(shì),設(shè)計(jì)網(wǎng)絡(luò)課件來提高學(xué)生的自學(xué)與復(fù)習(xí)的積極性,開辟新的教學(xué)與復(fù)習(xí)手段,使學(xué)生學(xué)習(xí)和鞏固知識(shí)的渠道多樣化,進(jìn)而提高我們的教學(xué)質(zhì)量。網(wǎng)絡(luò)課件主要具有兩方面的功能:留言板和網(wǎng)絡(luò)題庫。學(xué)生可在網(wǎng)絡(luò)課件留言板中提出問題,教師可在短時(shí)間內(nèi)在留言板中給予答復(fù),實(shí)現(xiàn)老師與學(xué)生的相互留言,發(fā)表通知公告或進(jìn)行解惑。特別是學(xué)生都會(huì)遇到的共性問題,教師一旦在留言板上留言,就不需再為每個(gè)人分別解答了。網(wǎng)絡(luò)題庫是檢驗(yàn)學(xué)生每章或每節(jié)課階段性成果的有力工具,它可使學(xué)生盡快知道自己哪一方面不足,還有待加強(qiáng)。通過網(wǎng)絡(luò)課件這樣的輔助教學(xué)方法,既提高了學(xué)生的學(xué)習(xí)興趣,又提高了教師的工作效率和教學(xué)效果。
2.4 考核方式的改革
考核在教學(xué)過程中起著重要的作用。對(duì)教師來說,它是教師了解學(xué)生學(xué)習(xí)狀況、因材施教的基本依據(jù);對(duì)學(xué)生來說,它是學(xué)生自我評(píng)價(jià)的依據(jù)。
我們認(rèn)為,在實(shí)驗(yàn)教學(xué)中加強(qiáng)基本實(shí)驗(yàn)方法基本技能和實(shí)驗(yàn)過程的規(guī)范訓(xùn)練要比掌握一些具體的實(shí)驗(yàn)操作更為重要。因此,我們從實(shí)驗(yàn)教學(xué)的特點(diǎn)和培養(yǎng)學(xué)生實(shí)踐能力的角度出發(fā),重視學(xué)生基本實(shí)驗(yàn)方法和實(shí)驗(yàn)過程的規(guī)范操作,突出實(shí)驗(yàn)?zāi)芰Φ呐囵B(yǎng),弱化實(shí)驗(yàn)結(jié)果的評(píng)審。
3 結(jié)束語
通過我們不斷改進(jìn)教學(xué)方法,完善教學(xué)手段,學(xué)生學(xué)習(xí)的自覺性、主動(dòng)性有了很大的提高。上機(jī)實(shí)驗(yàn)和機(jī)考的程序調(diào)試通過率也有明顯提高。這些表明我們的探索得到大部分學(xué)生的認(rèn)可,受到了老師的普遍歡迎,通過對(duì)學(xué)生的調(diào)查中,大多數(shù)學(xué)生認(rèn)為是他們對(duì)于課本知識(shí)理解更加深入了,他們的主動(dòng)思考問題的能力也得到了提高 。教師們也普遍反映《C語言程序設(shè)計(jì)》的教學(xué)質(zhì)量和教學(xué)效果得到極大的提高。
參考文獻(xiàn):
[1] 王曙燕. C語言程序設(shè)計(jì)[M]. 北京:科學(xué)出版社,2005.
[2] 房鼎益,等. 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)面向21世紀(jì)教學(xué)改革與新教學(xué)計(jì)劃[J]. 計(jì)算機(jī)科學(xué),1999,6(2):153-155.
[3] 沈天晴,劉維富等. VC程序設(shè)計(jì)基礎(chǔ)課程實(shí)踐教學(xué)方法的探討[J]. 南通大學(xué)學(xué)報(bào)(教學(xué)科學(xué)版),2005,21(3):88-91.
關(guān)鍵詞: C語言程序設(shè)計(jì); break語句; switch語句; 循環(huán)結(jié)構(gòu)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)12-48-02
Analysis on “break” in course of C language programming
Li Xinran, Zhao Shanlin
(North University of China, College of Computer and Control Engineering, Taiyuan, Shanxi 030051, China)
Abstract: In the course of C language programming, the break statement has two functions. First, it is used in the switch statement, which can end Select Case. Second, it is applied to a loop structure, which can end this layer circulation. By analyzing the examples, the application conditions and functions of the break statement are revealed as well as things to note, and its application methods are clarified.
Key words: C language programming; break statement; switch statement; loop structure
0 引言
在C語言程序設(shè)計(jì)課程中,break語句的功能非常容易理解,在switch語句中可以利用break語句結(jié)束switch結(jié)構(gòu);在循環(huán)結(jié)構(gòu)中可以利用break語句結(jié)束循環(huán)。但是,很多人并不清楚在什么條件下使用break語句,本文著重分析break語句的使用條件,以及break語句的常見用法。
1 break語句在switch語句中的應(yīng)用
switch語句是多分支選擇語句,一般形式[1]:
switch(表達(dá)式)
{
case 常量表達(dá)式1: 語句1; [break;]
case 常量表達(dá)式2: 語句2; [break;]
…
case 常量表達(dá)式n: 語句n; [break;]
default : 語句n+1; [break;]
}
switch語句執(zhí)行過程是[2]:
⑴ 計(jì)算switch語句表達(dá)式的值;
⑵ 依次與1-n個(gè)常量做比較,當(dāng)表達(dá)式的值與常量相等時(shí),執(zhí)行case后的語句;
⑶ 當(dāng)執(zhí)行break語句時(shí),結(jié)束switch語句;
⑷ 如無break,則從匹配的case語句起,一直執(zhí)行到break或switch語句末尾為止;
⑸ 如無匹配的case值時(shí),則執(zhí)行default相應(yīng)語句。
switch語句說明:
⑴ switch后括號(hào)內(nèi)的表達(dá)式可以是任意類型,會(huì)自動(dòng)轉(zhuǎn)化為整型;
⑵ 每個(gè)常量表達(dá)式的值必須互不相同;
⑶ 執(zhí)行完一個(gè)case后邊的語句后,轉(zhuǎn)到下一個(gè)case繼續(xù)執(zhí)行,可以用break強(qiáng)制程序在執(zhí)行完一個(gè)case后跳出switch結(jié)構(gòu)。如果所有case中的常量表達(dá)式都不符合,則執(zhí)行default后面的語句;
⑷ case后的多條語句不必用{}括起來。
由此可見,對(duì)于break語句的使用,當(dāng)執(zhí)行完某個(gè)case常量表達(dá)式后面的語句,想要結(jié)束switch語句,此時(shí)應(yīng)該在相應(yīng)語句的后面執(zhí)行break語句。例如:
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++; break;
case 1: b++; break;
}
case 2: a++; b++; break;
case 3: a++; b++;
}
printf(“\na=%d,b=%d”,a,b);
}
/*運(yùn)行結(jié)果為:a=2,b=1。*/
分析運(yùn)行結(jié)果,由于case 1:語句中是switch語句的嵌套,而且嵌套的switch語句后面沒有執(zhí)行break語句。如果在內(nèi)嵌的switch語句后面執(zhí)行break語句,則運(yùn)行結(jié)果為:a=1,b=0,此時(shí)執(zhí)行了break語句,就從switch結(jié)構(gòu)中結(jié)束了。
2 break語句在循環(huán)結(jié)構(gòu)中的應(yīng)用
在循環(huán)結(jié)構(gòu)中使用break語句的形式是“break;”,break語句的功能是強(qiáng)行結(jié)束循環(huán),轉(zhuǎn)向執(zhí)行循環(huán)語句的下一條語句[3]。break執(zhí)行流程如圖1所示。
[表達(dá)式] [表達(dá)式] [語句][語句] [break;][yes][no]
圖1 break語句執(zhí)行流程圖
如圖1所示,當(dāng)循環(huán)中執(zhí)行了break語句,循環(huán)將提前結(jié)束。那么在什么樣的條件下,循環(huán)結(jié)構(gòu)中需要使用break語句,對(duì)此我們通過一個(gè)例題,來分析使用break語句的條件。
例題:判斷某一個(gè)一位數(shù)n是否在一個(gè)不高于四位的整數(shù)m中出現(xiàn)。判斷n是否在m中出現(xiàn),需要將n與m中的每一位數(shù)進(jìn)行比較,分離m中的每一位數(shù),可以借助于算數(shù)運(yùn)算符的求余和除,如果n==m%10,說明n在m中出現(xiàn)了,此時(shí)需要提前結(jié)束循環(huán),這時(shí)要使用break語句。如果n!=m%10,那么就需要不斷求新的m,利用m=m/10求得新的m;重復(fù)n與m%10的比較過程。通過分析得知,循環(huán)結(jié)束有兩種可能,一種是n在m中出現(xiàn)了提前結(jié)束循環(huán);另一種是n在m中沒出現(xiàn),當(dāng)m的值變?yōu)?時(shí)結(jié)束的循環(huán)。由于此時(shí)不能判斷是什么原因結(jié)束的循環(huán),所以我們必須借助于標(biāo)示變量來區(qū)別這兩種情況。先將標(biāo)示變量flag的值置為1,如果n在m中出現(xiàn),則標(biāo)示標(biāo)量flag的值置為0。如果n沒在m中出現(xiàn)標(biāo)示變量的值不變,這樣結(jié)束循環(huán)后,可以通過標(biāo)示變量的值來判斷n在m中是否出現(xiàn)。
通過上述分析得到循環(huán)中使用break語句的條件:當(dāng)存在著兩個(gè)獨(dú)立的條件都可以使循環(huán)結(jié)束時(shí),提前結(jié)束循環(huán)的條件就是使用break語句的條件;另外一個(gè)結(jié)束循環(huán)的條件作為控制循環(huán)的變量。此種用法通常借助標(biāo)示變量來區(qū)別結(jié)束循環(huán)的原因。使用break語句時(shí)候,還需注意break語句只能結(jié)束本層循環(huán),不能影響外層循環(huán)。
判斷某一個(gè)一位數(shù)n是否在一個(gè)不高于四位的整數(shù)m中出現(xiàn)的算法實(shí)現(xiàn)如下:
main()
{ int m,n,flag=1;
scanf("%d%d",&m,&n);
while(m!=0)
{ if(n==m%10)
{ flag=0;
break;
}
m=m/10;
}
if(flag) printf("no\n");
else printf("yes\n");
}
3 結(jié)束語
本文分析了C語言程序設(shè)計(jì)課程中break語句的使用方法。在switch語句中,可以結(jié)束多分支選擇結(jié)構(gòu);在循環(huán)結(jié)構(gòu)中,可以結(jié)束本層循環(huán)。同時(shí)分析出在兩種結(jié)構(gòu)中使用break語句的條件,并舉例說明break語句的用法和需注意的要點(diǎn)。通過本文對(duì)break語句用法的分析,能讓學(xué)習(xí)C語言程序設(shè)計(jì)課程的學(xué)生更準(zhǔn)確地掌握break語句的用法,為學(xué)好結(jié)構(gòu)化程序設(shè)計(jì)語言的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)打好基礎(chǔ)。
參考文獻(xiàn):
[1] 譚浩強(qiáng).C程序設(shè)計(jì)[M].清華大學(xué)出版社,2001.
[2] 趙山林.C語言程序設(shè)計(jì)[M].人民郵電出版社,2012.
[3] 趙山林.C語言程序設(shè)計(jì)[M].高等教育出版社,2010.
【關(guān)鍵字】程序設(shè)計(jì) 實(shí)驗(yàn)教學(xué) ACM
一、引言
近來年,隨著信息技術(shù)在社會(huì)各個(gè)應(yīng)用領(lǐng)域的滲透和普及,程序設(shè)計(jì)類課程已經(jīng)發(fā)展為高校計(jì)算機(jī)教育的重點(diǎn)課程。理論教學(xué)與實(shí)驗(yàn)教學(xué)是程序設(shè)計(jì)類課程的重要組成部分,其中,實(shí)驗(yàn)教學(xué)是完整教學(xué)過程中的不可或缺的實(shí)踐性教學(xué)環(huán)節(jié)。實(shí)驗(yàn)的目的不僅僅是為了驗(yàn)證所編程序的正確與否,也是為了加深對(duì)程序設(shè)計(jì)語言知識(shí)的充分理解,更重要的是培養(yǎng)學(xué)生的實(shí)際操作能力和積累豐富的編程經(jīng)驗(yàn),從而引導(dǎo)他們利用程序設(shè)計(jì)語言編程來解決實(shí)際問題?;诖耍疚膶?duì)如何更好的進(jìn)行程序設(shè)計(jì)類課程的實(shí)驗(yàn)教學(xué)作一些探討。
二、現(xiàn)狀分析
目前,我校計(jì)算機(jī)學(xué)院開設(shè)了高級(jí)語言如C、C++等多門程序設(shè)計(jì)類課程,這些課程的共同目標(biāo)就是讓學(xué)生通過上機(jī)實(shí)驗(yàn)和課程設(shè)計(jì)來鞏固課堂上講解的語法規(guī)則和算法技巧,鍛煉編程能力。但是現(xiàn)有的程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)存在著很多問題,導(dǎo)致整個(gè)教學(xué)效果得不到提高,與教學(xué)目標(biāo)的要求不相符。本節(jié)將主要從三個(gè)方面對(duì)其存在的問題進(jìn)行總結(jié):
2.1 實(shí)驗(yàn)教學(xué)安排
我院程序設(shè)計(jì)類課程的上機(jī)實(shí)驗(yàn)課時(shí)是有限的,一般都是每周安排兩個(gè)課時(shí),或者最多四個(gè)課時(shí),通常會(huì)在連續(xù)的幾周內(nèi)結(jié)束。由于一般程序的編寫和調(diào)試比較費(fèi)時(shí)間,要是學(xué)生不事先做好充分的準(zhǔn)備,僅僅靠在兩個(gè)課時(shí)內(nèi)去完成一個(gè)完整的程序編寫是不太可能的,對(duì)所學(xué)內(nèi)容也沒能充分理解,很難在課堂上培養(yǎng)學(xué)生的實(shí)際編程能力。
2.2 實(shí)驗(yàn)教學(xué)內(nèi)容
我院專業(yè)實(shí)驗(yàn)中心的機(jī)房環(huán)境是一個(gè)內(nèi)部的局域網(wǎng),不能連接到互聯(lián)網(wǎng),教師都是通過課件投影或屏幕廣播教學(xué)軟件來完成主要的實(shí)驗(yàn)教學(xué)過程。實(shí)驗(yàn)內(nèi)容基本卜^都是對(duì)課堂理論教學(xué)內(nèi)容進(jìn)行驗(yàn)證和實(shí)現(xiàn),學(xué)生按照教材或課件來完成實(shí)驗(yàn)。整個(gè)的實(shí)驗(yàn)教學(xué)環(huán)節(jié)中,教師根據(jù)實(shí)際的情況來選擇是否進(jìn)行案例教學(xué),而當(dāng)前多數(shù)實(shí)驗(yàn)教學(xué)過程中的案例所覆蓋的知識(shí)點(diǎn)范圍不夠理想,不能將新舊知識(shí)點(diǎn)都包含進(jìn)來。案例陳舊,缺少更新,實(shí)用性和趣味性也不強(qiáng),因此不能很好的激發(fā)學(xué)生的學(xué)習(xí)熱情,不利于培養(yǎng)學(xué)生的獨(dú)立思考和動(dòng)手操作能力,未能達(dá)到教學(xué)目標(biāo)的要求。
2.3 實(shí)驗(yàn)教學(xué)考核
實(shí)驗(yàn)課程主要是通過實(shí)驗(yàn)報(bào)告中的程序編寫情況來考核的。由于時(shí)間有限,實(shí)驗(yàn)報(bào)告的批改都是教師在課后另找時(shí)間檢查,教師往往只能通過紙質(zhì)的實(shí)驗(yàn)報(bào)告來分析學(xué)生的程序,要求程序能正常通過,看到運(yùn)行結(jié)果就可以了,而忽略了程序中的調(diào)試環(huán)節(jié),而這些環(huán)節(jié)中通常都是學(xué)生未掌握的知識(shí)點(diǎn)。這種考核方式不利于教師對(duì)學(xué)生學(xué)習(xí)情況的掌握,也不利于培養(yǎng)學(xué)生的創(chuàng)新能力。
三、ACM學(xué)習(xí)模式的特點(diǎn)
現(xiàn)在,隨著ACM國際大學(xué)生程序設(shè)計(jì)競(jìng)賽(簡稱ACM)在高校中的推廣,越來越多的學(xué)生參與進(jìn)來了。在迎接ACM競(jìng)賽的學(xué)習(xí)過程中,形成了一種具有ACM競(jìng)賽特點(diǎn)的學(xué)習(xí)模式,這種學(xué)習(xí)模式的特點(diǎn)如下:
l、ACM競(jìng)賽所涉及的知識(shí)面十分廣泛,算法電極具復(fù)雜性。通常在平時(shí)的訓(xùn)練過程中為了能深刻而透徹的理解各個(gè)知識(shí)點(diǎn),教師會(huì)引入大量的案例教學(xué)。運(yùn)用典型案例可以將學(xué)生帶人特定的問題進(jìn)行案例分析,通過學(xué)生的獨(dú)立思考或團(tuán)隊(duì)合作,進(jìn)一步提高其解決具體問題的能力。
2、ACM競(jìng)賽是通過在線測(cè)評(píng)系統(tǒng)上實(shí)時(shí)提交程序代碼,給出評(píng)判結(jié)果的競(jìng)賽形式。ACM測(cè)評(píng)系統(tǒng)能夠?qū)崟r(shí)的給出參賽隊(duì)的排名情況和每道題的通過率以及通過人數(shù),教師可根據(jù)題目的通過率來掌握學(xué)生對(duì)知識(shí)點(diǎn)的學(xué)習(xí)情況,也可以反思其教學(xué)方法和教學(xué)內(nèi)容中存在的問題。
四、基于ACM模式的程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)的做法
將ACM學(xué)習(xí)模式應(yīng)用到我院現(xiàn)有的程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)過程中,具體措施運(yùn)用如下:
4.1 實(shí)驗(yàn)課程的開設(shè)
我院高級(jí)語言(C、C++)程序設(shè)計(jì)實(shí)驗(yàn)課程都是在大一這一學(xué)年開設(shè)的,大一第一學(xué)期是面向過程的C語言編程學(xué)習(xí),大一第二學(xué)期是面向?qū)ο蟮腃++語言編程學(xué)習(xí)。這樣開課的結(jié)果就使得大多數(shù)學(xué)生連面向過程的編程都還沒有完全搞清楚,就直接跳到了面向?qū)ο蟮木幊?,可以說整個(gè)大一學(xué)期都是處于混沌的編程狀態(tài)。因?yàn)閷?duì)程序設(shè)計(jì)語言的思想和語法還沒完全掌握,所以很多學(xué)生不具備基本的編程能力,甚至對(duì)編程有恐懼感。為了解決這些問題,我們結(jié)合ACM的競(jìng)賽模式來調(diào)整開課計(jì)劃,把原計(jì)劃2個(gè)學(xué)期的高級(jí)語言程序設(shè)計(jì)實(shí)驗(yàn)課程的教學(xué)時(shí)間調(diào)整為5個(gè)學(xué)期,這樣可以貫穿整個(gè)計(jì)算機(jī)專業(yè)課的學(xué)習(xí)過程,從而將程序設(shè)計(jì)語言和其他計(jì)算機(jī)專業(yè)課的學(xué)習(xí)更好的結(jié)合起來,讓學(xué)生有時(shí)間去深刻地理解程序設(shè)計(jì)語言的思想和方法,不斷地鍛煉實(shí)踐操作能力和積累編程經(jīng)驗(yàn)。
4.2 實(shí)驗(yàn)內(nèi)容的選取和實(shí)驗(yàn)課程的考核
對(duì)實(shí)驗(yàn)環(huán)境來說,要求將我院專業(yè)實(shí)驗(yàn)中心機(jī)房連接到我校的源程序在線測(cè)評(píng)(Onlinejudge,簡稱OJ)平臺(tái)上。根據(jù)程序設(shè)計(jì)類課程的實(shí)驗(yàn)內(nèi)容和具體要求,每次實(shí)驗(yàn)前,教師可以從我?;蛘咂渌咝5腛J平臺(tái)上的ACM競(jìng)賽題庫中挑選或改造2-3個(gè)相關(guān)題目作為實(shí)驗(yàn)內(nèi)容掛到我校的OJ上。在實(shí)驗(yàn)課階段,由學(xué)生獨(dú)立完成或者自由組隊(duì)來編寫程序,調(diào)試程序,解決問題,編寫好的程序提交給OJ來判斷正確與否。通過每次實(shí)驗(yàn)在OJ上完成的做題數(shù)量,教師可以由此掌握到學(xué)生對(duì)知識(shí)點(diǎn)的學(xué)習(xí)情況,對(duì)欠缺的知識(shí)點(diǎn)再給與重點(diǎn)講解。同時(shí)教師可以根據(jù)OJ上的排名很輕松的完成實(shí)驗(yàn)課程的考核。學(xué)生也可以通過每次實(shí)驗(yàn)的做題和排名情況,來檢查自己的學(xué)習(xí)方法和學(xué)習(xí)內(nèi)容,從而達(dá)到熟練掌握所學(xué)內(nèi)容的實(shí)驗(yàn)教學(xué)目的。
級(jí)別:統(tǒng)計(jì)源期刊
榮譽(yù):中國優(yōu)秀期刊遴選數(shù)據(jù)庫
級(jí)別:統(tǒng)計(jì)源期刊
榮譽(yù):中國優(yōu)秀期刊遴選數(shù)據(jù)庫
級(jí)別:北大期刊
榮譽(yù):中國優(yōu)秀期刊遴選數(shù)據(jù)庫
級(jí)別:省級(jí)期刊
榮譽(yù):中國學(xué)術(shù)期刊(光盤版)全文收錄期刊
級(jí)別:部級(jí)期刊
榮譽(yù):Caj-cd規(guī)范獲獎(jiǎng)期刊