- 相關(guān)推薦
探析培養學(xué)生程序設計能力的有效策略
論文關(guān)鍵詞:程序設計 數據結構 算法 編碼 調試
論文摘要:該文分析了程序設計在學(xué)科中的地位以及程序設計有關(guān)的知識和能力構成,結合自己多年的計算機專(zhuān)業(yè)教學(xué)實(shí)踐,探討了在計算機教學(xué)中培養學(xué)生程序設計能力的有效策略。
計算機科學(xué)是一種創(chuàng )造性思維活動(dòng),其必須面向設計。計算機的本質(zhì)是“程序的機器”, 只有懂得程序設計,才能懂得計算機,真正了解計算機是怎樣工作的。培養學(xué)生程序設計能力對計算機專(zhuān)業(yè)的學(xué)生來(lái)說(shuō)不僅是培養職業(yè)技能的需要,也是培養大學(xué)生創(chuàng )造性思維的重要途徑。學(xué)習程序設計可以培養學(xué)生運用算法來(lái)解決實(shí)際問(wèn)題的能力,這種解決問(wèn)題的方式是計算機所獨有的,也只有通過(guò)對計算機的程序設計語(yǔ)言和程序設計方法的學(xué)習才有可能獲得這種解決問(wèn)題的能力。
1 程序設計在計算機學(xué)科中的地位
程序設計是利用某種計算機語(yǔ)言,編制完成某一特定功能的程序的過(guò)程,是涉及描述、開(kāi)發(fā)及有效實(shí)現求解的一系列活動(dòng),是利用計算機實(shí)現自動(dòng)化的重要手段。
計算機學(xué)科主要是系統地研究信息描述和變換的算法過(guò)程,包括它們的理論、分析、設計、效率、實(shí)現和應用?梢赃@樣說(shuō),一切算法的基本問(wèn)題是“什么能被自動(dòng)化”以及“如何有效地自動(dòng)化”。這個(gè)自動(dòng)化的過(guò)程就是程序設計的過(guò)程。
程序設計語(yǔ)言是人們學(xué)習計算機的最基本的工具,也是人們學(xué)習計算機基礎與應用知識的基本課程。通過(guò)學(xué)習,使學(xué)生掌握程序設計的基本概念、基本知識和基本方法,養成良好的程序設計風(fēng)格,得到一定的程序設計訓練,具備初步編寫(xiě)程序解決實(shí)際問(wèn)題的能力。程序設計也正是有形表達抽象思維的方法,在程序設計過(guò)程中貫穿閱讀判斷、分析思考、工具利用、抽象表達、綜合創(chuàng )造等多項技能,是理論、抽象、設計和應用的綜合能力培養過(guò)程。因此程序設計是計算機學(xué)科教學(xué)的重要內容之一,對計算機專(zhuān)業(yè)人才素質(zhì)的培養至關(guān)重要。
2 程序設計的知識和能力構成
根據循序漸進(jìn)的原則,與程序設計有關(guān)的教學(xué)內容主要有:計算機基礎知識和操作、程序設計語(yǔ)言和基本的程序設計方法、最基本的數據結構及其基本算法、常用的算法設計方法等。在學(xué)習這些知識的同時(shí),必須與能力的訓練有機地結合起來(lái)。程序設計能力表現在以下幾個(gè)方面:
1)自然語(yǔ)言能力。要有較強的運用自然語(yǔ)言描述現實(shí)事物的能力,只有運用背景知識正確且清晰地陳述問(wèn)題及其求解目標,才能確定程序的功能。
2)描述能力。程序設計是為了告訴計算機做什么和如何做。這就需要利用定義、定理、公式、函數等數學(xué)工具把問(wèn)題形式化,建立數學(xué)模型。
3)數據結構設計能力。選擇合理的存儲結構,在計算機中表示數學(xué)模型,是程序設計的一個(gè)重要方面。
4)算法構造能力。好的程序由精心構造的、好的算法構成。給出問(wèn)題求解的離散化計算過(guò)程,是程序設計中最具有創(chuàng )造性的工作。
5)程序編碼能力。用某種程序設計語(yǔ)言表達算法,盡管這種能力往往被認為技術(shù)含量不高,但也需要對程序設計語(yǔ)言的熟練掌握和對算法設計的深刻理解。
6)程序調試能力。程序調試能力是一種專(zhuān)業(yè)綜合技能,需要對程序設計語(yǔ)言和程序結構有深刻的理解,需要熟練的操作技能,需要會(huì )設置測試數據和設置程序斷點(diǎn),這些都有待于學(xué)生在實(shí)踐中逐步積累經(jīng)驗。
可以說(shuō),程序設計能力的高低很大程度上反映在駕馭自然語(yǔ)言、數學(xué)語(yǔ)言和計算機語(yǔ)言的能力上。這3種語(yǔ)言是人們畢生有用的3種通用智能工具。前兩者是后者的基礎,良好的和數學(xué)訓練是學(xué)好程序設計語(yǔ)言和培養程序設計能力的重要基礎。
3 培養程序設計能力的有效策略
知識的價(jià)值在于運用,知識的運用需要技能,而技能的形成則依賴(lài)訓練。程序設計知識的學(xué)習和能力的培養需要各方面的知識基礎,它是一個(gè)系統的教育訓練過(guò)程,需要多個(gè)教學(xué)環(huán)節的緊密配合才能完成。
1)明確教學(xué)要求
程序設計語(yǔ)言課程一般是為應用性教學(xué)而設置的,因此,課程的教學(xué)不僅僅是傳授知識,而且應該強調應用性,應該以培養學(xué)生的能力為主。程序設計語(yǔ)言的內容比較豐富,在教學(xué)中如果面面俱到,必會(huì )耗費較多課時(shí),而且教學(xué)效果不一定好。因為過(guò)分強調程序設計語(yǔ)言的系統性和完整性就可能會(huì )轉移學(xué)生對課程重點(diǎn)的注意力,關(guān)鍵在于教會(huì )學(xué)生如何正確運用程序設計語(yǔ)言編寫(xiě)程序,訓練實(shí)用編程能力。所以必須突出重點(diǎn),突出應用性,側重教思想,即把程序設計語(yǔ)言的基本思想、基本、基本概念、基本知識和基本方法教給學(xué)生,使他們在學(xué)習中對硬件、軟件環(huán)境、程序設計的基本思想和基本技巧,所學(xué)程序設計語(yǔ)言的基本概念和使用方法以及編程技術(shù)有一個(gè)比較全面的感性認識,從而提高解決實(shí)際問(wèn)題的能力。
2)打好基礎。嚴格的數學(xué)訓練是程序設計能力的基礎,學(xué)習和加強排列與組合、數列、數學(xué)歸納法等離散系統的數學(xué)方法對提高程序設計能力尤為重要。問(wèn)題描述和建立數學(xué)模型是程序設計的前奏,數學(xué)歸納法、窮舉法、構造證明法等證明技巧是算法設計方法的基礎。
3)強化水平。程序設計的符號系統以英語(yǔ)為基礎,程序設計文檔語(yǔ)言首選英語(yǔ)。英文資料是最新和最大的技術(shù)資料來(lái)源,英語(yǔ)水平是我國軟件產(chǎn)業(yè)發(fā)展和參與國際競爭的制約因素。
4)重視閱讀訓練。從某種意義上來(lái)說(shuō),程序設計是用程序設計語(yǔ)言和方法進(jìn)行的一種?梢韵胂,如果學(xué)生沒(méi)有閱讀過(guò)一份完整、規范、有實(shí)用價(jià)值的標準程序,即使記住了有關(guān)語(yǔ)言的語(yǔ)法規則,也不可能寫(xiě)出像樣的程序。所以,大量閱讀、分析、修改和擴充典型的算法和程序,是提高程序寫(xiě)作能力的有效途徑。而這個(gè)重要學(xué)習環(huán)節往往未得到應有的重視,缺乏配套的程序設計閱讀分析教材。教師應經(jīng)常學(xué)生閱讀程序,理解程序,提高學(xué)生分析程序的能力。
5)注重算法設計,突出數據結構內容。瑞士科學(xué)家、PASCAL語(yǔ)言和MODULA-2語(yǔ)言的發(fā)明者沃思(Wirth)教授提出了著(zhù)名的公式:程序=算法+數據結構。這個(gè)公式表達了程序的實(shí)質(zhì),說(shuō)明對于一個(gè)程序設計問(wèn)題來(lái)講,算法與程序設計是緊密聯(lián)系的,絕不能脫離數據結構去講解算法設計。程序設計語(yǔ)言的教學(xué)應該結合數據結構的基本內容。對于同一個(gè)計算問(wèn)題,選用不同的數據結構,其算法大不一樣,算法的優(yōu)劣程度也不同。因此,要教會(huì )學(xué)生對不同的問(wèn)題選擇合適的數據結構。在整個(gè)程序設計課程中,必須強調算法設計方法,通過(guò)不斷的算法設計訓練,使學(xué)生切實(shí)掌握迭代、枚舉、遞歸、分類(lèi)等常用算法設計方法。
6)更新教學(xué)內容。計算機學(xué)科是一門(mén)綜合性學(xué)科,而且程序設計語(yǔ)言的應用領(lǐng)域在不斷擴大和發(fā)展。因此,在教學(xué)中應結合專(zhuān)業(yè)的特點(diǎn)和教學(xué)的要求,將軟件工程的思想方法貫穿于整個(gè)教學(xué)過(guò)程,介紹程序設計語(yǔ)言的最新發(fā)展和應用,重視面向對象程序設計方法的引入,搞好教材內容的更新。如圖形程序設計、下拉式或彈出式菜單、計算機病毒防治等等。這樣不僅能把最新的知識和最新發(fā)展動(dòng)態(tài)充實(shí)到教學(xué)上來(lái),大大豐富了教學(xué)內容,而且使學(xué)生加深對程序設計語(yǔ)言的理解和掌握,保持對信息技術(shù)和專(zhuān)業(yè)的興趣,及時(shí)跟上信息技術(shù)日新月異的發(fā)展趨勢,在今后工作中保持領(lǐng)先地位。
7)采用先進(jìn)教學(xué)手段。用傳統的課堂教學(xué)方法講授動(dòng)態(tài)的算法和數據結構是十分低效的,像排序、遞歸等抽象動(dòng)態(tài)的內容講解就常常是費力不討好。應該根據課程特點(diǎn),采用先進(jìn)的現代教學(xué)方法,如直觀(guān)教學(xué)方法:利用掛圖、教具等講解,以及計算機輔助教學(xué)(CAI)和計算機輔助學(xué)習(Computer Aided Learning,簡(jiǎn)稱(chēng)CAL)進(jìn)行教學(xué),通常開(kāi)發(fā)利用與課程內容與教學(xué)特點(diǎn)相適應的多媒體課件進(jìn)行教學(xué)。它們是講解算法和進(jìn)行程序設計訓練的最佳教學(xué)平臺,既能增加學(xué)習的趣味性,又可利用圖形的直觀(guān)性幫助抽象和動(dòng)態(tài)過(guò)程的理解。
8)加強實(shí)踐環(huán)節,強化創(chuàng )造性思維能力培養。在教學(xué)中,常常聽(tīng)到學(xué)生提出這樣的問(wèn)題:“程序設計語(yǔ)言有什么用?”,有的學(xué)生還反映:“程序設計語(yǔ)言并不難學(xué),就是不知道如何應用?”一些學(xué)生學(xué)到了一定的科學(xué)知識,但上機動(dòng)手水平低。這種現象與普遍忽視實(shí)踐環(huán)節有關(guān)。為了扭轉這一局面,在整個(gè)教學(xué)過(guò)程中,必須強調實(shí)踐環(huán)節的重要性,充分安排上機實(shí)踐時(shí)間,加強系統訓練和實(shí)踐能力的培養,強化創(chuàng )造性思維能力培養。根據課程特點(diǎn),在教學(xué)中,采用案例驅動(dòng)教學(xué),進(jìn)行興趣引導;在實(shí)踐中,可以精心組織一系列由易到難、由淺入深、配套銜接、結合學(xué)科學(xué)習、有一定設計技巧的程序設計作業(yè),最后再安排一次綜合性強、有一定難度的課程設計實(shí)踐,對學(xué)生進(jìn)行項目訓練,提高學(xué)生應用能力。通過(guò)上機作業(yè)和課程設計的完成,使學(xué)生獨立思考,各顯才干,經(jīng)驗,培養他們的動(dòng)手能力和編程能力,以及分析問(wèn)題和解決問(wèn)題的能力。
4 結論
總之,培養學(xué)生計算機程序設計能力的方法和途徑很多,但是編程序不難,編好程序不易。作為教師,必須從培養學(xué)生編程思維的角度出發(fā),按照以上策略認真進(jìn)行編程知識的教學(xué)和技能的培養,加強實(shí)踐,提高學(xué)生科學(xué)思維的能力,真正學(xué)會(huì )程序設計的真本領(lǐng)。
參考文獻:
[1] 孫善武,王楠.淺談程序設計語(yǔ)言課程教學(xué)方法[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2005(S2).
[2] 徐進(jìn)華.提高學(xué)生程序設計能力的幾個(gè)措施[J].計算機時(shí)代,2005(11).
[3] 李凌.淺談高級語(yǔ)言程序設計課堂教學(xué)方法[J].淮北職業(yè)技術(shù)學(xué)院學(xué)報,2005(04).
[4] 劉達明.如何提高計算機專(zhuān)業(yè)的C語(yǔ)言教學(xué)質(zhì)量[J].計算機,2005(8).
[5] 李相海.初等教育信息技術(shù)課程教學(xué)論[M].鄭州:鄭州大學(xué)出版社,2008.1.
【探析培養學(xué)生程序設計能力的有效策略】相關(guān)文章:
教育品牌有效傳播策略探析03-06
探析高職學(xué)生英語(yǔ)自主學(xué)習能力培養的策略03-18
探析高職學(xué)生英語(yǔ)口語(yǔ)能力培養策略03-18
初中數學(xué)教學(xué)有效性策略探析論文12-05
探析英語(yǔ)聽(tīng)說(shuō)能力自我培養之策略03-19