前言:我們精心挑選了數(shù)篇優(yōu)質(zhì)程序設(shè)計的基本結(jié)構(gòu)文章,供您閱讀參考。期待這些文章能為您帶來啟發(fā),助您在寫作的道路上更上一層樓。
關(guān)鍵詞:C語言;程序設(shè)計;循環(huán)結(jié)構(gòu);教學方法
中圖分類號:G642文獻標識碼:A
1引言
“C語言程序設(shè)計”是計算機系各專業(yè)的必修課程,屬專業(yè)主干課,是一門學位課程。也是各高校部分非計算機專業(yè)開設(shè)的程序設(shè)計課程之一。本課程開設(shè)的目的是使學生掌握面向過程的程序設(shè)計的基本概念,逐步形成正確的程序設(shè)計思想,理解結(jié)構(gòu)化程序設(shè)計方法;掌握程序設(shè)計的基本技術(shù),程序設(shè)計的基本組織方法即函數(shù)(模塊)程序設(shè)計;具備調(diào)試程序的能力。因為C語言功能強大,程序編寫靈活,具有較強的實踐性,是一門高級語言中的“低級語言”,既可以用來編寫系統(tǒng)軟件,又可以用來開發(fā)應用軟件,因此對學生以后參與專業(yè)領(lǐng)域的應用軟件的開發(fā)和使用會有極大的幫助。C語言是結(jié)構(gòu)化的語言,學好C語言程序設(shè)計,能為后續(xù)課程(數(shù)據(jù)結(jié)構(gòu)、編譯原理、操作系統(tǒng)、C++、Java等)及其他程序設(shè)計課程的學習打下基礎(chǔ)。同時,C語言程序設(shè)計也是計算機類各種考試所要求的重點課程之一。
2循環(huán)結(jié)構(gòu)程序設(shè)計
結(jié)構(gòu)化程序設(shè)計中包含三種基本技術(shù):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)的程序設(shè)計是學生學習了結(jié)構(gòu)化程序設(shè)計的前兩種基本技術(shù)之后的第三種基本技術(shù),是結(jié)構(gòu)化程序設(shè)計技術(shù)中最重要也是最難的部分。這門課程一般都是學生學習程序設(shè)計的入門課程,第一次學習循環(huán),可能難于理解“循環(huán)”的含義,在設(shè)計程序時正確使用循環(huán)也就更困難了。針對這些特點,循環(huán)結(jié)構(gòu)程序設(shè)計的教學方法和教學手段也就值得探討。
3循環(huán)結(jié)構(gòu)程序設(shè)計的教學方法
3.1教學重點和難點
要想學生能夠輕松理解和掌握循環(huán)結(jié)構(gòu)的程序設(shè)計,首先得確定本部分內(nèi)容的重點和難點。
本部分的重點主要是:(1)循環(huán)控制結(jié)構(gòu)及其設(shè)計。(2)循環(huán)控制語句的應用。教學重點是循環(huán)控制語句中的while語句,只要把while語句的使用講解清楚了,后面的for語句和do-while語句就容易多了。
本部分的難點是循環(huán)控制結(jié)構(gòu)及其設(shè)計。
3.2突出教學重點與分散難點的方法
為了突出教學中的重點并分散難點,可以從三方面入手:
(1) 從分析問題的重復性入手。學生在日常的生活、學習中能看到、體會到重復這種行為。精心設(shè)計實例,給學生一個比較實際的切入點,通過教師的引導,使學生能體查、歸納“重復行為”,從而理解和掌握循環(huán)的主要特點:有規(guī)律地重復操作。在教師的啟發(fā)、引導下,使學生在課堂上真正地成為“主體”,教師扮演“主導”角色。在整個過程中,緊緊抓住循環(huán)程序設(shè)計的思想,采用“自頂向下,逐步求精”的結(jié)構(gòu)化程序設(shè)計方法,把重點突出出來,并把難點進行分散,使學生容易理解和接受。
(2) 難點內(nèi)容,提前做好鋪墊。在前面內(nèi)容適當?shù)牡胤桨才懦霈F(xiàn)循環(huán)程序,但不講它的功能,為講解現(xiàn)在的內(nèi)容做好鋪墊,打下伏筆。這使得學生的每一步學習都有基礎(chǔ),是一個循序漸進的過程,使學生的學習是在“走臺階”,而不是“三級跳”,效果很好。
(3) 在循環(huán)程序設(shè)計的應用中,可以從簡單公式化的循環(huán)入手到復雜非公式化的循環(huán)的處理。講解過程中,通過黑板進行詳細分析和講解,使學生加深學習和理解。適當?shù)牡胤竭M行提問,教師引導學生積極參與到分析問題,解決問題的過程中,寫出程序后,放到實際的環(huán)境下運行,讓學生來分析程序的正確性,改正程序的錯誤,有利于學生理解難點、掌握重點。
3.3教學過程的設(shè)計與組織
(1) 提出問題
本部分的內(nèi)容是循環(huán)程序設(shè)計,體現(xiàn)在兩個方面,一是循環(huán)結(jié)構(gòu)程序設(shè)計的算法表示;二是循環(huán)結(jié)構(gòu)程序的C語言表示。循環(huán)程序設(shè)計是結(jié)構(gòu)化程序設(shè)計中最難、最復雜的部分,而授課對象是初次接觸程序設(shè)計和循環(huán)結(jié)構(gòu),因此循環(huán)的引入就至關(guān)重要。例如:通過引入求5!這個簡單的例子,運用已經(jīng)學過的順序結(jié)構(gòu)程序設(shè)計就可以實現(xiàn);但是求復雜的階乘,比如20!,任意自然數(shù)n!,用已經(jīng)學過的順序結(jié)構(gòu)程序設(shè)計和選擇結(jié)構(gòu)程序設(shè)計就難于解決,要用簡單的方法解決這樣的問題,就必須使用結(jié)構(gòu)化程序設(shè)計中的第三種基本技術(shù):循環(huán)結(jié)構(gòu)的程序設(shè)計。這樣就輕松地引入了循環(huán)結(jié)構(gòu)程序設(shè)計。在引入的過程中,要注重調(diào)動學生的積極性,采用互動教學法帶動學生的積極性。
(2) 解決問題的方法及講授新內(nèi)容
在用問題引入了循環(huán)后,第一步,分析用循環(huán)控制結(jié)構(gòu)求20!的算法的自然語言和流程圖表示。第二步,為了實現(xiàn)這種循環(huán)控制行為,C語言提供了多種循環(huán)控制語句,while語句就是其中的一種,介紹while語句的一般形式和功能。第三步,講解while循環(huán)語句的應用。在講解的過程中,為了提高學生的學習效果,達到預期的目標,除了采用常用的教學方法和手段外,還可以采用以下一些教學方法和手段:
① 注重啟發(fā)、引導學生。教師在講解分析時,注重啟發(fā)、引導學生主動分析問題、解決問題。
② 注重采用任務驅(qū)動的教學模式。通過提出問題,分析問題,引入新知識,解決問題,總結(jié)提高,一步步實現(xiàn)教學的目標。
③ 采用國際上慣用的解析教學法。
④ 把編寫的程序放到實際環(huán)境下運行。讓學生來分析程序的正確性,改正程序的錯誤,有利于學生掌握好重點、難點知識。
⑤ 應用現(xiàn)代化多媒體教學手段,有利于提高教學效率,便于學生理解。充分利用黑板和投影相結(jié)合的方式;分析過程用黑板進行教學,以便體現(xiàn)思維過程。
4結(jié)束語
要使學生輕松容易地理解和掌握C語言中的循環(huán)結(jié)構(gòu)程序設(shè)計方法和技巧,必須在教學的所有環(huán)節(jié)上都進行認真研究和精心設(shè)計。通過對循環(huán)結(jié)構(gòu)程序設(shè)計的教學,使學生提高綜合應用的能力,為今后的后續(xù)課程及軟件的設(shè)計和開發(fā)打下堅實的基礎(chǔ)。
參考文獻:
[1] 徐慶生.C語言程序設(shè)計[M].北京:科學普及出版社,2007.
[2] 高牧,楊志強,許蘭蘭,等. C/C++教學改革的探索與實踐[J]. 計算機時代,2005(11).
The Design and Discussion of Programming Course of Iteration Structure Pedagogical
in C Programming Language
SUN Ying, XU Shun-qiong, LI Xing-mei
(Department of Computer Science, Chuxiong Normal University, Chuxiong 675000, China)
論文摘要:該文分析了程序設(shè)計在計算機學科中的地位以及程序設(shè)計有關(guān)的知識和能力構(gòu)成,結(jié)合自己多年的計算機專業(yè)教學實踐,探討了在計算機教學中培養(yǎng)學生程序設(shè)計能力的有效策略。
計算機科學是一種創(chuàng)造性思維活動,其教育必須面向設(shè)計。計算機的本質(zhì)是“程序的機器”, 只有懂得程序設(shè)計,才能懂得計算機,真正了解計算機是怎樣工作的。培養(yǎng)學生程序設(shè)計能力對計算機專業(yè)的學生來說不僅是培養(yǎng)職業(yè)技能的需要,也是培養(yǎng)大學生創(chuàng)造性思維的重要途徑。學習程序設(shè)計語言可以培養(yǎng)學生運用算法來解決實際問題的能力,這種解決問題的方式是計算機所獨有的,也只有通過對計算機的程序設(shè)計語言和程序設(shè)計方法的學習才有可能獲得這種解決問題的能力。
1 程序設(shè)計在計算機學科中的地位
程序設(shè)計是利用某種計算機語言,編制完成某一特定功能的程序的過程,是涉及描述、開發(fā)及有效實現(xiàn)求解的一系列活動,是利用計算機實現(xiàn)自動化的重要手段。
計算機學科主要是系統(tǒng)地研究信息描述和變換的算法過程,包括它們的理論、分析、設(shè)計、效率、實現(xiàn)和應用。可以這樣說,一切算法的基本問題是“什么能被自動化”以及“如何有效地自動化”。這個自動化的過程就是程序設(shè)計的過程。
程序設(shè)計語言是人們學習計算機的最基本的工具,也是人們學習計算機基礎(chǔ)與應用知識的基本課程。通過學習,使學生掌握程序設(shè)計的基本概念、基本知識和基本方法,養(yǎng)成良好的程序設(shè)計風格,得到一定的程序設(shè)計訓練,具備初步編寫程序解決實際問題的能力。程序設(shè)計也正是有形表達抽象思維的方法,在程序設(shè)計過程中貫穿閱讀判斷、分析思考、工具利用、抽象表達、綜合創(chuàng)造等多項技能,是理論、抽象、設(shè)計和應用的綜合能力培養(yǎng)過程。因此程序設(shè)計是計算機學科教學的重要內(nèi)容之一,對計算機專業(yè)人才素質(zhì)的培養(yǎng)至關(guān)重要。
2 程序設(shè)計的知識和能力構(gòu)成
根據(jù)循序漸進的原則,與程序設(shè)計有關(guān)的教學內(nèi)容主要有:計算機基礎(chǔ)知識和操作、程序設(shè)計語言和基本的程序設(shè)計方法、最基本的數(shù)據(jù)結(jié)構(gòu)及其基本算法、常用的算法設(shè)計方法等。在學習這些知識的同時,必須與能力的訓練有機地結(jié)合起來。程序設(shè)計能力表現(xiàn)在以下幾個方面:
1)自然語言能力。要有較強的運用自然語言描述現(xiàn)實事物的能力,只有運用背景知識正確且清晰地陳述問題及其求解目標,才能確定程序的功能。
2)數(shù)學描述能力。程序設(shè)計是為了告訴計算機做什么和如何做。這就需要利用定義、定理、公式、函數(shù)等數(shù)學工具把問題形式化,建立數(shù)學模型。
3)數(shù)據(jù)結(jié)構(gòu)設(shè)計能力。選擇合理的存儲結(jié)構(gòu),在計算機中表示數(shù)學模型,是程序設(shè)計的一個重要方面。
4)算法構(gòu)造能力。好的程序由精心構(gòu)造的、好的算法構(gòu)成。給出問題求解的離散化計算過程,是程序設(shè)計中最具有創(chuàng)造性的工作。
5)程序編碼能力。用某種程序設(shè)計語言表達算法,盡管這種能力往往被認為技術(shù)含量不高,但也需要對程序設(shè)計語言的熟練掌握和對算法設(shè)計的深刻理解。
6)程序調(diào)試能力。程序調(diào)試能力是一種專業(yè)綜合技能,需要對程序設(shè)計語言和程序結(jié)構(gòu)有深刻的理解,需要熟練的操作技能,需要會設(shè)置測試數(shù)據(jù)和設(shè)置程序斷點,這些都有待于學生在實踐中逐步積累經(jīng)驗。
可以說,程序設(shè)計能力的高低很大程度上反映在駕馭自然語言、數(shù)學語言和計算機語言的能力上。這3種語言是人們畢生有用的3種通用智能工具。前兩者是后者的基礎(chǔ),良好的英語和數(shù)學訓練是學好程序設(shè)計語言和培養(yǎng)程序設(shè)計能力的重要基礎(chǔ)。
3 培養(yǎng)程序設(shè)計能力的有效策略
知識的價值在于運用,知識的運用需要技能,而技能的形成則依賴訓練。程序設(shè)計知識的學習和能力的培養(yǎng)需要各方面的知識基礎(chǔ),它是一個系統(tǒng)的教育訓練過程,需要多個教學環(huán)節(jié)的緊密配合才能完成。
1)明確教學要求
程序設(shè)計語言課程一般是為應用性教學而設(shè)置的,因此,課程的教學不僅僅是傳授知識,而且應該強調(diào)應用性,應該以培養(yǎng)學生的能力為主。程序設(shè)計語言的內(nèi)容比較豐富,在教學中如果面面俱到,必會耗費較多課時,而且教學效果不一定好。因為過分強調(diào)程序設(shè)計語言的系統(tǒng)性和完整性就可能會轉(zhuǎn)移學生對課程重點的注意力,關(guān)鍵在于教會學生如何正確運用程序設(shè)計語言編寫程序,訓練實用編程能力。所以必須突出重點,突出應用性,側(cè)重教思想,即把程序設(shè)計語言的基本思想、基本環(huán)境、基本概念、基本知識和基本方法教給學生,使他們在學習中對硬件、軟件環(huán)境、程序設(shè)計的基本思想和基本技巧,所學程序設(shè)計語言的基本概念和使用方法以及編程技術(shù)有一個比較全面的感性認識,從而提高解決實際問題的能力。
2)打好數(shù)學基礎(chǔ)。嚴格的數(shù)學訓練是程序設(shè)計能力的基礎(chǔ),學習和加強排列與組合、數(shù)列、數(shù)學歸納法等離散系統(tǒng)的數(shù)學方法對提高程序設(shè)計能力尤為重要。問題描述和建立數(shù)學模型是程序設(shè)計的前奏,數(shù)學歸納法、窮舉法、構(gòu)造證明法等證明技巧是算法設(shè)計方法的基礎(chǔ)。
3)強化英語水平。程序設(shè)計語言的符號系統(tǒng)以英語為基礎(chǔ),程序設(shè)計文檔語言首選英語。英文資料是計算機最新和最大的技術(shù)資料來源,英語水平是我國軟件產(chǎn)業(yè)發(fā)展和參與國際競爭的制約因素。
4)重視閱讀訓練。從某種意義上來說,程序設(shè)計是用程序設(shè)計語言和方法進行的一種寫作。可以想象,如果學生沒有閱讀過一份完整、規(guī)范、有實用價值的標準程序,即使記住了有關(guān)語言的語法規(guī)則,也不可能寫出像樣的程序。所以,大量閱讀、分析、修改和擴充典型的算法和程序,是提高程序?qū)懽髂芰Φ挠行緩健6@個重要學習環(huán)節(jié)往往未得到應有的重視,缺乏配套的程序設(shè)計閱讀分析教材。教師應經(jīng)常指導學生閱讀程序,理解程序,提高學生分析程序的能力。
5)注重算法設(shè)計,突出數(shù)據(jù)結(jié)構(gòu)內(nèi)容。瑞士科學家、PASCAL語言和MODULA-2語言的發(fā)明者沃思(Wirth)教授提出了著名的公式:程序=算法+數(shù)據(jù)結(jié)構(gòu)。這個公式表達了程序的實質(zhì),說明對于一個程序設(shè)計問題來講,算法與程序設(shè)計是緊密聯(lián)系的,絕不能脫離數(shù)據(jù)結(jié)構(gòu)去講解算法設(shè)計。程序設(shè)計語言的教學應該結(jié)合數(shù)據(jù)結(jié)構(gòu)的基本內(nèi)容。對于同一個計算問題,選用不同的數(shù)據(jù)結(jié)構(gòu),其算法大不一樣,算法的優(yōu)劣程度也不同。因此,要教會學生對不同的問題選擇合適的數(shù)據(jù)結(jié)構(gòu)。在整個程序設(shè)計課程中,必須強調(diào)算法設(shè)計方法,通過不斷的算法設(shè)計訓練,使學生切實掌握迭代、枚舉、遞歸、分類等常用算法設(shè)計方法。
6)更新教學內(nèi)容。計算機學科是一門綜合性學科,而且程序設(shè)計語言的應用領(lǐng)域在不斷擴大和發(fā)展。因此,在教學中應結(jié)合專業(yè)的特點和教學的要求,將軟件工程的思想方法貫穿于整個教學過程,介紹程序設(shè)計語言的最新發(fā)展和應用,重視面向?qū)ο蟪绦蛟O(shè)計方法的引入,搞好教材內(nèi)容的更新。如圖形程序設(shè)計、下拉式或彈出式菜單、計算機病毒防治等等。這樣不僅能把最新的知識和最新發(fā)展動態(tài)充實到教學上來,大大豐富了教學內(nèi)容,而且使學生加深對程序設(shè)計語言的理解和掌握,保持對信息技術(shù)和專業(yè)的興趣,及時跟上信息技術(shù)日新月異的發(fā)展趨勢,在今后工作中保持領(lǐng)先地位。
7)采用先進教學手段。用傳統(tǒng)的課堂教學方法講授動態(tài)的算法和數(shù)據(jù)結(jié)構(gòu)是十分低效的,像排序、遞歸等抽象動態(tài)的內(nèi)容講解就常常是費力不討好。應該根據(jù)課程特點,采用先進的現(xiàn)代教學方法,如直觀教學方法:利用掛圖、教具等講解,以及計算機輔助教學(CAI)和計算機輔助學習(Computer Aided Learning,簡稱CAL)進行教學,通常開發(fā)利用與課程內(nèi)容與教學特點相適應的多媒體課件進行教學。它們是講解算法和進行程序設(shè)計訓練的最佳教學平臺,既能增加學習的趣味性,又可利用圖形的直觀性幫助抽象和動態(tài)過程的理解。
8)加強實踐環(huán)節(jié),強化創(chuàng)造性思維能力培養(yǎng)。在教學中,常常聽到學生提出這樣的問題:“程序設(shè)計語言有什么用?”,有的學生還反映:“程序設(shè)計語言并不難學,就是不知道如何應用?”一些學生學到了一定的科學知識,但上機動手水平低。這種現(xiàn)象與普遍忽視實踐環(huán)節(jié)有關(guān)。為了扭轉(zhuǎn)這一局面,在整個教學過程中,必須強調(diào)實踐環(huán)節(jié)的重要性,充分安排上機實踐時間,加強系統(tǒng)訓練和實踐能力的培養(yǎng),強化創(chuàng)造性思維能力培養(yǎng)。根據(jù)課程特點,在教學中,采用案例驅(qū)動教學,進行興趣引導;在實踐中,可以精心組織一系列由易到難、由淺入深、配套銜接、結(jié)合學科學習、有一定設(shè)計技巧的程序設(shè)計作業(yè),最后再安排一次綜合性強、有一定難度的課程設(shè)計實踐,對學生進行項目訓練,提高學生應用能力。通過上機作業(yè)和課程設(shè)計的完成,使學生獨立思考,各顯才干,總結(jié)經(jīng)驗,培養(yǎng)他們的動手能力和編程能力,以及分析問題和解決問題的能力。
4 結(jié)論
總之,培養(yǎng)學生計算機程序設(shè)計能力的方法和途徑很多,但是編程序不難,編好程序不易。作為教師,必須從培養(yǎng)學生編程思維的角度出發(fā),按照以上策略認真進行編程知識的教學和技能的培養(yǎng),加強實踐,提高學生科學思維的能力,真正學會程序設(shè)計的真本領(lǐng)。
參考文獻:
[1] ,王楠.淺談程序設(shè)計語言課程教學方法[J].吉林大學學報(信息科學版),2005(S2).
[2] 徐進華.提高學生程序設(shè)計能力的幾個措施[J].計算機時代,2005(11).
[3] 李凌.淺談高級語言程序設(shè)計課堂教學方法[J].淮北職業(yè)技術(shù)學院學報,2005(04).
關(guān)鍵詞:程序設(shè)計;數(shù)據(jù)結(jié)構(gòu);算法;編碼;調(diào)試
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2009)33-9490-02
The Effective Strategy of Raises the Student Programming Ability
XIAO Han-peng
(The Secondary School of Nanyang, Nanyang 473000, China)
Abstract: This paper analyzes the design disciplines in the computer programming of the status and the knowledge and ability, combined with their many years of computer science teaching practice of teaching computer programming students an effective strategy.
Key words: program design; data structure; algorithm; coding; debugging
計算機科學是一種創(chuàng)造性思維活動,其教育必須面向設(shè)計。計算機的本質(zhì)是“程序的機器”, 只有懂得程序設(shè)計,才能懂得計算機,真正了解計算機是怎樣工作的。培養(yǎng)學生程序設(shè)計能力對計算機專業(yè)的學生來說不僅是培養(yǎng)職業(yè)技能的需要,也是培養(yǎng)大學生創(chuàng)造性思維的重要途徑。學習程序設(shè)計語言可以培養(yǎng)學生運用算法來解決實際問題的能力,這種解決問題的方式是計算機所獨有的,也只有通過對計算機的程序設(shè)計語言和程序設(shè)計方法的學習才有可能獲得這種解決問題的能力。
1 程序設(shè)計在計算機學科中的地位
程序設(shè)計是利用某種計算機語言,編制完成某一特定功能的程序的過程,是涉及描述、開發(fā)及有效實現(xiàn)求解的一系列活動,是利用計算機實現(xiàn)自動化的重要手段。
計算機學科主要是系統(tǒng)地研究信息描述和變換的算法過程,包括它們的理論、分析、設(shè)計、效率、實現(xiàn)和應用。可以這樣說,一切算法的基本問題是“什么能被自動化”以及“如何有效地自動化”。這個自動化的過程就是程序設(shè)計的過程。
程序設(shè)計語言是人們學習計算機的最基本的工具,也是人們學習計算機基礎(chǔ)與應用知識的基本課程。通過學習,使學生掌握程序設(shè)計的基本概念、基本知識和基本方法,養(yǎng)成良好的程序設(shè)計風格,得到一定的程序設(shè)計訓練,具備初步編寫程序解決實際問題的能力。程序設(shè)計也正是有形表達抽象思維的方法,在程序設(shè)計過程中貫穿閱讀判斷、分析思考、工具利用、抽象表達、綜合創(chuàng)造等多項技能,是理論、抽象、設(shè)計和應用的綜合能力培養(yǎng)過程。因此程序設(shè)計是計算機學科教學的重要內(nèi)容之一,對計算機專業(yè)人才素質(zhì)的培養(yǎng)至關(guān)重要。
2 程序設(shè)計的知識和能力構(gòu)成
根據(jù)循序漸進的原則,與程序設(shè)計有關(guān)的教學內(nèi)容主要有:計算機基礎(chǔ)知識和操作、程序設(shè)計語言和基本的程序設(shè)計方法、最基本的數(shù)據(jù)結(jié)構(gòu)及其基本算法、常用的算法設(shè)計方法等。在學習這些知識的同時,必須與能力的訓練有機地結(jié)合起來。程序設(shè)計能力表現(xiàn)在以下幾個方面:
1)自然語言能力。要有較強的運用自然語言描述現(xiàn)實事物的能力,只有運用背景知識正確且清晰地陳述問題及其求解目標,才能確定程序的功能。
2)數(shù)學描述能力。程序設(shè)計是為了告訴計算機做什么和如何做。這就需要利用定義、定理、公式、函數(shù)等數(shù)學工具把問題形式化,建立數(shù)學模型。
3)數(shù)據(jù)結(jié)構(gòu)設(shè)計能力。選擇合理的存儲結(jié)構(gòu),在計算機中表示數(shù)學模型,是程序設(shè)計的一個重要方面。
4)算法構(gòu)造能力。好的程序由精心構(gòu)造的、好的算法構(gòu)成。給出問題求解的離散化計算過程,是程序設(shè)計中最具有創(chuàng)造性的工作。
5)程序編碼能力。用某種程序設(shè)計語言表達算法,盡管這種能力往往被認為技術(shù)含量不高,但也需要對程序設(shè)計語言的熟練掌握和對算法設(shè)計的深刻理解。
6)程序調(diào)試能力。程序調(diào)試能力是一種專業(yè)綜合技能,需要對程序設(shè)計語言和程序結(jié)構(gòu)有深刻的理解,需要熟練的操作技能,需要會設(shè)置測試數(shù)據(jù)和設(shè)置程序斷點,這些都有待于學生在實踐中逐步積累經(jīng)驗。
可以說,程序設(shè)計能力的高低很大程度上反映在駕馭自然語言、數(shù)學語言和計算機語言的能力上。這3種語言是人們畢生有用的3種通用智能工具。前兩者是后者的基礎(chǔ),良好的英語和數(shù)學訓練是學好程序設(shè)計語言和培養(yǎng)程序設(shè)計能力的重要基礎(chǔ)。
3 培養(yǎng)程序設(shè)計能力的有效策略
知識的價值在于運用,知識的運用需要技能,而技能的形成則依賴訓練。程序設(shè)計知識的學習和能力的培養(yǎng)需要各方面的知識基礎(chǔ),它是一個系統(tǒng)的教育訓練過程,需要多個教學環(huán)節(jié)的緊密配合才能完成。
1)明確教學要求
程序設(shè)計語言課程一般是為應用性教學而設(shè)置的,因此,課程的教學不僅僅是傳授知識,而且應該強調(diào)應用性,應該以培養(yǎng)學生的能力為主。程序設(shè)計語言的內(nèi)容比較豐富,在教學中如果面面俱到,必會耗費較多課時,而且教學效果不一定好。因為過分強調(diào)程序設(shè)計語言的系統(tǒng)性和完整性就可能會轉(zhuǎn)移學生對課程重點的注意力,關(guān)鍵在于教會學生如何正確運用程序設(shè)計語言編寫程序,訓練實用編程能力。所以必須突出重點,突出應用性,側(cè)重教思想,即把程序設(shè)計語言的基本思想、基本環(huán)境、基本概念、基本知識和基本方法教給學生,使他們在學習中對硬件、軟件環(huán)境、程序設(shè)計的基本思想和基本技巧,所學程序設(shè)計語言的基本概念和使用方法以及編程技術(shù)有一個比較全面的感性認識,從而提高解決實際問題的能力。
2)打好數(shù)學基礎(chǔ)。嚴格的數(shù)學訓練是程序設(shè)計能力的基礎(chǔ),學習和加強排列與組合、數(shù)列、數(shù)學歸納法等離散系統(tǒng)的數(shù)學方法對提高程序設(shè)計能力尤為重要。問題描述和建立數(shù)學模型是程序設(shè)計的前奏,數(shù)學歸納法、窮舉法、構(gòu)造證明法等證明技巧是算法設(shè)計方法的基礎(chǔ)。
3)強化英語水平。程序設(shè)計語言的符號系統(tǒng)以英語為基礎(chǔ),程序設(shè)計文檔語言首選英語。英文資料是計算機最新和最大的技術(shù)資料來源,英語水平是我國軟件產(chǎn)業(yè)發(fā)展和參與國際競爭的制約因素。
4)重視閱讀訓練。從某種意義上來說,程序設(shè)計是用程序設(shè)計語言和方法進行的一種寫作。可以想象,如果學生沒有閱讀過一份完整、規(guī)范、有實用價值的標準程序,即使記住了有關(guān)語言的語法規(guī)則,也不可能寫出像樣的程序。所以,大量閱讀、分析、修改和擴充典型的算法和程序,是提高程序?qū)懽髂芰Φ挠行緩健6@個重要學習環(huán)節(jié)往往未得到應有的重視,缺乏配套的程序設(shè)計閱讀分析教材。教師應經(jīng)常指導學生閱讀程序,理解程序,提高學生分析程序的能力。
5)注重算法設(shè)計,突出數(shù)據(jù)結(jié)構(gòu)內(nèi)容。瑞士科學家、PASCAL語言和MODULA-2語言的發(fā)明者沃思(Wirth)教授提出了著名的公式:程序=算法+數(shù)據(jù)結(jié)構(gòu)。這個公式表達了程序的實質(zhì),說明對于一個程序設(shè)計問題來講,算法與程序設(shè)計是緊密聯(lián)系的,絕不能脫離數(shù)據(jù)結(jié)構(gòu)去講解算法設(shè)計。程序設(shè)計語言的教學應該結(jié)合數(shù)據(jù)結(jié)構(gòu)的基本內(nèi)容。對于同一個計算問題,選用不同的數(shù)據(jù)結(jié)構(gòu),其算法大不一樣,算法的優(yōu)劣程度也不同。因此,要教會學生對不同的問題選擇合適的數(shù)據(jù)結(jié)構(gòu)。在整個程序設(shè)計課程中,必須強調(diào)算法設(shè)計方法,通過不斷的算法設(shè)計訓練,使學生切實掌握迭代、枚舉、遞歸、分類等常用算法設(shè)計方法。
6)更新教學內(nèi)容。計算機學科是一門綜合性學科,而且程序設(shè)計語言的應用領(lǐng)域在不斷擴大和發(fā)展。因此,在教學中應結(jié)合專業(yè)的特點和教學的要求,將軟件工程的思想方法貫穿于整個教學過程,介紹程序設(shè)計語言的最新發(fā)展和應用,重視面向?qū)ο蟪绦蛟O(shè)計方法的引入,搞好教材內(nèi)容的更新。如圖形程序設(shè)計、下拉式或彈出式菜單、計算機病毒防治等等。這樣不僅能把最新的知識和最新發(fā)展動態(tài)充實到教學上來,大大豐富了教學內(nèi)容,而且使學生加深對程序設(shè)計語言的理解和掌握,保持對信息技術(shù)和專業(yè)的興趣,及時跟上信息技術(shù)日新月異的發(fā)展趨勢,在今后工作中保持領(lǐng)先地位。
7)采用先進教學手段。用傳統(tǒng)的課堂教學方法講授動態(tài)的算法和數(shù)據(jù)結(jié)構(gòu)是十分低效的,像排序、遞歸等抽象動態(tài)的內(nèi)容講解就常常是費力不討好。應該根據(jù)課程特點,采用先進的現(xiàn)代教學方法,如直觀教學方法:利用掛圖、教具等講解,以及計算機輔助教學(CAI)和計算機輔助學習(Computer Aided Learning,簡稱CAL)進行教學,通常開發(fā)利用與課程內(nèi)容與教學特點相適應的多媒體課件進行教學。它們是講解算法和進行程序設(shè)計訓練的最佳教學平臺,既能增加學習的趣味性,又可利用圖形的直觀性幫助抽象和動態(tài)過程的理解。
8)加強實踐環(huán)節(jié),強化創(chuàng)造性思維能力培養(yǎng)。在教學中,常常聽到學生提出這樣的問題:“程序設(shè)計語言有什么用?”,有的學生還反映:“程序設(shè)計語言并不難學,就是不知道如何應用?”一些學生學到了一定的科學知識,但上機動手水平低。這種現(xiàn)象與普遍忽視實踐環(huán)節(jié)有關(guān)。為了扭轉(zhuǎn)這一局面,在整個教學過程中,必須強調(diào)實踐環(huán)節(jié)的重要性,充分安排上機實踐時間,加強系統(tǒng)訓練和實踐能力的培養(yǎng),強化創(chuàng)造性思維能力培養(yǎng)。根據(jù)課程特點,在教學中,采用案例驅(qū)動教學,進行興趣引導;在實踐中,可以精心組織一系列由易到難、由淺入深、配套銜接、結(jié)合學科學習、有一定設(shè)計技巧的程序設(shè)計作業(yè),最后再安排一次綜合性強、有一定難度的課程設(shè)計實踐,對學生進行項目訓練,提高學生應用能力。通過上機作業(yè)和課程設(shè)計的完成,使學生獨立思考,各顯才干,總結(jié)經(jīng)驗,培養(yǎng)他們的動手能力和編程能力,以及分析問題和解決問題的能力。
4 結(jié)論
總之,培養(yǎng)學生計算機程序設(shè)計能力的方法和途徑很多,但是編程序不難,編好程序不易。作為教師,必須從培養(yǎng)學生編程思維的角度出發(fā),按照以上策略認真進行編程知識的教學和技能的培養(yǎng),加強實踐,提高學生科學思維的能力,真正學會程序設(shè)計的真本領(lǐng)。
參考文獻:
[1] ,王楠.淺談程序設(shè)計語言課程教學方法[J].吉林大學學報(信息科學版),2005(S2).
[2] 徐進華.提高學生程序設(shè)計能力的幾個措施[J].計算機時代,2005(11).
[3] 李凌.淺談高級語言程序設(shè)計課堂教學方法[J].淮北職業(yè)技術(shù)學院學報,2005(04).