公務員期刊網(wǎng) 精選范文 c程序設計語言范文

c程序設計語言精選(九篇)

前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c程序設計語言主題范文,僅供參考,歡迎閱讀并收藏。

c程序設計語言

第1篇:c程序設計語言范文

關鍵詞:c++;多媒體教學;教育改革

中圖分類號:G642 文獻標識碼:A

一、引言

基于Visual c++6.0可視化開發(fā)平臺的c++程序設計語言,以其強大的開發(fā)功能受到IT業(yè)界的一致認同,是眾多理工科院校開設的計算機基礎必修課。該課程具有很強的可操作性,其實踐教學是培養(yǎng)學生編程能力的重要手段。筆者在擔任該課程的多年實踐教學中發(fā)現(xiàn),在現(xiàn)在多媒體教學方式下,機械的教學雖然可以節(jié)省時間、增加教學信息量,但是缺乏傳統(tǒng)教學中可以采用的靈活機動的授課策略。因此,出現(xiàn)了學生普遍學習成績無法提高、厭學的情況,針對這些情況,筆者不斷分析教學中存在的問題,并提出了相應的改革措施,改進教學方法。通過長期實踐和總結(jié),形成了較系統(tǒng)的適用于該課程特點的教學方法,在教學工作中取得了較好的效果。

二、教學中的問題

(一)內(nèi)容多,課時少;上機實驗學生多,指導老師少

在我校,c++程序設計語言一直以來是作為非計算機專業(yè)一年級新生學習計算機語言最普遍的一門計算機高級程序設計語言。新生從中學來到大學普遍沒有接觸過計算機高級語言更沒有系統(tǒng)的接受過計算機方面的實踐學習。由于c++課程本身邏輯性強、概念多、結(jié)構(gòu)復雜等特點,導致學生學習興趣下降,進而反映出學生最終難以學好該門課程。

學生普遍感覺C++語言難學,一個很大的原因是教學內(nèi)容多而課時少。C++程序設計語言從知識體系來說主要分為兩部分,一為結(jié)構(gòu)化編程概念,一為類編程概念。每個章節(jié)的新概念多,知識點多。另一方面,程序設計語言的學習必須要實踐,總課時的減少導致實驗時數(shù)減少。同時,在實驗過程中,每個主講教師要面對整個教學班級的幾十個學生,必然在上課中無法顧及所有學生。

由于課程內(nèi)容龐大而課時有限,為了讓學生對該課程有全面的了解,教師必須充分利用有限的課時完成必要的知識的講授。

(二)學生學習興趣不濃、學習態(tài)度不端正

學生在學習過程中,會遇到很多抽象的概念和理論,這些概念和理論較難被學生及時的吸收消化,從而影響后續(xù)的學習,惡性循環(huán)后,產(chǎn)生的唯一結(jié)果就是學生的學習積極主動性消失,學習興趣就下降,最終的結(jié)果就是教學效果始終無法提高。

另一方面,學生普遍對c++程序設計語言的學習抱有不認同感。大部分同學不明白自己明明不是計算機專業(yè)的學生,為何要學一門計算機編程語言。因此,學習態(tài)度、積極性普遍不高。

(三)重書本,輕實踐

所有的課程學習,最終的考核方式大部分都是以書面的形式來進行的。學生在學習的過程中,大部分僅注重書本上概念和理論的記憶以及習題的死記硬背,而輕視上機實驗的重要性。因為,計算機語言本身就是一門實踐性課程,只有在掌握概念的基礎上不斷的實踐,才能真正掌握該門語言。學生重書本,輕實踐的最終結(jié)果恰好適得其反,反而導致了學生的實踐能力無法提高,程序的閱讀能力差。

針對以上的問題我們在教學過程中逐步摸索,嘗試了以下的方式以提高教學效果。

三、優(yōu)化教學改革

(一)明確學習目的,提高學生學習興趣。端正學生學習態(tài)度

為了培養(yǎng)學生的學習興趣,在教學伊始演示由C++開發(fā)的一些有趣實用的應用軟件,以增強學生對c++課程的喜愛。同時,端正學生的學習態(tài)度,讓非計算機專業(yè)的學生明確學習計算機程序設計語言,不僅僅是為了通過期末考試或計算機等級考試,更重要的是通過深入學習c++程序設計語言,開闊學生用c++語言解決實際問題的思路,掌握相關領域中的計算機應用開發(fā)能力、利用計算機分析問題、解決問題的能力,以及培養(yǎng)學生自身的抽象思維和邏輯思維能力。

(二)采用新的教學材料

在已有的教學課時內(nèi),如何完成教學任務,提高教學效果,成為了每個教師的一個難題。在這幾年的教學過程中,我們不斷摸索、總結(jié),在已有的教材基礎上,進行吸收創(chuàng)新,重組教學知識點,編制了體系結(jié)構(gòu)合理、內(nèi)容完整、學生容易接受、前后鋪墊的新教材――《Visual c++程序設計》(中國鐵道出版社)。對每個示例程序給出了解釋說明,還給出了調(diào)試結(jié)果,同時在學生掌握該問題的基礎上,提出疑問引導學生進一步思考同類問題。使學生在經(jīng)過學習后,不僅能知其然,還能知其所以然。

(三)改革考試模式,注重培養(yǎng)學生獨立編程能力

1、改革考試模式,加大實踐環(huán)節(jié)的比重

考試是檢驗教學效果的一個重要手段,考試模式則是引導學生學習的指揮棒。程序設計課程的教學要求和目標是培養(yǎng)學生的編程能力,所以要通過實際的編程實驗來檢驗學生是否掌握了所學內(nèi)容和方法。為此我們采取了“筆試+機試+平時”相結(jié)合的考試模式,通過筆試來考查學生對基本概念和基本理論的掌握情況,通過上機考試考查學生的基本編程能力,再加上學生平時的表現(xiàn),最終給出學生考核成績。通過加大實踐環(huán)節(jié)所占比重來引導學生對實際編程能力的重視,達到對學生實際編程能力的培養(yǎng)。

2、注重基本語法調(diào)試技術

程序調(diào)試是程序設計中一個很重要的環(huán)節(jié),程序調(diào)試水平的高低與編程經(jīng)驗密切相關,也決定了學生的編程能力。在上機過程中主要是注重學生程序調(diào)試能力的培養(yǎng),讓學生盡可能通過編譯器給出的錯誤提示信息去分析存在的問題,必要時通過設置斷點和單步跟蹤調(diào)試來解決問題。

(四)采用PBL教學法,改革教學模式

基于問題式學習(PBL)是以問題為基礎,以學生為中心的討論式教學,特點是培養(yǎng)學習者運用知識、擴展知識并獲取新知識,鍛煉解決問題的能力為教學目標。

CH程序設計語言課程是一種演繹思維方法的訓練,實踐性很強,非常適用教學法通過“提出問題一算法分析一程序示例一語法解釋一總結(jié)擴展”這一過程設計教學環(huán)節(jié)。突破傳統(tǒng)教學模式,從根本上提高學生分析、解決實際問題的能力,提高程序設計課程的教學質(zhì)量。

在教學過程中,逐步的從“知識”教學向“能力”教學轉(zhuǎn)變,有針對性的采用新的教學模式――PBL教學模式。對于有特色、典型的知識點的教學,筆者就采用PBL教學模式進行教學。筆者在最近兩年的教學過程中,試用了PBL教學模式,收到了較好的效果。

以循環(huán)結(jié)構(gòu)的教學為例。第一,提出問題,要求學生解決某個數(shù)的階乘,使用循環(huán)語句實現(xiàn);第二,在講解時,以累加問題為例,分析算法,然后逐步給出程序代碼并分析;第三,要求學生進行配對組合進行討論;第四,在圍繞問題展開討論學習后,要求在上機課上進行程序編寫以驗證程序的可行性。最后,在下一次理論教學課上進行總結(jié)、反思。

從學生的反應來看,大部分學生贊同PBL的教學模式,認為該方法能夠啟發(fā)思維,變被動學習為主動學習,形成了從理論到實踐,逐步掌握知識的過程。表1是不同時期學生在筆者不同的教學模式授課下學習VC++程序設計課程并參加江蘇省計算機等級考試的成績統(tǒng)計。從統(tǒng)計結(jié)果來看,雖然學時數(shù)的調(diào)整對教學效果有一定的作用,但影響最大的因素還是教學模式。PBL教學模式取得了顯著的效果。

第2篇:c程序設計語言范文

摘要:本文在分析了C語言程序設計課程的教學現(xiàn)狀和教學困境的基礎上,對比自然語言和程序設計語言的共性以及C語言的特殊性,提出了“從概念入手,側(cè)重程序閱讀和程序設計能力培養(yǎng)”而非“語法研究”的教學角度。

關鍵詞:C語言;程序設計;教學內(nèi)容;教學角度

中圖分類號:G64 文獻標識碼:A

1教學現(xiàn)狀

在高等學校的本科教育中,“C語言程序設計”幾乎成了所有專業(yè)的必開課程,從計算機科學與技術、軟件工程、網(wǎng)絡工程等相關專業(yè),到電子信息類理工科各專業(yè),乃至理工科院校的所有非計算機專業(yè),有的是專業(yè)基礎課,有的是公共必修基礎課,有的是“非計算機專業(yè)的計算機基礎課”。只是課程名稍有差異,常見的有“C語言程序設計”、“高級語言程序設計”、“C語言”、“C程序設計”、“結(jié)構(gòu)化程序設計”等。無論叫什么樣的課程名,也無論是哪類專業(yè),其課程的教學要求和教材選用卻無太大差別,只是課時分配差異較大。

從網(wǎng)絡調(diào)查的16所不同類型高校的“C語言程序設計”教學大綱看,普遍都包含“通過本課程的學習,使學生了解有關程序設計的基本概念、術語及C語言的特點,掌握C語言基本數(shù)據(jù)類型、語法規(guī)則、程序控制結(jié)構(gòu)、常用的標準庫函數(shù),培養(yǎng)學生的程序設計技能,初步積累編程經(jīng)驗”的教學基本要求;約百分之八十左右的“C語言程序設計”課程都選用由譚浩強主編、清華大學出版社出版的“C程序設計”作為主教材;課時分配從30~108課時不等,其中80課時以上的多為應用型本科院校的計算機相關專業(yè)以及綜合性大學的非計算機專業(yè),理論課時與實驗課時的比例一般為1:1到1:1.2。與此同時,其他專業(yè)基礎課(如計算機組成原理、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)等)的課時一般為54課時,最多不超過72學時。相比之下,“C語言程序設計”所占課時是其他專業(yè)基礎課的1.5倍至2倍。

從教學目的看,非計算機專業(yè)的“C語言程序設計”課程主要目的是“掌握語法規(guī)則和程序結(jié)構(gòu),具備一定的程序設計能力”,而計算機相關專業(yè)的“C語言程序設計”課的教學目的則要分為三個層次,一是使學生全面理解計算機程序設計語言的基本內(nèi)容和結(jié)構(gòu);二是通過算法掌握程序設計的基本方法和步驟,并具備一定的程序設計能力;三是為后續(xù)課程的算法描述和其他程序設計語言的學習奠定基礎。

2教學誤區(qū)

從以上的教學現(xiàn)狀(特別是課時分配)看,長期以來,“C語言程序設計”的課程教學存在“教學內(nèi)容背離教學要求和教學目的”的誤區(qū),主要表現(xiàn)在教材誤區(qū)、講授誤區(qū)和考核誤區(qū)三個方面。

2.1教材誤區(qū)

國內(nèi)高校的“C語言程序設計”課大多選用譚浩強主編、清華大學出版社出版的“C程序設計”[1]為主教材,目前使用的是2005年7月修訂出版的第三版,教材共363頁,主體內(nèi)容分為14章,其中,第3章的數(shù)據(jù)類型與表達式占用30頁,第4章的格式輸入輸出占用12頁,前9章共占用218頁,后5章共占用145頁。占用如此大篇幅的原因是教材中除了介紹相關語法格式外,還增加了相當多“特殊格式”和“特殊情況”的解釋和說明,因此,該教材的最大優(yōu)點就是“內(nèi)容詳盡、解釋清晰”。然而,對于初學者來說,學習計算機程序設計語言就是為了“為計算機描述求解問題的過程”,過于詳細但又遠離現(xiàn)實問題的“特殊格式”和“特殊情況”的解釋,使得學習內(nèi)容復雜化,增加了程序設計語言學習的難度,誤導了學習者的學習重點,由此也賦予了該教材無法掩飾的缺點,那就是教材編寫的指導思想和教材內(nèi)容的組織脫離了高校各專業(yè)“C語言程序設計”課程的教學目標,過分強調(diào)語法細節(jié)而忽略了程序設計語言的“正向表達能力”的應用,過分強調(diào)“語言的靈活性”而導致教材主體內(nèi)容的“復雜化”,從而誤導“C語言程序設計”課程的教學內(nèi)容朝著“重語法學習、輕算法描述”的“語言研究”方向發(fā)展。

2.2講授誤區(qū)

由于教材內(nèi)容的“復雜”,課堂講授自然需要較多課時,教學重點當然也放在了“語法研究”上。從網(wǎng)上下載的“C程序設計(第三版)”的配套教學課件以及有關院校的“C語言程序設計”教學課件的內(nèi)容組織上可以清楚的給出以上判斷?!罢Z法研究”型的課堂講授,更加放大了教材對“C語言程序設計”課程內(nèi)容的“扭曲”程度,給學生提供了錯誤的程序設計語言學習方法,把簡單問題復雜化,更為嚴重的是,挫傷了學生學習計算機程序設計語言的興趣和積極性,把本應“主動學習”的課程成引入了“被動學習”的歧途,直接導致“懂語法、會做題,但不會編程序”的教學后果。

2.3考核誤區(qū)

多年來,“C語言程序設計”的主體考試內(nèi)容就是“語法”,無論是選擇題、填空題還是程序閱讀題,大多都無法逃脫“語法”的束縛??荚嚪绞揭怨P試為主。這在某種程度上肯定了“語言研究”的教學角度,促使“C語言程序設計”的教學重點更向“語法研究”的方向傾斜,最終誤入“增加課時,強化語法,還是不會編程序”的怪圈。

3應有的教學角度

按照網(wǎng)上調(diào)查的各專業(yè)教學大綱中“培養(yǎng)具有一定程序設計能力”的教學目的,“C語言程序設計”課程的教學落腳點應該更確切的理解為培養(yǎng)“能用程序設計語言描述求解問題過程”的一般程序設計者,而不是造就“全面掌握程序設計語言語法、能設計高效、難懂程序”的程序設計語言方面的“作家”。因此,“C語言程序設計”課程教學相當于自然語言中的“基本語言能力”教學,而不是“語言研究”或“高級寫作”能力培養(yǎng)。

3.1自然語言與計算機程序設計語言

計算機程序設計語言是用人和計算機都能識別的方式描述計算機求解問題過程的過程描述語言,它具有和人所使用的自然語言相同或相似的組成和結(jié)構(gòu)特點,對于已經(jīng)掌握了至少一門自然語言(比如漢語或英語)并具備一定文化程度的人來說,學習一種計算機程序設計語言并非難事。自然語言的基本組成包括符號集合、字、詞、句、數(shù)據(jù)及其運算規(guī)則等基本要素,學習過程包括認識符號、發(fā)音、識字、組詞、學語法并造句、學文法并寫短文、練習寫文章等基本階段,在具備了基本的語言能力之后,擴充詞匯量和提高寫作能力將成為終身學習的基本內(nèi)容。按照自然語言的基本組成和學習過程,也可將計算機程序設計語言的基本組成歸納為字符集、標識符(常量、變量、保留字等)、數(shù)據(jù)類型、運算符、表達式、語句、程序格式等基本要素,其中,字符集和數(shù)據(jù)類型是定義程序設計語言的基礎,字符按一定規(guī)則組成標識符,用來充當常量名、變量名或其他標識,在自然語言中被人們公認的特殊標識符被賦予特定的語言含義,專門為語言系統(tǒng)所用(用戶不得再次定義其意義),稱為保留字;字符集中的特殊符號(如+、-、*、/)被賦予特定的運算意義(如加、減、乘、除)稱為運算符;不同數(shù)據(jù)類型的常量、變量用運算符按一定規(guī)則連接起來組成的式子就構(gòu)成表達式;將特定的保留字與表達式等語言要素按照語法規(guī)則組合起來就形成相應的語句;將語句按照要描述的求解問題的邏輯順序排列起來,就構(gòu)成了某種程序設計語言求解特定問題的一段程序。

3.2C語言的特殊性

一方面,C語言是程序設計語言的一種,具備一般程序設計語言的基本組成要素和結(jié)構(gòu)特點。另一方面,C語言能成為面向過程的結(jié)構(gòu)化程序設計語言的代表,也有其自身的特殊性。首先,C語言的數(shù)據(jù)類型極為豐富。除了基本數(shù)據(jù)類型外,還有構(gòu)造類型、指針類型、空類型和用戶自定義類型,其中,構(gòu)造類型包括數(shù)組、結(jié)構(gòu)體(struct)、共用體(union)和枚舉類型(enum)等四種數(shù)據(jù)結(jié)構(gòu)。其次,C語言具有位操作能力。除了能夠?qū)Ω黝愖兞窟M行操作外,C語言還具備“按位”進行邏輯“與”、“或”、“非”、“異或”運算和“左”、“右”移位運算,這使得C語言具備了更強的系統(tǒng)開發(fā)能力。第三,C語言具有顯著的結(jié)構(gòu)化程序設計能力,并通過完整的函數(shù)定義來實現(xiàn)。第四,C語言的最大特點就是“語法限制不嚴,解釋靈活”。第五,C語言允許直接訪問物理地址,可直接對硬件端口進行操作。第六,C語言沒有輸入/輸出語句,信息輸入/輸出功能由標準函數(shù)庫中相應的I/O函數(shù)來完成。

C語言的這些特殊性,決定了C語言的教、學過程不同于其他程序設計語言的教學過程。

3.3C語言的教學角度

根據(jù)一般程序設計語言的基本組成與結(jié)構(gòu)特點,結(jié)合C語言的特殊性,“C語言程序設計”課程的教學角度應該是:從介紹程序設計語言的基本概念入手,重點介紹語言的“正

向”設計功能而非“特殊格式”或“特殊語法”說明,側(cè)重學生的程序閱讀和程序設計能力培養(yǎng),從教學內(nèi)容的廣度和深度兩個方面,恰當把握教學角度。

“C語言程序設計”課程的內(nèi)容可分為三個基本模塊,教學過程從第一個模塊切入,逐漸擴展到第二和第三個模塊。第一個模塊可稱為“程序設計語言公共模塊”,主要包括程序設計語言的基本概念、程序設計語言的基本要素(字符集、標識符、常量變量以及保留字、基本數(shù)據(jù)類型、運算符、表達式、語句與控制結(jié)構(gòu)、程序結(jié)構(gòu)以及程序書寫規(guī)范等)以及輸入/輸出格式等內(nèi)容;第二個模塊是C語言的主體,主要包括函數(shù)、數(shù)組、指針、文件等;第三個模塊是高級編程內(nèi)容,主要包括結(jié)構(gòu)體(struct)、共用體(union)、枚舉類型(enum)以及用戶自定義類型等。

在教學深度方面,各模塊的教學重點應放在“規(guī)范的語法描述和直觀易懂而且正確的語義表述上”,避免涉及各種過細的“不符合人類閱讀習慣”的語義描述,暫時避開“特殊格式”或“特殊情況”的糾纏,擺脫“研究語法”的錯誤向?qū)?。在此基礎上,第一模塊的教學可與自然語言相比對,通過學生已有的自然語言學習經(jīng)驗和語言要素,使學生快速建立程序設計語言的基本概念,正確理解程序設計語言的基本要素及其關系,掌握基本語法和程序基本控制結(jié)構(gòu)(順序、選擇、循環(huán)),并通過算法歸納求解問題的過程,正確理解算法不同描述方式(自然語言、傳統(tǒng)流程圖、N-S流程圖、偽代碼、程序設計語言)的作用和差異,特別是從“問題”到“程序”的漸進轉(zhuǎn)化過程,從而培養(yǎng)學生的基本程序設計能力。通過第二模塊的教學,使學生明確函數(shù)、數(shù)組、指針、文件等概念和作用,掌握它們的定義和引用方法,能進行相應數(shù)據(jù)類型的編程,進而掌握用函數(shù)定義的結(jié)構(gòu)化模塊程序設計的方法;通過第三個模塊的教學,將程序的數(shù)據(jù)處理能力擴展到結(jié)構(gòu)體、共用體、枚舉類型以及用戶自定義類型等復雜數(shù)據(jù)類型的處理上來,通過恰當?shù)睦討眠@些數(shù)據(jù)類型,向?qū)W生展示C語言強有力的數(shù)據(jù)表示和處理能力。

另外,可以將C語言中的“語法靈活性”和不同部分的各種“特殊情況”分類總結(jié),歸納整理成“語言參考手冊”等形式,以附錄的形式提供給學生,以便需要時“備查”。這樣既可節(jié)省教學課時,又可向?qū)W生提供學習語言的主動權。

3.4教學策略和方法

“C語言程序設計”屬語言類課程,教學過程充滿了逐步完善和熟練的基本特點,因此,從教學安排的策略上要分重點、分階段逐步進行,每個階段的教學方法應該采用建立在一定基礎上的有重點的“部分教學法”,以核心內(nèi)容為基礎,向外逐漸延伸,部分學習,漸進掌握。盡可能避免不分主次、不論難易、不顧急緩,盲目一次性掃清各類知識點的“地毯式”教授方法或?qū)W習方法,同時強調(diào)自學和上機驗證,強化在特定環(huán)境下(如Turbo C++ 3.0)的程序設計訓練,做到“精講多練[2]”,從小程序練起,逐漸過渡到求解較大或?qū)嶋H問題的程序設計上來。

4結(jié)束語

從目前的教學現(xiàn)狀看,無論是計算機相關專業(yè),還是理工科的電子信息類專業(yè),乃至綜合性大學的非計算機專業(yè),“C語言程序設計”的課程教學均占有重要的教學地位,在全面提高教學質(zhì)量和教學效率的今天,不同類型專業(yè)結(jié)合自身優(yōu)勢和程序設計語言類課程的特點,選擇合適的角度組織和實施“C語言程序設計”課程的教學活動非常重要,而且很有必要。筆者的教學實踐證明,避開“語法研究”的程序設計教學不僅可減少課時,更可提高學生利用程序設計語言“表述求解問題過程”的能力。

參 考 文 獻

第3篇:c程序設計語言范文

關鍵詞: C語言;常見錯誤;程序調(diào)試;實例

中圖分類號:TP312文獻標識碼:A文章編號: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)外廣泛流行、使用的一種計算機高級程序設計語言。它的主要特點是:概念簡潔、數(shù)據(jù)類型豐富、表達能力強,運算符多且使用方便靈活。與其它程序設計語言相比較,具有靈活的編程風格,語法限制不太嚴格,程序設計自由度大(例如:一個語句可以采用多種方式,分多行撰寫;對數(shù)組下標越界不做檢查;整型、字符型和邏輯型的數(shù)據(jù)可以通用等)。這就給程序設計人員留下“靈活的余地”,但是由于這個靈活往往給程序調(diào)試,尤其對初學C語言的人來說,經(jīng)常會出一些連自己都不知道錯在哪里的實例??粗绣e的程序,不知該如何進行修改。通過在C語言的教學與研究過程中,分析了一些關于C語言程序設計時容易犯的錯誤實例,提供給學習C語言的同學及相關人員參考。

1 C語言常見錯誤實例與分析

實例1.Printf語句中“控制字符串”部分分寫在不同的行。

例如:main()

{ printf(“* * * * *”\n

Very good!\n

* * * * * \n);}

該程序的目的是為了顯示這樣的結(jié)果: * * * * *

Very good!

* * * * *

但程序運行后卻出現(xiàn)錯誤信息:“Unterminated string or character constant in function main”,對上述錯誤,只要在程序第二行、第三行的最后分別加上“\” 即可得到正確的結(jié)果,也就是說printf語句中的“控制字符串”部分分寫在不同的行時加“\”連接。

實例2. 忽略了“=”與“==”的區(qū)別。

在許多高級語言中,用“=”符號作為關系運算符“等于”。如在BASIC程序中可以寫if (m=10) then …,但C語言中,“=”是賦值運算符,“==”是關系運算符。

例如:if (m==10) m=n;

前者是進行比較,m是否和10相等,后者表示如果m和10相等,把n值賦給m。由于習慣問題,初學者往往很容易犯這樣的錯誤。

實例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);}

程序運行后出現(xiàn)錯信息“Improper use of a typedef symbol in function main”,只要把第六行:FILE *fp;放到第四行前,程序通過。原因是:說明部分要放在其他語句之前。

實例4.將字符常量與字符串常量混淆。

char ch;

ch="M";

在這里就混淆了字符常量與字符串常量,字符常量是由一對單引號括起來的單個字符,而字符串常量是一對雙引號括起來的字符序列。C規(guī)定以‘\0’作字符串結(jié)束標志,它是由系統(tǒng)自動加上的,所以字符串“M”實際上包含兩個字符:‘M'和‘\0',而把它賦給一個字符變量是不正確的。

實例5.輸入變量時忘記加地址運算符“&”。

int a,b;

scanf("%d%d",a,b);

這是不合法的。Scanf函數(shù)的作用是:按照a、b在內(nèi)存的地址將a、b的值存進去?!?a”指a在內(nèi)存中的地址。“&b”指b在內(nèi)存中的地址。

實例6.輸入數(shù)據(jù)的方式與要求不符。

1) scanf("%d%d",&x,&y);

輸入時,不能用逗號作兩個數(shù)據(jù)間的分隔符,如下面輸入不合法:

1,5

輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。

2) scanf("%d,%d",&x,&y);

C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。下面輸入是合法的:

1,5

此時不用逗號而用空格或其它字符是不對的。如下面輸入不合法:

1 5 1:5

又如:scanf("a=%d,b=%d",&a,&b);輸入應如以下形式:

a=1,b=5

實例7.輸入字符的要求與格式不一致。

在用“%c”格式輸入字符時,“轉(zhuǎn)義字符”和“空格字符”都作為有效字符輸入。

scanf("%c%c%c",&c1,&c2,&c3);

例如:輸入O K !

則字符“O”送給c1,空格字符“ ”送給c2,字符“K”送給c3,因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符的間隔。

實例8. 同時定義了形參與函數(shù)中的局部變量。

int max(x,y)

int x,y,z;

形參應該在函數(shù)體外定義,而局部變量應該在函數(shù)體內(nèi)定義。應改為:

int max(x,y)

int x,y;

{int z;

z=x>y?x:y;

return(z);}

實例9. 誤用變量定義數(shù)組。

int n;

scanf("%d",&n);

int a[n];

數(shù)組名后用方括號括起來的是常量表達式,可以包括常量和符號常量。即C不允許對數(shù)組的大小作動態(tài)定義。

實例10. 被調(diào)用的函數(shù)未在主函數(shù)中進行聲明。

例如: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; }

程序運行后出現(xiàn)錯誤信息:“Type mismatch in redeclaration of ‘swap’”,只要在程序的第二句int a,b;前加一句:void swap();程序運行通過。也就是說:被調(diào)用函數(shù)的定義出現(xiàn)在主調(diào)函數(shù)之后(除了函數(shù)的值是整型或字符型的),要在main()函數(shù)中對被調(diào)用函數(shù)進行說明,void型函數(shù)也不例外。

2 結(jié)論

通過上面這些實例的分析,可以看出,由于C語言的開放式編程風格,讓C語言初學者,在進行C語言程序設計時往往會出現(xiàn)一些微妙的、不易覺察的錯誤。C語言作為一門完善的編程語言,具有它的科學性與嚴謹性。因此,只有在充分掌握和熟練運用C語言的基本概念、語法規(guī)范及結(jié)構(gòu)的基礎上,才能真正享受到C語言靈活自如的編程風格的魅力,這也是學習一切科學知識的基本方法。

參考文獻:

[1] 譚浩強.C程序設計[M].北京:清華大學出版社,2008:37-242.

第4篇:c程序設計語言范文

關鍵詞:C/C++語言程序設計;教學改革;國家精品課程;教學方法

文章編號:1672-5913(2013)07-0095-04

中圖分類號:G642

1 課程教學現(xiàn)狀及存在問題

“C/C++語言程序設計”是理工科非計算機專業(yè)本科學生的第二門計算機課程,也是大學計算機基礎系列課程的核心課程?!癈/C++語言程序設計”課程的內(nèi)容抽象,概念和語法規(guī)則較多,特別講究適用技巧。長期以來,高校都在不斷地探索和實踐關于“C/C++語言程序設計”課程的教學改革,但仍然存在很多問題。例如,教學依然以傳統(tǒng)教學方式為主,不能將實驗環(huán)節(jié)與課堂教學環(huán)節(jié)很好地相互連貫,相互印證,使得理論教學和實踐教學脫節(jié);某些教師忽視學生的實踐能力和創(chuàng)新能力的培養(yǎng),使學生在分析問題和解決問題時無從下手,缺乏編程和調(diào)試的能力;實驗教學中的多數(shù)實驗內(nèi)容是驗證性的,學生機械式的運行程序,對知識的理解只停留在表面上;理論和實驗課時數(shù)較少,上課信息量大,學生接受知識的進度不一樣,這就導致教師和學生的學習步調(diào)不一致。

針對上述問題,許多高校對“C/C++語言程序設計”課程的教學作出了有益的探索,如文獻[1]提出“通、實、新、聯(lián)”的教學理念;文獻[2]提出教學設計原理;文獻[3]提出項目教學法;文獻[4]提出案例教學法;文獻[5]提出“機房授課+自主學習”的授課模式;文獻[6]提出將“以應用為背景,以知識為主線,以提高能力和興趣為目的,變應試為應用”的教學理念應用于該課程的教學中。這些方法均在一定程度上激發(fā)了學生的學習興趣,增強了學生的動手能力,取得了較為明顯的教學效果。

為了探究出適合成都理工大學人才培養(yǎng)的課程特點,“C/C++語言程序設計”課程組經(jīng)過多年的課程建設和對教學環(huán)節(jié)的研究與探索,提出了“以應用為前提,學生為主體,知識為主線,培養(yǎng)學生的實踐動手能力為著力點”的教學理念,構(gòu)建了一套教材體系完善、教學資源豐富、教學手段先進、教學評價合理、考核方式差異化、精品課程網(wǎng)站新穎的教學體系。下面分別從教學設計、教學方法、教學手段、考核方式以及教學資源等方面進行闡述。

2 教學設計及課程內(nèi)容組織

2.1教學設計

成都理工大學每年有4000名以上的學生參加“C/C++語言程序設計”課程學習。為實施因材施教,我們重視研究性學習、探究性學習、協(xié)作學習等現(xiàn)代教育理念在教學中的應用,根據(jù)課程內(nèi)容和學生特征,對教學方法和教學評價進行設計,并在教學理念與教學設計上實施了多種改革舉措。

1)以學生為中心的教學模式。

以學生為中心的教學模式讓教師從傳統(tǒng)的教學方式中解脫出來,變“教學”為“導學”。教師充分利用多種教學媒體和提示學習資源,講重點、解難點、釋疑點,講評作業(yè),指導學習方法,輔助小組學習,發(fā)揮學生的主體作用,引導學生自主學習,幫助學生培養(yǎng)自學能力。

教師要在理論課前了解學生是否掌握了與課程有關的基礎知識和基本技能,根據(jù)學生在實驗課的表現(xiàn)來了解學生是否掌握了教學目標中要求學會的知識和技能,以及掌握的程度等信息,從而確定后續(xù)教學中應重點講解和輔導的知識,根據(jù)學生的實際情況設計教學環(huán)節(jié)。對于部分優(yōu)秀學生和已經(jīng)學習了程序設計的學生,我們要加快他們的學習進度,增加學習難度和深度,使他們可以很快在自己的專業(yè)中使用程序設計來解決相關問題。

2)精心準備每一節(jié)課,激發(fā)學生學習積極性。

激發(fā)學生對程序設計課程的學習興趣,是本課程任務執(zhí)行的重要目標。學生是主動學習還是被動學習會讓教學效果產(chǎn)生明顯的差別,因此每位教師都應精心準備每一節(jié)課。引領學生跨入程序設計大門的第一節(jié)課是極其重要的。學生所關心的是所學課程對自己的專業(yè)和今后的工作有什么作用,教師可從不同的專業(yè)角度,結(jié)合當前最熱門的IT話題和實際應用為學生介紹學習本課程的意義和作用,同時介紹一些往屆學生將所學程序設計知識用于數(shù)學建模、程序設計競賽、專業(yè)課程學習等方面的生動實例,這些都是教師第一節(jié)課的良好素材。

3)培養(yǎng)學生系統(tǒng)化的程序設計思維。

程序設計課程長期存在著注重語句、語法和細節(jié)的特點,基本上是以程序設計語言自身的體系為脈絡展開的。許多學生在學習程序設計語言課程時會覺得枯燥難學,學過后又不能用來解決實際問題。所以學生雖然學了一定的程序設計知識,但編程能力較差?!糠謱W生在遇到實際問題依舊無從下手。而系統(tǒng)化程序設計思維培養(yǎng)模式是從本科生的認知特點出發(fā),讓教師在教授學生程序設計課程、提高學生編程能力的同時,培養(yǎng)學生的系統(tǒng)化程序設計思維。

程序設計課程不僅教學生如何進行計算機編程,而且教學生如何像程序員一樣思考問題。系統(tǒng)化的程序設計思維的培養(yǎng)過程就是讓學生自己動手解決實際問題的過程。這個過程充滿了學生對未知問題的探索、研究與創(chuàng)新,不僅可以教會學生解決在程序設計中遇到的問題,而且可以鍛煉思維,使學生的邏輯思維更加嚴密,這對一個理工科的大學生來說是至關重要的,對學生整體素質(zhì)的提高、程序設計課程整體教學水平的提高都有現(xiàn)實意義。

4)互換角色思考與提問。

在教學過程中我們發(fā)現(xiàn),很多學生不提問,有時是學生提不出問題,有時是不知該如何提問。這時,教師需要站在學生位置上,思考學生可能會有什么問題,然后由教師提出問題,讓學生來回答。如果學生不能回答,教師再為學生解答。教師備課時不再只是準備我要講什么,而是思考學生會遇到什么難點,需要向?qū)W生提什么問題、解答什么問題?;诖四康模處熜铚蕚浯罅拷?jīng)典案例,提出問題,分析問題,并在問題中設置一些錯誤,讓學生思考原因,并進一步思考如何修改錯誤,在這樣的學習過程中潛移默化地掌握基本的語法知識和解決問題的方法。這種模式轉(zhuǎn)變了學生的學習方式,激勵學生積極思考問題、分析和解決問題。

2.2理論課程設計

由于科學技術的快速發(fā)展,計算機科學與其他學科間的交叉、融合日益增強。大多數(shù)非計算機專業(yè)的培養(yǎng)目標已將學生的計算機程序設計能力作為了一項重要內(nèi)容。

本課程主要是針對非計算機專業(yè)的理工科一年級大學生開設的。與計算機專業(yè)不同的是,非計算機專業(yè)學生一般只學一門語言課程。因此,該課程的教學就擔負起培養(yǎng)學生編程能力的重要責任,成為了學習其他程序設計語言的基礎。

根據(jù)非計算機專業(yè)各學科的培養(yǎng)目標,“C/C++語言程序設計”課程在理論課程內(nèi)容設計上注意知識結(jié)構(gòu)的合理,強調(diào)基本能力的培養(yǎng),注重基礎理論與實際應用的融合。課程內(nèi)容體系結(jié)構(gòu)重點突出學以致用。課程內(nèi)容知識結(jié)構(gòu)由C語言簡單程序的編寫和調(diào)試、C語言程序設計基礎、控制結(jié)構(gòu)、數(shù)組、指針、函數(shù)、編譯預處理與變量的存儲類型、文件、結(jié)構(gòu)體與共用體、圖形程序設計基礎、C++程序設計基礎、查找和排序12部分組成。

根據(jù)學以致用的原則,在實際應用中,函數(shù)是程序設計的重要內(nèi)容之一,也是學生學習的難點之一,因此在理論課程設計中,我們將函數(shù)的使用提前講解,讓學生盡早接觸函數(shù),理解模塊化的設計方法,掌握函數(shù)的基本設計和操作。在講授第2章有關輸入/輸出庫函數(shù)時,可同時結(jié)合第8章文件的知識,使學生掌握實際問題中涉及不同數(shù)據(jù)的不同輸入/輸出方式,較好地解決了學生學習C語言后不能熟練掌握文件操作的問題。

教材在內(nèi)容編排上注重易用性。每章的開頭設置本章學習目標,之后設置本章學習指導,包含“課前思考”“本章難點”和“本章編程中容易出現(xiàn)的錯誤”。每章后的練習題涵蓋了程序設計中的常見算法,涉及簡單程序設計、較復雜程序設計、易于舉一反三的程序設計問題等內(nèi)容,使學生能夠通過練習,大大地提高編程能力。

2.3實驗課程設計

“C/C++語言程序設計”是一門實踐性很強的課程。在近幾年的課程建設與教學改革中,實驗課程注重理論課程內(nèi)容與實驗內(nèi)容的有機結(jié)合,強調(diào)學生創(chuàng)新能力和實際動手能力的培養(yǎng)。C/C++程序設計實驗教學內(nèi)容改變了以往驗證性實驗為主的現(xiàn)象,使設計性實驗內(nèi)容占了70%以上。通過實驗,培養(yǎng)學生分析問題和解決問題的能力,以及動手能力和程序設計能力,從而加深對理論課程內(nèi)容的理解。

實驗課程配有實驗指導書,共設計了11個實驗項目和一個綜合程序設計,其基本出發(fā)點是幫助學生理解和消化課堂教學的內(nèi)容,培養(yǎng)學生自主學習能力,加強其實踐能力和團隊協(xié)作精神,讓學生掌握程序設計的基本思想和方法。具體實驗內(nèi)容包括:C/C++簡單程序的編寫和調(diào)試、C語言程序設計基礎、控制結(jié)構(gòu)、數(shù)組、指針、函數(shù)、編譯預處理、文件、結(jié)構(gòu)體與共用體、圖形程序設計、C++程序設計基礎。

3 教學方法和手段

3.1教學方法

為了實現(xiàn)程序設計課程的教學目標,使學生不但掌握高級編程語言的知識、編程技術和基本算法,更要掌握程序設計的思想和方法,培養(yǎng)學生進行問題求解和編程的能力,以及探索和創(chuàng)新能力,我們采用了多種教學方法,主要做了以下改革。

1)課內(nèi)與課外訓練相結(jié)合,注重學生綜合能力的培養(yǎng)。

課內(nèi)教師根據(jù)教材進行引導學習,加強典型例題的啟發(fā)式講解。在分析常見錯誤案例的過程中,教師講解程序設計的基本方法、程序測試方法以及程序調(diào)試和排錯方法,幫助學生理解錯誤發(fā)生的原因和實質(zhì),掌握糾錯的方法和解決的對策。在實驗教學中,我們?yōu)槊刻脤嶒炚n設計相應的實驗項目。實驗項目的設計注重實用性和綜合性。實踐教學強調(diào)大量程序設計的訓練。教師在網(wǎng)上為學生一些經(jīng)典、實用、有一定挑戰(zhàn)性的作業(yè),鼓勵學生課外多訓練,倡導學生課后以寢室為單位,組成學習小組,進行討論、分析和解決問題。

為了激勵學生參與程序設計的實踐,進一步提高學生程序設計的興趣,提升他們的軟件技術水平,成都理工大學每年舉行一次全校范圍的程序設計大賽。大賽采用初賽和決賽制,要求學生在2~4小時內(nèi)完成一個綜合性較強的程序設計題目,或在一段時間內(nèi)完成一個綜合程序設計題目,然后進行答辯。

2)重視實踐教學環(huán)節(jié)、注重學生創(chuàng)新意識與應用能力的培養(yǎng)。

為了培養(yǎng)學生的實踐動手能力,我們加強了實踐教學環(huán)節(jié)的管理。教師要積極使用多媒體實驗室的教學設備,進行啟發(fā)、引導式的實驗指導,將平時測試與期末測試結(jié)合,測試學生在1個小時內(nèi)調(diào)試和正確編寫程序的能力,引導和督促學生重視實踐教學。開放性實驗注重培養(yǎng)學生的創(chuàng)新意識與應用能力。

3)網(wǎng)站互動學習。

課程組建立的教學網(wǎng)站、精品課程網(wǎng)站、課程資源平臺等為學生提供了網(wǎng)絡課程、網(wǎng)上答疑、作業(yè)提交、理論試題及答案、上機試題及答案、教學錄像、視頻節(jié)目、精品課程網(wǎng)站鏈接、相關學習網(wǎng)站鏈接等資源,擴充了課堂教學區(qū)域。學生可以在任何時候、任何地點進行互動學習。這種方法及時地解決了學生在學習中遇到的疑難問題。

4)改革考核方式,采用多元評價方式考核實驗成績。

為了提高學生的學習興趣,培養(yǎng)學生問題求解和編程能力,以及探索和創(chuàng)新能力,我們采用了開卷和閉卷相結(jié)合的考試方式,鼓勵基礎好的學生開卷考試,完成一個綜合編程題目。經(jīng)過實踐,參加開卷考試的學生在獨立分析問題、解決問題和編程能力上得到了很大提高。

3.2教學手段

多年以來,成都理工大學“C/C++語言程序設計”課程最大限度地、多方位地應用了以下現(xiàn)代教育技術手段。

1)課堂多媒體理論教學。

本課程的理論教學將傳統(tǒng)教學手段和現(xiàn)代教育技術手段相結(jié)合,在應用現(xiàn)代教育技術手段的同時,繼續(xù)發(fā)揮傳統(tǒng)教學的優(yōu)勢。課堂上多媒體課件的播放效果直接影響到學生的聽課效果,因此我們不僅制作了幻燈片,還利用Autherware、Flash等工具,制作了具有較強動畫效果的多媒體課件,將程序的執(zhí)行過程利用動畫演示,生動、形象地模擬了計算機執(zhí)行程序的真實情況。

2)建立計算機基礎教學網(wǎng)站。

我們開發(fā)課程網(wǎng)上教學平臺,為學生提供電子教案、多媒體課件、視頻等豐富的網(wǎng)上教學資源,同時提供討論和在線答疑,構(gòu)建以學生為中心的自主學習環(huán)境。

3)網(wǎng)上考試系統(tǒng)。

網(wǎng)上考試系統(tǒng)為學生提供了模擬和考試環(huán)境,實現(xiàn)了系統(tǒng)自動組卷和評分功能,為學生課后自學和自測、提高教學效果搭建了一個有效的平臺。

4 考核方式

課程考核可以采用開卷和閉卷2種形式。

1)閉卷考試由筆試和機試組成。

(1)筆試(占總成績的50%)主要考核語言基礎、基本的閱讀和編寫程序的能力。題型包括選擇題、填空題、程序閱讀題和程序填空題。

(2)機試(占總成績50%)主要考核程序設計能力,包括上機考試(占總成績的30%)和平時出勤及作業(yè)完成情況(占總成績的20%)。

2)開卷考試主要考核學生綜合程序設計的能力,獨立分析問題和解決問題的能力,難度較大。通常只有學習優(yōu)秀的學生可以參加開卷考試。這些學生必須是按時完成了每一次的實驗項目,且中期考試合格。開卷考試要求學生提供源程序、開卷考試報告并參加面試。

5 結(jié)語

通過對各種教學方法和教學手段的研究和探索,我們改變了傳統(tǒng)的知識傳授理念,從而更加注重學生解決實際問題的能力,并提出“以學生為主體,教師為引導,網(wǎng)絡教學為輔助”的全新理念,極大地激發(fā)了學生的學習興趣,挖掘了學生的創(chuàng)造潛能,又培養(yǎng)了他們自主研究、協(xié)作學習的能力。實踐證明,通過上述教學改革措施,教學效果取得了顯著提高。在計算機二級c語言考試中,學生通過率較往年大大提升。當然,實際教學過程是一個相當復雜的系統(tǒng),也還存在著一些需要解決的問題,還需要我們在今后的實踐中繼續(xù)開拓,不斷探索。

參考文獻:

[1]趙珊,賈宗璞,“C語言程序設計”課程教學模式改革方案探討[J],科技資訊,2011(35):185-187。

[2]黃群,C語言程序設計課程教學設計探討[J],計算機教育,2010(5):78-81。

[3]陳洪超,項目教學法在“C語言程序設計”課程中的應用[J],重慶電力高等??茖W校學報,2012,17(3):29-30,36。

[4]左永文,案例教學法在“C語言程序設計”課程中的應用[J],科技創(chuàng)新導報,2012(18):175-175。

第5篇:c程序設計語言范文

關鍵詞關鍵詞:C++;程序設計; 教學方法;教學改革

中圖分類號:G433

文獻標識碼:A 文章編號:16727800(2014)002018902

0引言

C++語言廣泛應用于基礎軟件、桌面系統(tǒng)、網(wǎng)絡通信、音頻視頻、游戲娛樂等諸多領域,是世界上使用最廣泛的編程語言之一。隨著物聯(lián)網(wǎng)技術的發(fā)展,C/C++技術在3G網(wǎng)絡通信、多媒體處理、智能識別等領域得到了進一步的推動和發(fā)展。但人才短缺依然制約著行業(yè)的發(fā)展,很多高校都認識到這一點,相繼開設《C++語言程序設計》課程,目的在于讓計算機專業(yè)的學生多學會一門編程語言,進一步培養(yǎng)學生獨立思考、分析和解決問題的能力,增加就業(yè)砝碼。然而《C++語言程序設計》這門課程學起來并不容易,不僅有很強的理論性,更具有實用性,課堂理論教學和代碼編寫缺一不可。在傳統(tǒng)教學過程中,由于教學目標不清晰,部分學生會質(zhì)疑開設這門課程的必要性,并且教學內(nèi)容或教學方法上的不足,也使得學生學起來枯燥,逐漸產(chǎn)生畏難心理。因此,高校《C++語言程序設計課程》的教學改革勢在必行。本文根據(jù)多年來的實際教學情況和C++培訓市場調(diào)研分析,從該課程的教學目標、教學內(nèi)容以及教學實施方法等方面進行探索性的改革。

1教學中存在的普遍問題

1.1學生無法明確教學目標

以武漢東湖學院的《計算機語言程序設計》課程為例,4年的時間依次開設了《高級語言程序設計——C》、《面向?qū)ο蟪绦蛟O計——Java》、《C++語言程序設計》《.net 程序設計》4門課程。學校的出發(fā)點是全面培養(yǎng)學生的軟件開發(fā)編程能力,不斷提高學生獨立思考、分析和解決問題的能力,從而增加學生就業(yè)砝碼。4門課程跨越不同的教學學期,由不同的教師授課,教師如果只關注自己所授課程,沒能從全局比較分析,學生很可能無法明確教學目標。

C++語言比較難學,課程教學中牽涉到的概念比較復雜、規(guī)則繁多;C++使用靈活、容易出錯,不少學生感到學習困難;同時C++是面向?qū)ο蟪绦蛟O計語言,但又不是純面向?qū)ο笳Z言,它在過程語言中增加了面向?qū)ο蟮慕Y(jié)構(gòu)。這種特性使得C++語言能夠保持與C語言的兼容。在教學初期,學生會覺得C++很親切,許多C語言代碼不經(jīng)修改就可以為C++語言使用[1]。此時如果不讓學生明確學習的目標和意義,學生很容易誤解甚至會置疑:學了C為什么還要學C++,既然不是純面向?qū)ο笳Z言,用Java替代C++不就可以了嗎?這樣,C++語言教學自然不會有良好的教學效果。

1.2教學內(nèi)容注重語法,課后延伸不多

教學內(nèi)容更多關注語法。C++語言同所有算法語言一樣都由自己特定語句組成,每條語句又有自己的一些特定使用規(guī)則[2]。在傳統(tǒng)的《C++語言程序設計》課程教學中,無論是教材還是教師授課,都是先介紹概念,再介紹規(guī)則,最后講解例子。有關概念規(guī)則的內(nèi)容相對來說較為枯燥難記,在講授過程中,難以引起學生的興趣。雖然最后有例子講解,但通常都是彼此孤立的、按章節(jié)對應教學內(nèi)容的一些小數(shù)學問題[2],學生還是很難從中感受到實際應用價值。

受課程學時所限,課程教學內(nèi)容大多也只能以基本的語法、規(guī)則、小案例形式來呈現(xiàn)。如果課后不加以延伸或適當學習,學生對C++的學習就只能停留在皮毛。

1.3教學方法與企業(yè)實際脫節(jié)

學生在學習《C++語言程序設計》課程時,往往有種“只見樹木,不見森林”的感覺。因為傳統(tǒng)教學往往都是簡單地按照教材順序循序漸進地進行,每節(jié)課都會讓學生學習并記住許多概念和規(guī)則,但他們并不知如何綜合起來解決問題[3]。即使安排大量實驗課,也多是圍繞每個章節(jié)分散地進行相關概念或者規(guī)則的實踐。一段時間后學生往往對這門課感到厭倦,學到的知識也不足以駕馭實際項目開發(fā)。

2教學改革策略

針對上述現(xiàn)象,本文從以下幾方面探討了對課程的教學改革,實際運用中也取得了良好的教學效果。

2.1明確學習目的,激發(fā)學生的內(nèi)在動力

教育心理學指出,學習動機是學習活動得以發(fā)生、維持進行,直到完成的內(nèi)在動力?,F(xiàn)代大學生對自己的學習活動、學習內(nèi)容以及其對未來的就業(yè)和發(fā)展十分關注,如能在課堂教學初期講清課程的開設目標以及相關就業(yè)前景,充分重視學生的這種學習動機,學習效果自然會提高。例如,在講授《C++語言程序設計》課程前,可以收集一些招聘C++語言編程人員的就業(yè)信息及畢業(yè)生從事C++語言編程工作的收入、工作崗位發(fā)展趨勢等學生十分關注的重要信息。到了教學初期,在講授“什么是C++”時,可穿插著介紹這些信息,并讓學生知道“C++語言廣泛應用于基礎軟件、桌面系統(tǒng)、網(wǎng)絡通信、音頻視頻、游戲娛樂等諸多領域。目前,企業(yè)招牌C++軟件開發(fā)工程的數(shù)量占軟件開發(fā)工程師總量的1/3左右,薪水居高不下。要盡快使每個學生明確即將學習的知識與社會的關系,因人而異地幫助學生找到各自的學習目標,激發(fā)學生的內(nèi)在動力。

2.2教學內(nèi)容注重從整體到具體,再從具體到整體

雖然教材的編排大都按照先概念、再規(guī)則、最后舉例這一順序,但由于其間知識的分散性,彼此缺乏聯(lián)系,使學生不能體會一個完整的編程過程。在教學中,應注重教學內(nèi)容從整體到具體,再從具體到整體,使學生通過一個完整案例先快速了解C++語言程序設計的全過程,然后增添程序設計的教學內(nèi)容,具體分析實現(xiàn)步驟中的各個知識點,學習更高標準和要求的程序,最后學生在學完所有知識點后完成一個完整的設計。這種思路特別適合程序設計類的其它課程。

2.3教學方法注重同中求異、異中求同

這樣可使學生學會抓住事物的本質(zhì)特點,加深對事物的理解,有利于培養(yǎng)學生的創(chuàng)造性思維。為了能使學生的學習更深入,采用對比的方法進行教學,可以達到很好的教學效果。例如,學生在學習C++語言時可以拿它與C語言作比較,C++程序語言與C語言在程序設計思路上存在著不同:一個是面向?qū)ο蟮某绦蛟O計語言,將數(shù)據(jù)與數(shù)據(jù)方法捆綁在一起;一個是面向過程的程序設計語言,由上至下,采用分模塊方式。但兩者之間的共同之處也比較多,C++語言是對C語言的改進與擴充,是C語言的一個超集,它保持了對C語言的兼容,也即在C語言中使用的命令,可以直接在C++中使用。通過比較,學生更能體會到教學的目的性。

2.4校企聯(lián)合,模擬職前培訓

計算機專業(yè)的畢業(yè)生為了快速就業(yè),有時會選擇到培訓機構(gòu)進行職前培訓。培訓并不意味著一定就業(yè)或高薪,關鍵還是看學生。高校進行《C++語言程序設計》課程教學時,如能實現(xiàn)校企聯(lián)合,在后期的實踐環(huán)節(jié)注入培訓機構(gòu)的授課法,即通過多個項目讓學生掌握C++的軟件開發(fā)技能,將大量的開發(fā)經(jīng)驗融入教學;并且,每學完一個專題就配一個項目實戰(zhàn),最后完成一個即時通信或多媒體音/視頻項目,積累開發(fā)經(jīng)驗,模擬職前培訓,對學生能力的提高大有益處。

3結(jié)語

本文提出了《C++語言程序設計》課程的教學改革思路,即通過改善教學方法,調(diào)整教學內(nèi)容,真正以激發(fā)學生學習興趣為導向,校企聯(lián)合或者注入培訓機構(gòu)的授課法模擬職前培訓,讓學生積累開發(fā)經(jīng)驗。教學實踐證明,這些教學改革舉措在一定程度上能夠提高教學效果,同時其非常適用于其它編程語言課程的學習。

參考文獻:

[1]楊庚.面向?qū)ο蟪绦蛟O計與C++語言[M].北京:人民郵電出版社,2006.

第6篇:c程序設計語言范文

關鍵詞:C++;課程研究;教材建設;負反饋教學

1C++教材建設現(xiàn)狀

C++語言是兼容C語言的面向?qū)ο蟪绦蛟O計語言,隨著軟件工程技術和面向?qū)ο蟪绦蛟O計技術的發(fā)展,迅速成為主流的面向過程和面向?qū)ο蟮某绦蛟O計語言,是編寫系統(tǒng)軟件和應用軟件的通用語言,也是各類高校,尤其是理工類和綜合性高校開設高級語言程序設計課程的首選教學語言之一,同時也是非計算機專業(yè)計算機等級考試和計算機專業(yè)程序員水平與資格考試指定語種之一,其影響廣泛而深遠。C++程序設計課程(以下簡稱C++課程)也因此成為國內(nèi)外高校普遍開設的計算機基礎課程。它不僅是一門程序設計課程,而且是許多專業(yè)課程(如數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、微機原理,單片機及應用)的重要基礎,更是這些專業(yè)開展計算機研究、應用和綜合運用本專業(yè)知識的重要表達工具和開發(fā)工具。它的基礎性、普遍性和重要性逐步為人認識和重視。國外高校比較重視該課程建設,從原版影印教材可見一斑。國內(nèi)高校講授該課程較晚,課程建設也較晚,現(xiàn)有教材狀況可分下列幾類。

1) 英文影印版。主要用于高校圖書館館藏、教學參考和高校雙語教學試點,如高等教育出版社影印出版的《The C++ Programming Language》(BjarneStroustrup著)和《Programming in C++》(Nell Dale,Chip Weems和Mark Headington著)。由于國外高校課程體系與國內(nèi)高校有較大差別,且國外高校的教學課程通常只指定教學參考書而不指定教材,因此,若把這些教學參考書當教材使用,必然使主講教師所講內(nèi)容與所選教材吻合度較差,很難發(fā)揮教材應有的作用。

2) 英文編著版。這類教材是指由高校主講教師依據(jù)本校雙語教學試點要求和/或合作辦學要求自編,目前尚處于探索階段。

3) 編譯版。這類教材是指引進國外經(jīng)典C++教材,翻譯成中文,在國內(nèi)銷售的教材,如Harvey M.Deitel, Paul James Deitel編著的《C++ How to Program》分別由清華大學出版社出版(名為《C++程序設計教程》,施平安譯)及電子工業(yè)出版社出版(名為《C++大學教程》,邱仲潘等譯)。由于翻譯質(zhì)量、閱讀習慣、價格、教材配套、課程體系等方面的問題,通常用作教學參考和圖書館館藏,很少用作教材。

4) 中文編著版。這類教材量大面廣,通常由高校主講教師(如南京理工大學張岳新,浙江工業(yè)大學錢能,清華大學鄭莉,西安交通大學羅建軍,華南理工大學周靄如,北京大學呂鳳翥等)結(jié)合本校實際編寫。編寫思路多,如有的以算法為主、有的以語法為主、有的先講面向過程程序設計后講面向?qū)ο蟪绦蛟O計、有的自始至終貫徹面向?qū)ο蟪绦蛟O計思想,還有的參照國外教材的編排體系等。但上述教材或多或少存在一些不足,如起點高、跨度大、系統(tǒng)性不強、急于闡述C++的新進展等,對實驗、學習、課程設計指導等重視不夠,不一定滿足其他學校的教學要求。

2C++教材建設思路

C++課程是各類高校普遍開設的計算機核心基礎課程,應用廣、影響大。與歐美發(fā)達國家高校相比,我國高校生平均教學資源占有率嚴重偏低,尤其是可用的C++課程教學參考資料較少,因此,教材在我國既是知識的載體,又是教學的工具,對保障教學質(zhì)量顯得格外重要。與傳統(tǒng)教材相比,C++課程教材的內(nèi)容廣,理論性、實踐性和綜合性強,更新速度快,成熟意味著過時,教材作者新人輩出,教材種類多、更新快、問題也多。因此,C++課程教材改革與建設有其自身的顯著特點。

C++課程理論教學和實驗教學并重,學以致用,以通過編程解決實際問題為目標;課程內(nèi)容涉及基本語法、基本算法、基本數(shù)據(jù)結(jié)構(gòu)、編程思想、編程技巧和程序調(diào)試技術等,綜合性、實踐性強,理論與實踐結(jié)合緊密;實驗編程環(huán)境極其嚴格,結(jié)果要求百分之百正確,對培養(yǎng)大學生編程能力、創(chuàng)新能力和嚴謹?shù)目茖W作風有非常重要的作用。

好的C++程序設計教材首先應以長期持續(xù)的課程建設為依托,以堅實的教學研究和教學實踐為基礎,體現(xiàn)課程建設成果;其次應結(jié)合自身實際,分析研究C++課程的目標、特點、內(nèi)容、結(jié)構(gòu)及與其他課程的關系,在教材的編寫思路、框架結(jié)構(gòu)和教學內(nèi)容的組織、取舍、闡述、更新、難點處理等諸多方面有所改進和創(chuàng)新,注重學生實際編程能力培養(yǎng)和創(chuàng)新能力培養(yǎng);再次應符合讀者的認識規(guī)律和編程能力的形成規(guī)律,既便于自學和教學,又利于教學效果的鞏固和教學質(zhì)量的提高;最后還應有必要的優(yōu)質(zhì)的配套教學資源。

3C++課程建設歷程

我校于1998年在計算機專業(yè)首先開設C++課程,2000年擴展到電子信息工程、電子科學與技術、通信工程、電氣工程、自動化、信息計算、信息系統(tǒng)與信息管理等非計算機專業(yè)。目前課程規(guī)模年均近2000人。

基于C++課程的基礎性和重要性,2000年在校教務部門和院領導的指導和支持下,專門成立了以具有豐富教學經(jīng)驗和實際編程經(jīng)驗的教師為主體的C++教學研究小組(以下簡稱教研組),并設立課程負責人,使課程的教學、研究、建設和管理步入持續(xù)不斷的良性發(fā)展軌道。

十多年來,教研組結(jié)合我校實際,對C++課程的特點、內(nèi)容、結(jié)構(gòu)、方法及與其他課程的關系等方面做了大量研究工作,以提高教學質(zhì)量為首要目標,改進教學方法,形成了一整套針對該課程實際的教學理論和教學方法,即C++課程負反饋教學法,并編寫了大量具有負反饋教學法特色的教學材料,采取了一系列的教改措施,使該課程的教學質(zhì)量得到明顯的提高,為本課程的精品化建設奠定了堅實基礎。

3.1積極穩(wěn)妥推進教學方法改革,形成頗具特色的負反饋教學法[1-3]

課題組根據(jù)多年教學研究與實踐,在教育學和心理學的基礎上,用現(xiàn)代過程控制理論分析傳統(tǒng)教學過程,于2002年建立負反饋教學模型(如圖1所示)。由于模型引入了負反饋環(huán)節(jié),從理論上可以確保教學質(zhì)量的穩(wěn)定。在負反饋教學模型基礎上,吸收單元教學法、布魯納的“發(fā)現(xiàn)教學法”和瓦根舍因的“范例教學法”的合理成分,形成負反饋教學法,在我校C++課程教學實踐中,取得了較好的教學效果。

負反饋教學法的原理是從教學過程中反饋(作業(yè)、實驗、答疑、單元測驗等)的問題入手,通過及時講評,解決學生學習中存在的各種問題,以達到預期的教學目標。由于反饋的是教學過程中存在的問題,故稱此方法為負反饋教學法。負反饋教學法包括以下4個主要方面。

1) 教學內(nèi)容單元化組織。

按程序設計方法演進發(fā)展的自然順序及C++實際編程能力形成的3個關鍵期,即結(jié)構(gòu)化程序設計模塊程序設計面向?qū)ο蟪绦蛟O計,將C++教學內(nèi)容組織為3個單元,有利于教學的組織、實施、考核,有利于教學效果的鞏固和教學質(zhì)量的提高。

2) 用“范例”組織課堂教學,貫徹“發(fā)現(xiàn)式”教學思想,注重學生創(chuàng)新素質(zhì)和優(yōu)秀人才的培養(yǎng)。

范例教學法由教育學家瓦根舍因(M.Wagenshein)提出,教師通過范例輔助學生理解、掌握知識和原理,其目的是讓學生能夠獨立地獲得判斷能力、推理能力、認識能力和繼續(xù)學習的能力。以往,程序設計課程教學通常以一門具體語言為主線,圍繞語法知識展開。而實質(zhì)上,設計程序是為了解決實際問題,是一種縝密思維方式、創(chuàng)新素質(zhì)和綜合能力的培養(yǎng),要使學生對程序設計有興趣,必須使他們親自感受并體驗程序設計的無限魅力。為此,我們改用范例組織本課程的課堂教學。在多媒體教學設備和真實編程環(huán)境的支持下,課堂教學以程序(范例)為主線。所選范例程序具有典型性、綜合性和可擴展性,涉及基本語法、基本算法和基本調(diào)試技術。范例程序的講解首先符合“現(xiàn)象發(fā)現(xiàn)問題分析問題解決問題驗證”的探索過程,使學生掌握基本語法、算法及應用;其次,通過對范例程序的啟發(fā)式擴展,揭示程序由小到大、由簡單到復雜直到實用的過程,激發(fā)學生的探索熱情和興趣,使學生掌握知識間的聯(lián)系和編程的工程化思想,獲得實際編程能力。

3) 采集教學負反饋信息,做好分類、分析和講評,注重學生整體水平。

按負反饋教學法要求,任課教師做好作業(yè)和實驗報告抽樣批改、單元測驗的全樣批改,重視實驗指導和答疑。在獲取足夠的負反饋信息后,任課教師及時做好問題的分類、分析和講評,以保證學生整體水平的提高。

4) 根據(jù)大班教學特點,推進強同步教學策略,確保整體效果。

大班教學成功的關鍵在于保持教學的師生同步狀態(tài)。負反饋教學法的師生同步措施有:授課、作業(yè)、實驗、講評和測驗。其中,作業(yè)與實驗報告同步效果欠佳,其原因是大班教學學生抄襲現(xiàn)象較為普遍,因此,作業(yè)與實驗報告為弱同步措施;授課、講評與測驗同步效果較好,為強同步措施。為使大班教學取得較好的效果,采用強同步措施是必要的。我們在每個單元結(jié)束時安排一次測驗,以實現(xiàn)師生的強同步,及時取得真實的負反饋信息。

由于采用負反饋教學法,所以課堂教學可以突出重點和難點,而將易于自學的內(nèi)容只做要求不做講解,這樣,一方面解決了課時少與內(nèi)容多、難點多的矛盾,另一方面也提高了學生的自學能力和自我解決問題的能力。

3.2強化實踐教學,注重培養(yǎng)學生的實際編程能力和創(chuàng)新能力[1-3]

C++課程難點多、綜合性,主要涉及基本語法、基本算法、基本操作及綜合應用等方面內(nèi)容。

實驗是本課程至關重要的環(huán)節(jié),學生只有通過實驗才能檢驗自己是否真正掌握和運用該語言:通過上機調(diào)試程序,會發(fā)現(xiàn)很多想不到的問題;通過解決這些問題,可以加深對語言和算法的理解、提高程序調(diào)試能力、實際編程能力和創(chuàng)新能力。為此,本課程設有課內(nèi)實驗和課程設計實踐教學環(huán)節(jié)。

1) 課內(nèi)實驗注重培養(yǎng)學生基本調(diào)試能力和基本編程能力。

基本調(diào)試能力是學生通過深入學習取得實際編程能力的前提,常被人忽視。因此,我們根據(jù)教學內(nèi)容編寫了一套以調(diào)試技術、基本語法、基本算法、綜合編程為核心內(nèi)容的同步實驗指導,共擬定了17個實驗,每個實驗通常包括調(diào)試題、編程題和選做題,可供不同層次的學生選用。

2) 課程設計注重培養(yǎng)學生綜合編程能力。

C++課程設計以綜合性程序設計訓練為主,選題具有典型性、綜合性和示范性,突出難點及其實用價值,使學生體會到難點不難,而且感到難點在實際編程中非常有用。學生通過訓練進一步鞏固和掌握基本語法、基本算法和基本調(diào)試技術,養(yǎng)成良好程序設計風格(模塊化、結(jié)構(gòu)化)和嚴謹?shù)目茖W作風,初步形成軟件工程化思想,并具有一定的程序組織能力。

C++課程設計的內(nèi)容包括基本算法和數(shù)據(jù)結(jié)構(gòu)的綜合運用。其中,基本算法涉及窮舉、迭代、遞推、遞歸、排序和查找等,數(shù)據(jù)結(jié)構(gòu)涉及數(shù)組、結(jié)構(gòu)、指針、動態(tài)內(nèi)存分配、單向鏈表、類、文件等。

3) 強化實踐教學輔導和考核,確保實踐教學質(zhì)量。

實踐環(huán)節(jié)實行教師輔導、答疑和考核。課內(nèi)實驗實踐環(huán)節(jié)主要涉及預習情況檢查、輔導情況記錄、實驗報告批閱和典型問題講評,課程設計實踐環(huán)節(jié)主要涉及預習情況檢查、輔導情況記錄、聯(lián)機考核和課程設計報告批閱。對于課程設計考核,每位學生的聯(lián)機考核時間約5~10分鐘,考核內(nèi)容包括講解和演示自編程序,回答老師提問(3~5個)。通過采取上述措施,實踐教學質(zhì)量得到充分保障。

4) 及時總結(jié)和推廣實踐教學經(jīng)驗。

根據(jù)教師多年的實際編程經(jīng)驗和教學經(jīng)驗,編印典型問題和綜合問題編程專題,供學生課外閱讀參考,便于學生突破難點,融會貫通,體驗綜合編程的樂趣,培養(yǎng)他們分析和解決問題的能力。

3.3積極開展教學內(nèi)容研究,及時更新教學內(nèi)容

根據(jù)程序設計課程本身發(fā)展快、更新快、綜合性強、存在問題多的特點,針對同類教材中普遍存在的問題和不足,積極開展教學內(nèi)容的研究,確保教學內(nèi)容的正確性和系統(tǒng)性,確保將重點難點內(nèi)容講清講透,先后發(fā)表教學內(nèi)容研究論文20多篇。代表性論文有:C++運算符重載教學和編程中易被忽視的問題、C++語言引用型變量的實現(xiàn)機制淺析、C/C++語言可變參數(shù)函數(shù)的參數(shù)傳遞機制剖析、C/C++中數(shù)組與指針的關系、C++中二維數(shù)組與指針關系的深入剖析、C++迭代器機制剖析、C++標準模板庫與代碼重用。

4C++教材建設成果

教研組根據(jù)對國內(nèi)外流行C++教材的研究分析和試用,結(jié)合我校非計算機專業(yè)計算機基礎教學改革、計算機專業(yè)教學改革和課程建設的實際,積極穩(wěn)妥地開展體現(xiàn)負反饋教學特色的系列教材的編寫和出版工作。

2005年2月,教研組自編教材《Visual C++程序設計習題、實驗與編程實踐》由華東理工大學出版社出版,同年12月第二次印刷,累計印刷3次,得到了社會讀者的認同。2005年10月,我校C++課程獲江蘇省高等學校精品教材立項建設,在清華大學出版社的支持下,于2007年2月主編出版教材《C++程序設計實踐教程》(含教學課件),累計印刷3次;在高等教育出版社的支持下,于2007年11月主編出版教材《C++程序設計教程》(含教學課件)和《C++程序設計實驗與編程實踐》。

教材的配套建設充分發(fā)揮了教材的作用,滿足了我校教學需要。其中,《C++程序設計教程》和《C++程序設計實驗與編程實踐》主要用于我校計算機專業(yè)教學,《C++程序設計實踐教程》和《Visual C++程序設計習題、實驗與編程實踐》主要用于我校非計算機專業(yè)教學。

下面簡要介紹教研組近年主編出版的C++課程系列教材的特點。

4.1 《C++程序設計教程》及其配套教材[4-5]

1) 內(nèi)容組織結(jié)構(gòu)合理,層次分明。教材按程序設計方法演進發(fā)展的自然順序及C++實際編程能力形成的三個關鍵期,將C++教學內(nèi)容分為三大單元,即結(jié)構(gòu)化程序設計(1~4章)模塊化程序設計(5~9章)面向?qū)ο蟪绦蛟O計(10~14章)。內(nèi)容組織由淺入深,循序漸進,符合讀者的認識規(guī)律和編程能力的形成規(guī)律,便于教學的組織、實施和考核,利于教學效果的鞏固和教學質(zhì)量的提高。

2) 緊跟標準,內(nèi)容求新。本書介紹的是標準C++,符合ANSI/ISO C++標準(包括1998第一版和2003第二版),引導讀者按C++標準編寫程序。本書對以往教材中帶有一定普遍性的問題如“指針就是地址,地址就是指針”等進行了澄清和糾正。

3) 不避難點,力求突破。許多有一定基礎的讀者學習程序設計半途而廢的重要原因之一是未能突破實際編程中的難點問題,這與不少主流教材以各種理由極力回避難點有密切的關系。本書針對教學和實際編程中的難點(如遞歸、指針、動態(tài)內(nèi)存分配、虛函數(shù)等),精挑多選范例程序,想方設法講清講透,力求使讀者突破難點,學以致用,不致半途而廢。

4) 范例程序,精心設計。程序是語法、算法、思想和方法有機結(jié)合的載體,是計算機解決實際問題的鑰匙,學習程序設計離不開程序。書中大量的范例程序是經(jīng)過作者精心挑選和精心設計的,表達準確、簡練,書寫規(guī)范,示范性強。

配套教材《C++程序設計實驗與編程實踐》分三部分:

1) 實驗指導。實驗與課堂教學同步進行,是本課程至關重要的環(huán)節(jié)。共20個實驗,每個實驗通常包括調(diào)試題、編程題和選做題,供不同層次讀者選用。

2) 典型問題和綜合問題編程。列舉實際編程中提煉的典型和綜合問題的編程范例,突出難點及其實用價值,使讀者體會到難點不難,難點在實際編程中非常有用。所列范例程序涉及程序的結(jié)構(gòu)化書寫格式、程序由小到大、由簡單到復雜直到實用的過程。

3)Visual C++ 6.0程序調(diào)試技術。這部分內(nèi)容幫助讀者熟練掌握主流的C++開發(fā)環(huán)境Visual C++ 6.0的程序調(diào)試技術,使他們具備主動上機調(diào)試程序的能力。

4.3 《C++程序設計實踐教程》[6]

1) 內(nèi)容組織原則與4.2一致。

2) 內(nèi)容取舍上,根據(jù)閱讀對象為高校理工類專業(yè)的一年級新生的實際,注重基礎和系統(tǒng),兼顧提高。內(nèi)容包括:結(jié)構(gòu)化程序設計基礎(C++概述、數(shù)據(jù)類型、運算符、表達式、簡單的輸入輸出、算法及其表示、流程控制)、模塊化程序設計(函數(shù)、編譯預處理、數(shù)組、結(jié)構(gòu)體、共用體、枚舉類型、指針和引用)和面向?qū)ο蟪绦蛟O計(類、對象、繼承、派生、友元、虛函數(shù)、運算符重載、I/O流類庫、模板、異常處理、命名空間等)。

3) 編寫思路上,通過以基本語法和基本算法為主線的典型、綜合范例程序,適時闡述有關程序設計的思想、方法和技巧,將C++語法、基本算法和程序設計方法有機結(jié)合起來,理論聯(lián)系實際,注重學生實際編程能力培養(yǎng)。

4) 內(nèi)容闡述上,注重概念準確、由淺入深、循序漸進、圖文并茂、簡明扼要、舉一反三、用例精練,便于教學和自學。范例程序表達簡潔,書寫規(guī)范,示范性強。

5) 難點處理上,不回避教學和實際編程中的難點,并適時提出擴展性問題,激發(fā)學生的探索熱情和興趣,利于創(chuàng)新人才培養(yǎng)。

6) 內(nèi)容的更新上,及時反映C++程序設計課程的教學研究成果,對以往教材中帶有一定普遍性的問題如“引用型變量不占內(nèi)存”等進行了澄清和糾正。

7) 配套的教學資源上,豐富、實用,包括實驗與編程指導、學習指導、課程設計指導、電子教案、試卷庫和課程網(wǎng)站等。

8) 教學的試點上,校內(nèi)試用多年,幾經(jīng)調(diào)整,起點低,教學效果好。

4.4 《Visual C++程序設計習題、實驗與編程實踐》[7]

1) 學習指導。根據(jù)非計算機專業(yè)計算機等級考試要求,按章編排了相應具有較強啟發(fā)性的典型例題和習題。為取得較好學習效果,按C++實際編程能力形成的三個關鍵期,共設置了三個單元測驗。單元測驗的內(nèi)容突出重點和難點以及綜合運用,目的是及時發(fā)現(xiàn)并解決教學中存在的問題。

2) 實驗指導。共有17個實驗,每個實驗包含調(diào)試技術介紹、程序調(diào)試題、程序設計題和選做題,注重培養(yǎng)學生的編程能力和調(diào)試能力,強化其實際編程能力訓練,激發(fā)其編程興趣。

3) 典型問題和綜合問題編程。共8個專題,便于學生突破難點,融會貫通,體驗綜合編程的樂趣,培養(yǎng)他們分析和解決問題的能力。

4) 二級考試模擬試卷。

5)VC++ 6.0程序調(diào)試技術,包括使用VC++ 6.0 IDE編寫和調(diào)試程序的方法和技巧。

5結(jié)語

十多年來,教研組圍繞C++課程,潛心教學、研究、建設和積累,形成了頗具特色的負反饋教學法,發(fā)表相關教學論文20多篇,出版教材4部,建成1門省級精品課程(《Visual C++程序設計》)、1部省級精品教材(《C++程序設計教程》)和1個校級優(yōu)秀教學團隊,取得中國交通教育研究會2007-2009年度優(yōu)秀成果一等獎(《C++程序設計實踐教程》)1項,獲得第十屆“挑戰(zhàn)杯”全國大學生課外科技作品競賽全國二等獎等5項省級以上獎勵。

精品教材建設是一個長期過程,我們將繼續(xù)沿著自底向上的建設路徑,及時總結(jié)C++教材建設的經(jīng)驗,認真做好特色系列教材的編寫、重印、修訂、再版和配套建設,進一步提升教材建設的層次,不斷擴大C++教材在校內(nèi)、省內(nèi)和國內(nèi)的受益面。

參考文獻:

[1] 陳建平,劉維富,王春明,等. Visual C++程序設計課程建設研究與實踐[J]. 計算機教育,2007(12):18-20.

[2] 劉維富,陳建平,王春明,等. 淺談“C++程序設計”課程的建設與實踐[C]//大學計算機課程報告論壇組委會. 大學計算機課程報告論壇論文集2006. 北京:高等教育出版社,2007:92-97.

[3] 顧暉,劉維富,管致錦,等. 負反饋教學法的原理與實踐[J]. 電氣電子教學學報,2004(4):102-104.

[4] 陳建平,劉維富,葛建芳. C++程序設計教程[M]. 北京:高等教育出版社,2007:前言.

[5] 劉維富,葛建芳. C++程序設計實驗與編程實踐[M]. 北京:高等教育出版社,2007:前言

[6] 劉維富,陳建平,葛建芳,等. C++程序設計實踐教程[M]. 北京:清華大學出版社,2007:前言.

[7] 劉維富,丁衛(wèi)平,沈?qū)W華,等. Visual C++程序設計習題、實驗與編程實踐[M]. 上海:華東理工大學出版社,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 )

第7篇:c程序設計語言范文

關鍵詞:《C語言程序設計》;教材建設;教學改革;教學模式

中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2007)04-11170-02

1 引言

程序設計作為計算機等有關專業(yè)必修的一門重要的專業(yè)技術課程,是信息系統(tǒng)學科的一門核心課程,是一門理論性和實踐性都很強的課程。C語言程序設計是理工科各專業(yè)計算機應用能力培養(yǎng)的重要技術基礎。C語言既具有低級語言可直接訪問內(nèi)存地址、能進行位操作、程序運行效率高的優(yōu)點,又具有高級語言運算符和數(shù)據(jù)類型豐富、結(jié)構(gòu)化控制語句功能強、可移植性好的優(yōu)點,成為程序設計語言的常青樹。C語言課程是數(shù)據(jù)結(jié)構(gòu)、C++面向?qū)ο蟪绦蛟O計、操作系統(tǒng)和軟件工程等課程的基礎,并可為這些課程提供實踐工具。

C語言是一門實用性的語言。其實驗教學環(huán)節(jié)作為C語言程序設計課程教學中一個十分重要的教學環(huán)節(jié),對于實現(xiàn)課程教學的目標起著重要的作用,是理論聯(lián)系實際的必需的手段,對于理工科大學接受系統(tǒng)的實驗方法和實踐技能訓練,培養(yǎng)科學實驗能力是很好的鍛煉,學生經(jīng)過C語言程序設計實驗教學環(huán)節(jié)后對于C語言程序設計理論知識的“三基”(基本理論、基本方法、基本手段)才會有更為深刻地理解。

傳統(tǒng)的教學方法中,程序?qū)嶒灜h(huán)節(jié)只是配合每一章所學的內(nèi)容進行在計算機上的實踐,這樣的方法讓學生只是孤立的了解了某些C語言程序設計知識,所涉及的知識面較窄,缺少學科的綜合性,而且動手能力很差,無法將實際的具體問題和C語言程序設計知識聯(lián)系起來。學生的學習興趣不高,教學效果較差。為了改變這一現(xiàn)狀,我們對C語言程序設計實驗教學的實驗教學觀念、實驗教學內(nèi)容、實驗教學的組織方式和實驗教學的手段進行改革性的探索和實踐,將教學的目的變?yōu)槔碚摵蛯嵺`并重,以提高學生的實用的掌握這門語言的能力。

2 教學改革方法

針對這些問題,我們在教學中進行了大膽的探索和嘗試,主要從以下幾個方面進行的:

2.1 加強教材建設

在教學工作中,我們主張講授要少而精,而選擇教材則應在廣度和深度上留有較大的余地。在高等學校中應該提倡老師講授的內(nèi)容和課時不要太多,為學生提供的教材和學習材料則應該盡量多,并且有一定的深度。這樣,才可能讓學生有充分的主動學習的空間,使學生在花費精力學習不同課程時有較大的選擇余地,同時,學生學習這門課程的能力和興趣往往差別很大,對于水平高有興趣的同學,應該為他們創(chuàng)造深入學習的條件。教材應該是一個學習園地,而不是講稿,老師的講課好像是導游,為學生的游覽(學習)提供指導。講授的內(nèi)容不可能與教材的內(nèi)容相一致,正是這種不一致性,使得學生獲得了較大的獨立學習的空間,這樣培養(yǎng)出來的人才,才可能有較強的學習和創(chuàng)新能力。我們將“少課時,大教材”作為教學改革的一項措施,認為教材應該為學生留有主動學習的空間,這樣有利于加強素質(zhì)教育,從而提高教學質(zhì)量。

另外,我們針對當前市場上課本的魚龍混雜的情況,常常在語言的細節(jié)上浪費筆墨,這樣不但容易使得初學者迷失在這些復雜而龐大的細枝末節(jié)上,而且不能很好的掌握C語言程序設計的實質(zhì)。我們根據(jù)自己多年來從事C語言程序設計語言教學的經(jīng)驗和實際開發(fā)軟件項目所積累的豐富的軟件開發(fā)經(jīng)驗編寫教材。強調(diào)程序設計方法和技巧的掌握比對語言細節(jié)的理解重要得多,而對語言細節(jié)的透徹理解只有通過大量的時間和長期的編程實踐才能獲得。我們編寫《C語言程序設計》教材使學生能在較短的時間內(nèi)理解C語言程序設計的基本概念并掌握C語言程序設計的方法,初步培養(yǎng)學生按C語言的思想方式分析和解決問題的思維習慣。

2.2 編程實踐環(huán)節(jié)驅(qū)動的教學模式

上機編程實踐是學好C程序設計語言的關鍵?!熬v多練”式教學方法的基本特點是上機時數(shù)較多。上機實踐是掌握Visual C++的一種有效途徑,我們在教學中采用1.5:1的模式,即每上3課時的理論課,安排2課時的上機實踐。在講授理論課時,還要針對自學部分和調(diào)試技術等內(nèi)容進行簡短的指導, 然后學生在教師指導下上機練習。

2.2.1 重視C語言的上機編譯環(huán)境的運用

C 語言的理論知識是以實踐作為依據(jù)的,一個程序的執(zhí)行過程涵蓋該程序所有知識點。我們機房提供了TurboC 2.0、WinTC、Visual C++6.0三種C語言的編譯和運行環(huán)境。我們認為WinTC雖然基于windows環(huán)境,操作簡單,但調(diào)試功能不強。我們采用Visual C++6.0集成開發(fā)環(huán)境,強調(diào)利用調(diào)試工具幫助編程者去思考程序,我們強調(diào)單步執(zhí)行功能(step in、step out、step over)、設置斷點(breakpoint)、添加變量監(jiān)視框(Add Watch)的運用,這樣可以對程序執(zhí)行過程進行跟蹤監(jiān)視,可以幫助學生更好的理解程序中的分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和函數(shù)的虛參實參調(diào)用等C語言的知識點,從而彌補課堂教學的距離感和枯燥感,使學生學的更有興趣,更為主動,掌握的知識也更全面。

2.2.2 重視對警告信息的改正

學生通過課堂和書本的學習,編出來的C語言程序,在實際上機運行時可能會不斷出現(xiàn)麻煩,特別在編譯程序時計算機會檢測出許多錯誤,這時的錯誤可大致分為語法錯誤和語義錯誤,我們認為學習C語言就是一個發(fā)現(xiàn)錯誤和改正錯誤的過程,強調(diào)學生自己的去發(fā)現(xiàn)和改正錯誤。Visual C++6.0集成開發(fā)環(huán)境會提示兩種信息,一種信息為錯誤信息,另一種信息為警告信息。一般情況下只要將錯誤信息改正過來,程序就能通過運行給出結(jié)果,這樣警告信息往往會被忽略。我們在實踐教學中要求學生將警告信息與錯誤信息一樣重視,在調(diào)試過程中遇到警告信息必須改正,因為警告信息的出現(xiàn)說明了學生對知識點理解的偏差,讓學生通過改正警告信息來正確的理解理論知識,會給學生留下深刻印象,在進一步理解理論知識的同時培養(yǎng)學生嚴肅、認真的科學態(tài)度。

2.3 綜合性“大作業(yè)”的引入

我們在實驗教學的開始就引入軟件工程的理念,強調(diào)學生們從一開始了解到養(yǎng)成良好的軟件設計規(guī)范的重要性。我們在實驗內(nèi)容上引入面向?qū)ο蟮能浖枷牒蛙浖こ痰睦砟?,將C語言課程和軟件工程緊密的有機聯(lián)系起來,要求學生按照軟件工程的思想去分析設計實現(xiàn)一個具體的MIS系統(tǒng)。

具體說來,我們的實踐教學分為以下幾個環(huán)節(jié):

第一階段,學習C語言的各個理論知識點和熟悉VisualC++6.0的開發(fā)環(huán)境。

第二階段,我們在第一段學習的基礎上,引入綜合性“大作業(yè)”。先由教師給出實驗題目,提出具體要求,而后學生根據(jù)要求查閱相關的書籍資料,寫出實驗原理、實驗方法步驟交給教師批閱;師生一起討論,確定實驗方案;然后在限定的時間內(nèi)進行實驗,并寫出相關的系統(tǒng)的分析、設計、實現(xiàn)等實驗報告,然后分組討論,最后進行集體的總結(jié)交流,初步掌握C語言軟件系統(tǒng)的設計方法和步驟,鍛煉學生靈活運用C語言開發(fā)語言進行軟件開發(fā)的初步能力。

大作業(yè)的具體內(nèi)容如下:

Step 1:教師給學生講解大作業(yè)的題目要求,要求學生在選好題目的基礎上,認真研究題目要求,自行查閱有關資料,實行系統(tǒng)的需求分析,總體框架設計;

Step 2:完成C語言的設計,建立C語言;

Step 3:編寫界面,要求完成各個功能單元的實現(xiàn)和調(diào)試;

Step 4:聯(lián)編調(diào)試,要求把各個功能塊聯(lián)編起來進行調(diào)試;

Step 5:上機檢查;

Step 6:實驗報告軟件文檔。

第三階段,繼續(xù)完善實際系統(tǒng)的開發(fā)。本階段主要讓學生在注重基本功能的實現(xiàn)的基礎上,對其所完成的軟件進行正確性的測試和進行必要的包裝設計。

在實驗教學中,我們突出以項目訓練為主的教學實踐。我們使用項目驅(qū)動的教學方法,針對學習目標設計問題與任務,將所要學習的概念技巧蘊含在所要解決的問題之中,通過解決問題,從中發(fā)現(xiàn)知識點和實踐技巧。我們通過實例講解,系統(tǒng)開發(fā)與調(diào)試的基本方法的講解,使得學生從實際中學習。

2.3 采用教學網(wǎng)站作為教學的輔助方法

目前,計算機和互聯(lián)網(wǎng)已滲透到各個領域。我們可以充分利用互聯(lián)網(wǎng)的優(yōu)勢,設計網(wǎng)絡課件來提高學生的自學與復習的積極性,開辟新的教學與復習手段,使學生學習和鞏固知識的渠道多樣化,進而提高我們的教學質(zhì)量。網(wǎng)絡課件主要具有兩方面的功能:留言板和網(wǎng)絡題庫。學生可在網(wǎng)絡課件留言板中提出問題,教師可在短時間內(nèi)在留言板中給予答復,實現(xiàn)老師與學生的相互留言,發(fā)表通知公告或進行解惑。特別是學生都會遇到的共性問題,教師一旦在留言板上留言,就不需再為每個人分別解答了。網(wǎng)絡題庫是檢驗學生每章或每節(jié)課階段性成果的有力工具,它可使學生盡快知道自己哪一方面不足,還有待加強。通過網(wǎng)絡課件這樣的輔助教學方法,既提高了學生的學習興趣,又提高了教師的工作效率和教學效果。

2.4 考核方式的改革

考核在教學過程中起著重要的作用。對教師來說,它是教師了解學生學習狀況、因材施教的基本依據(jù);對學生來說,它是學生自我評價的依據(jù)。

我們認為,在實驗教學中加強基本實驗方法基本技能和實驗過程的規(guī)范訓練要比掌握一些具體的實驗操作更為重要。因此,我們從實驗教學的特點和培養(yǎng)學生實踐能力的角度出發(fā),重視學生基本實驗方法和實驗過程的規(guī)范操作,突出實驗能力的培養(yǎng),弱化實驗結(jié)果的評審。

3 結(jié)束語

通過我們不斷改進教學方法,完善教學手段,學生學習的自覺性、主動性有了很大的提高。上機實驗和機考的程序調(diào)試通過率也有明顯提高。這些表明我們的探索得到大部分學生的認可,受到了老師的普遍歡迎,通過對學生的調(diào)查中,大多數(shù)學生認為是他們對于課本知識理解更加深入了,他們的主動思考問題的能力也得到了提高 。教師們也普遍反映《C語言程序設計》的教學質(zhì)量和教學效果得到極大的提高。

參考文獻:

[1] 王曙燕. C語言程序設計[M]. 北京:科學出版社,2005.

[2] 房鼎益,等. 計算機科學與技術專業(yè)面向21世紀教學改革與新教學計劃[J]. 計算機科學,1999,6(2):153-155.

[3] 沈天晴,劉維富等. VC程序設計基礎課程實踐教學方法的探討[J]. 南通大學學報(教學科學版),2005,21(3):88-91.

第8篇:c程序設計語言范文

關鍵詞: C語言程序設計; break語句; switch語句; 循環(huán)結(jié)構(gòu)

中圖分類號:TP311 文獻標志碼:A 文章編號: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語言程序設計課程中,break語句的功能非常容易理解,在switch語句中可以利用break語句結(jié)束switch結(jié)構(gòu);在循環(huán)結(jié)構(gòu)中可以利用break語句結(jié)束循環(huán)。但是,很多人并不清楚在什么條件下使用break語句,本文著重分析break語句的使用條件,以及break語句的常見用法。

1 break語句在switch語句中的應用

switch語句是多分支選擇語句,一般形式[1]:

switch(表達式)

{

case 常量表達式1: 語句1; [break;]

case 常量表達式2: 語句2; [break;]

case 常量表達式n: 語句n; [break;]

default : 語句n+1; [break;]

}

switch語句執(zhí)行過程是[2]:

⑴ 計算switch語句表達式的值;

⑵ 依次與1-n個常量做比較,當表達式的值與常量相等時,執(zhí)行case后的語句;

⑶ 當執(zhí)行break語句時,結(jié)束switch語句;

⑷ 如無break,則從匹配的case語句起,一直執(zhí)行到break或switch語句末尾為止;

⑸ 如無匹配的case值時,則執(zhí)行default相應語句。

switch語句說明:

⑴ switch后括號內(nèi)的表達式可以是任意類型,會自動轉(zhuǎn)化為整型;

⑵ 每個常量表達式的值必須互不相同;

⑶ 執(zhí)行完一個case后邊的語句后,轉(zhuǎn)到下一個case繼續(xù)執(zhí)行,可以用break強制程序在執(zhí)行完一個case后跳出switch結(jié)構(gòu)。如果所有case中的常量表達式都不符合,則執(zhí)行default后面的語句;

⑷ case后的多條語句不必用{}括起來。

由此可見,對于break語句的使用,當執(zhí)行完某個case常量表達式后面的語句,想要結(jié)束switch語句,此時應該在相應語句的后面執(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);

}

/*運行結(jié)果為:a=2,b=1。*/

分析運行結(jié)果,由于case 1:語句中是switch語句的嵌套,而且嵌套的switch語句后面沒有執(zhí)行break語句。如果在內(nèi)嵌的switch語句后面執(zhí)行break語句,則運行結(jié)果為:a=1,b=0,此時執(zhí)行了break語句,就從switch結(jié)構(gòu)中結(jié)束了。

2 break語句在循環(huán)結(jié)構(gòu)中的應用

在循環(huán)結(jié)構(gòu)中使用break語句的形式是“break;”,break語句的功能是強行結(jié)束循環(huán),轉(zhuǎn)向執(zhí)行循環(huán)語句的下一條語句[3]。break執(zhí)行流程如圖1所示。

[表達式] [表達式] [語句][語句] [break;][yes][no]

圖1 break語句執(zhí)行流程圖

如圖1所示,當循環(huán)中執(zhí)行了break語句,循環(huán)將提前結(jié)束。那么在什么樣的條件下,循環(huán)結(jié)構(gòu)中需要使用break語句,對此我們通過一個例題,來分析使用break語句的條件。

例題:判斷某一個一位數(shù)n是否在一個不高于四位的整數(shù)m中出現(xiàn)。判斷n是否在m中出現(xiàn),需要將n與m中的每一位數(shù)進行比較,分離m中的每一位數(shù),可以借助于算數(shù)運算符的求余和除,如果n==m%10,說明n在m中出現(xiàn)了,此時需要提前結(jié)束循環(huán),這時要使用break語句。如果n!=m%10,那么就需要不斷求新的m,利用m=m/10求得新的m;重復n與m%10的比較過程。通過分析得知,循環(huán)結(jié)束有兩種可能,一種是n在m中出現(xiàn)了提前結(jié)束循環(huán);另一種是n在m中沒出現(xiàn),當m的值變?yōu)?時結(jié)束的循環(huán)。由于此時不能判斷是什么原因結(jié)束的循環(huán),所以我們必須借助于標示變量來區(qū)別這兩種情況。先將標示變量flag的值置為1,如果n在m中出現(xiàn),則標示標量flag的值置為0。如果n沒在m中出現(xiàn)標示變量的值不變,這樣結(jié)束循環(huán)后,可以通過標示變量的值來判斷n在m中是否出現(xiàn)。

通過上述分析得到循環(huán)中使用break語句的條件:當存在著兩個獨立的條件都可以使循環(huán)結(jié)束時,提前結(jié)束循環(huán)的條件就是使用break語句的條件;另外一個結(jié)束循環(huán)的條件作為控制循環(huán)的變量。此種用法通常借助標示變量來區(qū)別結(jié)束循環(huán)的原因。使用break語句時候,還需注意break語句只能結(jié)束本層循環(huán),不能影響外層循環(huán)。

判斷某一個一位數(shù)n是否在一個不高于四位的整數(shù)m中出現(xiàn)的算法實現(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語言程序設計課程中break語句的使用方法。在switch語句中,可以結(jié)束多分支選擇結(jié)構(gòu);在循環(huán)結(jié)構(gòu)中,可以結(jié)束本層循環(huán)。同時分析出在兩種結(jié)構(gòu)中使用break語句的條件,并舉例說明break語句的用法和需注意的要點。通過本文對break語句用法的分析,能讓學習C語言程序設計課程的學生更準確地掌握break語句的用法,為學好結(jié)構(gòu)化程序設計語言的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)程序設計打好基礎。

參考文獻:

[1] 譚浩強.C程序設計[M].清華大學出版社,2001.

[2] 趙山林.C語言程序設計[M].人民郵電出版社,2012.

[3] 趙山林.C語言程序設計[M].高等教育出版社,2010.

第9篇:c程序設計語言范文

【關鍵字】程序設計 實驗教學 ACM

一、引言

近來年,隨著信息技術在社會各個應用領域的滲透和普及,程序設計類課程已經(jīng)發(fā)展為高校計算機教育的重點課程。理論教學與實驗教學是程序設計類課程的重要組成部分,其中,實驗教學是完整教學過程中的不可或缺的實踐性教學環(huán)節(jié)。實驗的目的不僅僅是為了驗證所編程序的正確與否,也是為了加深對程序設計語言知識的充分理解,更重要的是培養(yǎng)學生的實際操作能力和積累豐富的編程經(jīng)驗,從而引導他們利用程序設計語言編程來解決實際問題?;诖?,本文對如何更好的進行程序設計類課程的實驗教學作一些探討。

二、現(xiàn)狀分析

目前,我校計算機學院開設了高級語言如C、C++等多門程序設計類課程,這些課程的共同目標就是讓學生通過上機實驗和課程設計來鞏固課堂上講解的語法規(guī)則和算法技巧,鍛煉編程能力。但是現(xiàn)有的程序設計類課程實驗教學存在著很多問題,導致整個教學效果得不到提高,與教學目標的要求不相符。本節(jié)將主要從三個方面對其存在的問題進行總結(jié):

2.1 實驗教學安排

我院程序設計類課程的上機實驗課時是有限的,一般都是每周安排兩個課時,或者最多四個課時,通常會在連續(xù)的幾周內(nèi)結(jié)束。由于一般程序的編寫和調(diào)試比較費時間,要是學生不事先做好充分的準備,僅僅靠在兩個課時內(nèi)去完成一個完整的程序編寫是不太可能的,對所學內(nèi)容也沒能充分理解,很難在課堂上培養(yǎng)學生的實際編程能力。

2.2 實驗教學內(nèi)容

我院專業(yè)實驗中心的機房環(huán)境是一個內(nèi)部的局域網(wǎng),不能連接到互聯(lián)網(wǎng),教師都是通過課件投影或屏幕廣播教學軟件來完成主要的實驗教學過程。實驗內(nèi)容基本卜^都是對課堂理論教學內(nèi)容進行驗證和實現(xiàn),學生按照教材或課件來完成實驗。整個的實驗教學環(huán)節(jié)中,教師根據(jù)實際的情況來選擇是否進行案例教學,而當前多數(shù)實驗教學過程中的案例所覆蓋的知識點范圍不夠理想,不能將新舊知識點都包含進來。案例陳舊,缺少更新,實用性和趣味性也不強,因此不能很好的激發(fā)學生的學習熱情,不利于培養(yǎng)學生的獨立思考和動手操作能力,未能達到教學目標的要求。

2.3 實驗教學考核

實驗課程主要是通過實驗報告中的程序編寫情況來考核的。由于時間有限,實驗報告的批改都是教師在課后另找時間檢查,教師往往只能通過紙質(zhì)的實驗報告來分析學生的程序,要求程序能正常通過,看到運行結(jié)果就可以了,而忽略了程序中的調(diào)試環(huán)節(jié),而這些環(huán)節(jié)中通常都是學生未掌握的知識點。這種考核方式不利于教師對學生學習情況的掌握,也不利于培養(yǎng)學生的創(chuàng)新能力。

三、ACM學習模式的特點

現(xiàn)在,隨著ACM國際大學生程序設計競賽(簡稱ACM)在高校中的推廣,越來越多的學生參與進來了。在迎接ACM競賽的學習過程中,形成了一種具有ACM競賽特點的學習模式,這種學習模式的特點如下:

l、ACM競賽所涉及的知識面十分廣泛,算法電極具復雜性。通常在平時的訓練過程中為了能深刻而透徹的理解各個知識點,教師會引入大量的案例教學。運用典型案例可以將學生帶人特定的問題進行案例分析,通過學生的獨立思考或團隊合作,進一步提高其解決具體問題的能力。

2、ACM競賽是通過在線測評系統(tǒng)上實時提交程序代碼,給出評判結(jié)果的競賽形式。ACM測評系統(tǒng)能夠?qū)崟r的給出參賽隊的排名情況和每道題的通過率以及通過人數(shù),教師可根據(jù)題目的通過率來掌握學生對知識點的學習情況,也可以反思其教學方法和教學內(nèi)容中存在的問題。

四、基于ACM模式的程序設計類課程實驗教學的做法

將ACM學習模式應用到我院現(xiàn)有的程序設計類課程實驗教學過程中,具體措施運用如下:

4.1 實驗課程的開設

我院高級語言(C、C++)程序設計實驗課程都是在大一這一學年開設的,大一第一學期是面向過程的C語言編程學習,大一第二學期是面向?qū)ο蟮腃++語言編程學習。這樣開課的結(jié)果就使得大多數(shù)學生連面向過程的編程都還沒有完全搞清楚,就直接跳到了面向?qū)ο蟮木幊蹋梢哉f整個大一學期都是處于混沌的編程狀態(tài)。因為對程序設計語言的思想和語法還沒完全掌握,所以很多學生不具備基本的編程能力,甚至對編程有恐懼感。為了解決這些問題,我們結(jié)合ACM的競賽模式來調(diào)整開課計劃,把原計劃2個學期的高級語言程序設計實驗課程的教學時間調(diào)整為5個學期,這樣可以貫穿整個計算機專業(yè)課的學習過程,從而將程序設計語言和其他計算機專業(yè)課的學習更好的結(jié)合起來,讓學生有時間去深刻地理解程序設計語言的思想和方法,不斷地鍛煉實踐操作能力和積累編程經(jīng)驗。

4.2 實驗內(nèi)容的選取和實驗課程的考核

對實驗環(huán)境來說,要求將我院專業(yè)實驗中心機房連接到我校的源程序在線測評(Onlinejudge,簡稱OJ)平臺上。根據(jù)程序設計類課程的實驗內(nèi)容和具體要求,每次實驗前,教師可以從我?;蛘咂渌咝5腛J平臺上的ACM競賽題庫中挑選或改造2-3個相關題目作為實驗內(nèi)容掛到我校的OJ上。在實驗課階段,由學生獨立完成或者自由組隊來編寫程序,調(diào)試程序,解決問題,編寫好的程序提交給OJ來判斷正確與否。通過每次實驗在OJ上完成的做題數(shù)量,教師可以由此掌握到學生對知識點的學習情況,對欠缺的知識點再給與重點講解。同時教師可以根據(jù)OJ上的排名很輕松的完成實驗課程的考核。學生也可以通過每次實驗的做題和排名情況,來檢查自己的學習方法和學習內(nèi)容,從而達到熟練掌握所學內(nèi)容的實驗教學目的。

精選范文推薦