摘要:C語言是一門高級程序設(shè)計語言,使用廣泛,表達(dá)能力強(qiáng),目標(biāo)代碼運(yùn)行效率高,可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點,既可以用來編寫系統(tǒng)軟件,又可以用來編寫應(yīng)用軟件。因此《C語言程序設(shè)計》課程在教學(xué)中占有重要地位。
關(guān)鍵詞:C語言;高職高專;教學(xué)過程
《C語言程序設(shè)計》是高職高專院校計算機(jī)專業(yè)的一門核心專業(yè)基礎(chǔ)課程,同時也是多數(shù)非計算機(jī)專業(yè)的主要選修課。該課程是一門實踐性與應(yīng)用性較強(qiáng)的課程,目的是培養(yǎng)學(xué)生算法設(shè)計的基本思想和程序設(shè)計的基本技能。課程的內(nèi)容主要涉及C語言的基本概念、基本語法以及C語言程序設(shè)計的基本方法,在教學(xué)中既要重視嚴(yán)謹(jǐn)?shù)南到y(tǒng)理論教學(xué),又要重視實踐性環(huán)節(jié)和案例的討論與分析,為以后有關(guān)課程的學(xué)習(xí)和從事軟件開發(fā)奠定基礎(chǔ)。以下是筆者在《C語言程序設(shè)計》課程教學(xué)過程中的一些經(jīng)驗和體會。
提高教師自身素質(zhì)教師首先要提高自身的政治素質(zhì)和業(yè)務(wù)水平,及時了解國內(nèi)外最新的科技成果并掌握C語言應(yīng)用技術(shù)的發(fā)展方向。要不斷拓寬知識面,具備一定的知識高度,同時不斷研究與改進(jìn)教學(xué)方法,理論聯(lián)系實際,提高自身的教學(xué)水平。
合理選擇教材高職教育是針對崗位一線培養(yǎng)應(yīng)用型、技能型人才的,而目前高職教育的C語言教材普遍存在的問題是結(jié)合崗位的針對性不強(qiáng),技能訓(xùn)練的實踐性不夠。教材是提高教學(xué)質(zhì)量的基礎(chǔ)和前提,是學(xué)生系統(tǒng)學(xué)習(xí)知識的依據(jù),一本好的教材應(yīng)能培養(yǎng)學(xué)生的自學(xué)能力和獨(dú)立思考能力,使學(xué)生能夠依據(jù)教材理解課堂教學(xué)內(nèi)容,深入了解本學(xué)科各個領(lǐng)域的知識。在選擇教材方面應(yīng)注重以下幾個方面:(1)充分考慮高職高專教學(xué)的特色,理論知識要夠用,注重理論聯(lián)系實際,突出實用性。(2)語言表達(dá)要通俗易懂,在內(nèi)容編排上盡量符合初學(xué)者的要求。(3)注意點與面的結(jié)合,注重基礎(chǔ)與新技術(shù)的結(jié)合,使教材不僅是師生教與學(xué)的媒介,還是能夠培養(yǎng)學(xué)生編程能力的工具。(4)在選擇好的教材的同時,教師應(yīng)積極編寫符合實際教學(xué)需要的高質(zhì)量的教材。
明確C語言課程的教學(xué)目標(biāo),充分認(rèn)識C語言的廣泛用途《C語言程序設(shè)計》是高職高專學(xué)生學(xué)習(xí)程序設(shè)計的入門課程,也是計算機(jī)及電子信息專業(yè)的專業(yè)基礎(chǔ)課程,目的是培養(yǎng)學(xué)生模塊化程序設(shè)計的邏輯思維能力,掌握程序設(shè)計的基本語法規(guī)則和程序調(diào)試方法,具備初步的分析問題與解決問題的能力,為學(xué)生打下良好的程序設(shè)計基礎(chǔ)。主要的教學(xué)目標(biāo)包括:掌握C語言語法,能夠熟練運(yùn)用基本程序結(jié)構(gòu)解決簡單問題,理解模塊化程序設(shè)計原則并能針對復(fù)雜問題進(jìn)行合理分解,掌握基本算法分析與設(shè)計知識。
1.作為計算機(jī)專業(yè)的基礎(chǔ)課,目的是使學(xué)生掌握程序設(shè)計的基本方法并逐步形成正確的程序設(shè)計思想,能夠熟練地使用C語言進(jìn)行程序設(shè)計,具備調(diào)試程序的能力,為后繼課程及其他程序設(shè)計課程的學(xué)習(xí)和應(yīng)用打下基礎(chǔ)。從Unix操作系統(tǒng)開始,C語言一直是重要的系統(tǒng)程序設(shè)計語言,尤其在嵌入式系統(tǒng)開發(fā)中,C語言正逐漸取代匯編語言成為主流語言。學(xué)生要在理解C語言的基礎(chǔ)上更加專注于理解算法或者數(shù)據(jù)結(jié)構(gòu)本身,而不至于被語言本身的復(fù)雜語法現(xiàn)象干擾,要強(qiáng)調(diào)C語言的實用性。另外,在掌握C語言的基礎(chǔ)上,比較容易學(xué)習(xí)其他主流編程語言,學(xué)生通過對C語言的學(xué)習(xí),可以獲得針對基本程序結(jié)構(gòu)的程序編寫與程序調(diào)試知識。
2.學(xué)生對C語言的熟練掌握可以在一定程度上降低后續(xù)計算機(jī)硬件技術(shù)基礎(chǔ)課程的學(xué)習(xí)難度。計算機(jī)硬件技術(shù)基礎(chǔ)課程中有很大一部分內(nèi)容是對匯編語言的學(xué)習(xí),同樣作為面向機(jī)器模型的程序設(shè)計語言,C語言僅僅是抽象程度更高一些,其程序結(jié)構(gòu)與匯編語言具有一定的相似性,C語言的編程經(jīng)驗對學(xué)生學(xué)習(xí)匯編語言會有很大的幫助。
3.對于非計算機(jī)專業(yè)理工類學(xué)生而言,該課程有比較強(qiáng)的工業(yè)基礎(chǔ)應(yīng)用前景,C語言為用計算機(jī)解決實際問題提供了方法,是后續(xù)理論與實踐教學(xué)的基礎(chǔ)和重要工具,同時也是計算機(jī)二級考試所統(tǒng)一要求的課程之一。教學(xué)內(nèi)容的改革應(yīng)本著突出基礎(chǔ)理論知識的應(yīng)用和實踐能力培養(yǎng)的原則,以應(yīng)用為目的,以“必需、夠用”為度,加強(qiáng)針對性和實用性。
4.C語言功能豐富,使用靈活,可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點,能直接訪問硬件;既可以用于編寫系統(tǒng)軟件,又可以用于編寫應(yīng)用軟件,因而是國內(nèi)外廣泛使用的計算機(jī)語言。作為計算機(jī)專業(yè)的一門核心專業(yè)基礎(chǔ)課,可以為學(xué)生后續(xù)有關(guān)課程的學(xué)習(xí)和從事軟件開發(fā)奠定重要基礎(chǔ)。
注重教學(xué)過程,優(yōu)化教學(xué)方法,把握教與學(xué)的關(guān)系高職高專C語言課程理論性強(qiáng),概念性強(qiáng),抽象而且復(fù)雜,在教學(xué)過程中要注意的問題主要有:培養(yǎng)學(xué)生對C語言的興趣;教給學(xué)生正確的學(xué)習(xí)方法;加強(qiáng)實踐教學(xué)環(huán)節(jié);有效地組織課程設(shè)計;培養(yǎng)學(xué)生分析和解決實際問題的能力。教學(xué)過程是教師和學(xué)生的雙邊活動,只有既注重教,又注重學(xué),才能真正做到教為學(xué)服務(wù)。教師所要做的就是傳道、授業(yè)、解惑,開闊學(xué)生的思路,激發(fā)學(xué)生學(xué)習(xí)的積極性和主動性,激發(fā)反思,調(diào)動潛能,引導(dǎo)學(xué)生討論,幫助學(xué)生解決遇到的問題,寓教于學(xué)。只有把握好教與學(xué)的關(guān)系,才能優(yōu)化整個教學(xué)過程。
1.案例教學(xué)法。C語言是應(yīng)用性很強(qiáng)的一門課程,既有理論,又有實踐,既講方法,又講動手能力。采用案例教學(xué)法可以改變“滿堂灌”的做法,將學(xué)生的眼、手、腦全部調(diào)動起來,培養(yǎng)學(xué)生的學(xué)習(xí)興趣。筆者將課程內(nèi)容分為若干個主題,以程序設(shè)計作為貫穿各主題的主線,每個主題的教學(xué)過程由“要點講解”、“自學(xué)/上機(jī)實踐”和“疑難解答”三個階段組成。通過案例分析,重點講解程序設(shè)計的思想和方法,輔以語言知識的介紹;然后通過上機(jī)練習(xí),包括基本訓(xùn)練(自測作業(yè)和主題作業(yè))與綜合訓(xùn)練(大型作業(yè)),教師針對學(xué)生暴露出的問題答疑解惑,結(jié)合案例教學(xué),努力將C語言作為解決實際問題的工具,強(qiáng)化學(xué)生的編程能力,在分析程序與程序設(shè)計的過程中使學(xué)生逐步熟悉語法,應(yīng)用語句,提高學(xué)生分析問題、解決問題的能力,由淺入深、由易到難、循序漸進(jìn)地使學(xué)生在實踐中掌握知識,培養(yǎng)程序設(shè)計能力,逐步理解和掌握程序設(shè)計的思想和方法。最終在課堂上教師扮演“主導(dǎo)”角色,而學(xué)生真正地成為“主體”。
2.基于問題的教學(xué)。要真正掌握程序設(shè)計的思想和方法,運(yùn)用語言解決實際問題,綜合訓(xùn)練(大型作業(yè))是不可或缺的。筆者讓學(xué)生以小組為單位(每組2~3人),自由選題,然后圍繞要解決的問題進(jìn)行分析研究,查閱、自學(xué)相關(guān)的文獻(xiàn)資料,確定技術(shù)路線和實施方案,組內(nèi)分工,合作完成,最后分組答辯評分。整個過程以學(xué)生獨(dú)立完成為主,教師只提供必要的輔導(dǎo)。經(jīng)過這樣的模擬實際軟件開發(fā)的演練,不但提高了學(xué)生的學(xué)習(xí)興趣,培養(yǎng)了學(xué)生問題求解和編程能力,還有利于培養(yǎng)他們探索與創(chuàng)新的能力。
3.分層次教學(xué)。即標(biāo)準(zhǔn)化教學(xué)與個性化教學(xué)相結(jié)合,結(jié)合不同專業(yè)、不同班級學(xué)生的具體情況,制定各有特色的教案、講稿和教學(xué)課件。既發(fā)揮群體智力優(yōu)勢,又充分發(fā)揮教師個體的教學(xué)風(fēng)格特長,有利于提高教學(xué)水平。
4.加強(qiáng)實驗課與理論課的聯(lián)系。在理論課上將上機(jī)實驗任務(wù)題目進(jìn)行講解,也可以將案例算法作為實驗內(nèi)容。實驗課程可以分為兩部分,實驗任務(wù)問題作為理論課的內(nèi)容在課堂上討論、講述,確定實現(xiàn)算法。對于同樣的題目,可以確定若干不同的算法,比較其優(yōu)劣,分析其原因。上機(jī)實驗的任務(wù)是完成已確定算法的編碼實現(xiàn)和運(yùn)行。這種做法相當(dāng)于在教師帶領(lǐng)下,對實驗內(nèi)容做了集體預(yù)習(xí),貫徹了“算法重于語法,語法重于編碼”的課程指導(dǎo)原則。同時,每個學(xué)期集中拿出一至兩周時間進(jìn)行課程設(shè)計,綜合運(yùn)用學(xué)過的知識,加強(qiáng)實踐教學(xué)。學(xué)生只有通過大量的練習(xí),才能真正掌握語言知識,培養(yǎng)程序設(shè)計能力,逐步理解和掌握程序設(shè)計的思想和方法,學(xué)會利用計算機(jī)解決實際問題。
5.充分利用多元化、現(xiàn)代化的教學(xué)手段。在教學(xué)過程中應(yīng)多方位應(yīng)用現(xiàn)代教育技術(shù)手段,尤其是多媒體輔助教學(xué)手段與網(wǎng)絡(luò)化輔助教學(xué)手段。在課堂教學(xué)中采用多媒體教學(xué)課件,加強(qiáng)直觀教學(xué),可提高學(xué)生的空間想象力。對C語言程序的調(diào)試過程及運(yùn)行機(jī)制學(xué)生很難理解,很難想象其過程,如果將其做成課件,以動畫的形式模擬其過程,學(xué)生就能很快地掌握。教師應(yīng)從最簡單的C語言程序的調(diào)試入手,詳細(xì)演示C語言程序的調(diào)試過程與調(diào)試細(xì)節(jié),同時讓學(xué)生參與進(jìn)來,實現(xiàn)教師與學(xué)生、學(xué)生與學(xué)生的雙向交流和互動,提高學(xué)生的學(xué)習(xí)興趣,加深學(xué)生的理解與記憶。要充分利用計算機(jī)網(wǎng)絡(luò)開展網(wǎng)上答疑、網(wǎng)上測試、網(wǎng)絡(luò)教學(xué),及時解決學(xué)生在學(xué)習(xí)與生活中遇到的種種問題,使其檢驗自己本階段的學(xué)習(xí)成果,加強(qiáng)對所學(xué)知識的吸收和消化。
改革考核方式,強(qiáng)化應(yīng)用能力《C語言程序設(shè)計》的考核應(yīng)采用多種形式考核學(xué)生的知識掌握程度和實踐能力,包括卷面考試與實驗考核,要強(qiáng)調(diào)職業(yè)技能。實驗考核可采用上機(jī)考試與平時訓(xùn)練相結(jié)合的方式,上機(jī)考試可以使用能自動組卷和評分的考試平臺;平時訓(xùn)練包括作業(yè)和綜合編程訓(xùn)練的完成情況。要強(qiáng)調(diào)實驗的重要性,如果學(xué)生沒有通過實驗考核,課程成績應(yīng)記為不及格。該評價方法可以提前讓學(xué)生體驗全國計算機(jī)等級考試的過程,也可以促使學(xué)生在學(xué)習(xí)C語言的基本知識之外加強(qiáng)編程實踐,使學(xué)生在掌握C語言語法知識的同時,也掌握程序設(shè)計的思想和方法,這樣才能引導(dǎo)和督促學(xué)生多編程序,編出優(yōu)秀的程序。
參考文獻(xiàn):
[1]譚浩強(qiáng).C程序設(shè)計(第二版)[M].北京:清華大學(xué)出版社,2005.
[2]王燕.面向?qū)ο蟮睦碚撆cC++實踐[M].北京:清華大學(xué)出版社,1997.
[3]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,1997.
[4]趙金萍.“任務(wù)驅(qū)動式”的《C語言程序設(shè)計》教學(xué)[J].計算機(jī)時代,2007,(8).
[5]董志民,崔建平,肖利娜.《C語言程序設(shè)計》教學(xué)改革探索與實踐[J].福建電腦,2007,(5).
作者簡介:
楊天虎(1970—),男,1993年畢業(yè)于西北師范大學(xué)物理系,現(xiàn)為酒泉職業(yè)技術(shù)學(xué)院機(jī)電工程系講師,2003年通過國家高級程序員考試,獲得軟件設(shè)計師資格,主要講授《C語言程序設(shè)計》、《C++語言》、《數(shù)據(jù)結(jié)構(gòu)》等課程。