肖捷 肖海容
(1.東莞理工學(xué)院 計(jì)算機(jī)學(xué)院,廣東東莞 523808;2.東莞理工學(xué)院 圖書館,廣東東莞 523808)
程序設(shè)計(jì)是高校重要的計(jì)算機(jī)基礎(chǔ)課程,它以高級程序設(shè)計(jì)語言為平臺 (本文以C語言為平臺),介紹程序設(shè)計(jì)的思想和方法。通過學(xué)習(xí),使學(xué)生不但掌握高級程序設(shè)計(jì)語言的知識、編程技術(shù)和基本算法,更重要的是掌握程序設(shè)計(jì)的思想和方法,具備初步的高級語言程序設(shè)計(jì)能力,能靈活利用計(jì)算機(jī)求解實(shí)際問題,為后續(xù)專業(yè)課程的學(xué)習(xí)打好基礎(chǔ),具體目標(biāo)包括:
1)素質(zhì)目標(biāo):培養(yǎng)學(xué)生學(xué)習(xí)和編寫計(jì)算機(jī)程序的興趣和愛好,樹立在學(xué)習(xí)和工作中善于思考和勇于動手的信心,從而進(jìn)一步提高學(xué)生的信息素養(yǎng)。
2)知識目標(biāo):掌握C程序設(shè)計(jì)語言的知識內(nèi)容,掌握結(jié)構(gòu)化程序設(shè)計(jì)的基本思想和方法,具有初步的程序設(shè)計(jì)能力。
3)能力目標(biāo):加強(qiáng)學(xué)生邏輯思維能力、分析解決問題能力、程序設(shè)計(jì)能力和調(diào)試程序能力的全方位的培養(yǎng)。
C語言程序設(shè)計(jì)課程教學(xué)由理論教學(xué)和實(shí)踐教學(xué)兩部分組成,根據(jù)課程教學(xué)大綱、教學(xué)目標(biāo)和課程特點(diǎn),設(shè)計(jì)了課程的教學(xué)方案,該方案由教學(xué)環(huán)節(jié)、教材選擇、教學(xué)設(shè)計(jì)、評價(jià)體系和學(xué)習(xí)方法指導(dǎo)等內(nèi)容組成。
C語言程序設(shè)計(jì)課程教學(xué)由理論教學(xué)和實(shí)踐教學(xué)兩部分組成,課程教學(xué)環(huán)節(jié)包括課堂教學(xué)、課外自學(xué)、上機(jī)實(shí)踐、答疑討論和考核,各環(huán)節(jié)相輔相成,形成一個(gè)有機(jī)的整體。
1)課堂教學(xué):以“程序設(shè)計(jì)”為主線,將課堂教學(xué)分成若干主題,以編程應(yīng)用為驅(qū)動,通過案例和問題引入內(nèi)容,重點(diǎn)講解程序設(shè)計(jì)的思想和方法,并穿插介紹相關(guān)的語言知識,讓學(xué)生自始至終感受到“程序設(shè)計(jì)”這條主線。
2)課外自學(xué):充分利用校園網(wǎng)平臺,在校園網(wǎng)上建立課程教學(xué)網(wǎng)站,將大量的教學(xué)資源放在教學(xué)網(wǎng)站上,并設(shè)計(jì)開發(fā)多個(gè)應(yīng)用系統(tǒng),包括:視頻教學(xué)、答疑系統(tǒng)、作業(yè)系統(tǒng)、實(shí)驗(yàn)系統(tǒng)、測試系統(tǒng)等輔助教學(xué)系統(tǒng),教師通過教學(xué)網(wǎng)站隨時(shí)隨地開展多種形式的課程輔助教學(xué),學(xué)生根據(jù)自己的實(shí)際情況,自主學(xué)習(xí)不同層次的學(xué)習(xí)資料,隨時(shí)消化和掌握老師的講課內(nèi)容。
3)上機(jī)實(shí)踐:培養(yǎng)學(xué)生的實(shí)踐編程能力是教學(xué)重點(diǎn),學(xué)生必須完成大量的上機(jī)練習(xí),包括基本訓(xùn)練和綜合訓(xùn)練,從而達(dá)到在實(shí)踐中掌握知識,培養(yǎng)程序設(shè)計(jì)能力的目的?;居?xùn)練使用實(shí)驗(yàn)系統(tǒng),該系統(tǒng)具有教師出題、學(xué)生訓(xùn)練和自動評判功能。
4)答疑討論:提供課堂和網(wǎng)絡(luò)兩種答疑討論方式,以網(wǎng)絡(luò)方式為主,適當(dāng)輔以課堂方式。利用答疑系統(tǒng),在網(wǎng)上開辟留言板和討論區(qū),學(xué)生在網(wǎng)上向老師提問,老師在網(wǎng)上為學(xué)生答疑,同時(shí)老師也可以在網(wǎng)上發(fā)布相關(guān)材料,讓同學(xué)展開討論。
5)考核:通過期末考試 (筆試)和實(shí)驗(yàn)考核 (機(jī)試)考查學(xué)生的知識掌握程度和實(shí)踐能力,二者比例為1∶1,如果學(xué)生沒有通過實(shí)驗(yàn)考核,課程成績直接記錄為不及格。實(shí)驗(yàn)考核采用平時(shí)訓(xùn)練和上機(jī)考試相結(jié)合的方式,包括基本訓(xùn)練和上機(jī)考試,基本訓(xùn)練使用實(shí)驗(yàn)系統(tǒng),該系統(tǒng)具有教師出題、學(xué)生訓(xùn)練和自動評判功能,上機(jī)考試使用測試系統(tǒng),該系統(tǒng)具有組卷、考試和自動評判功能。實(shí)驗(yàn)考核成績按照基本訓(xùn)練占40%(其中:基本訓(xùn)練包括自主實(shí)驗(yàn)和主題實(shí)驗(yàn),自主實(shí)驗(yàn)占70%,主題實(shí)驗(yàn)占30%)、上機(jī)考試占60%的比例進(jìn)行綜合評定。綜合訓(xùn)練 (即課程設(shè)計(jì))一般另外作為一門課程單獨(dú)考核。
C語言的教材很多,但比較適合程序設(shè)計(jì)入門課程教學(xué)要求的書并不多,許多教材一般都是圍繞語言本身的體系展開內(nèi)容,以講解語言知識為主,特別是語法知識,輔以一些編程技巧的介紹,不利于培養(yǎng)學(xué)生的程序設(shè)計(jì)能力和語言應(yīng)用能力。因此,教材的選擇非常重要,由何欽銘教授和顏暉教授主編的普通高等教育“十一五”國家級規(guī)劃教材《C語言程序設(shè)計(jì)》(國家精品課程主講教材)和《C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)》(配套用書),通過比較分析,該教材具有如下特點(diǎn):
1)主講教材以程序設(shè)計(jì)為主線,以編程應(yīng)用為驅(qū)動,通過案例和問題引入內(nèi)容,重點(diǎn)講解程序設(shè)計(jì)的思想和方法,并穿插介紹相關(guān)的語言知識。在教材結(jié)構(gòu)的設(shè)計(jì)上,強(qiáng)調(diào)實(shí)踐,使學(xué)生從第1周起就練習(xí)編程,并貫穿始終,從學(xué)習(xí)編寫簡單程序,培養(yǎng)學(xué)習(xí)興趣開始,逐步深入講解程序設(shè)計(jì)的思想和方法以及應(yīng)用語言解決問題[1]。
2)實(shí)驗(yàn)指導(dǎo)書:C語言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程,作為主講教材的配套用書,突顯了課程的教學(xué)特點(diǎn),強(qiáng)調(diào)了學(xué)生動手能力的培養(yǎng)。該書由12個(gè)實(shí)驗(yàn)組成,提供了20個(gè)實(shí)驗(yàn)項(xiàng)目,每個(gè)實(shí)驗(yàn)包括精心設(shè)計(jì)的編程示例和調(diào)試示例,以及實(shí)驗(yàn)題 (改錯(cuò)題、閱讀完善程序題、編程題)。讀者可以先模仿示例操作,然后再做實(shí)驗(yàn)題,通過“模仿—改寫—編寫”的上機(jī)實(shí)踐過程,在循序漸進(jìn)的引導(dǎo)中逐步熟悉編程環(huán)境,理解和掌握程序設(shè)計(jì)的思想、方法和技巧,并掌握基本的程序調(diào)試方法[2]。
C語言程序設(shè)計(jì)課程的教學(xué)包括理論教學(xué)和實(shí)踐教學(xué)兩大部分。課堂教學(xué)是理論教學(xué)的主要形式,實(shí)踐教學(xué)通過課程實(shí)驗(yàn)來開展。因此,教學(xué)設(shè)計(jì)包括課堂教學(xué)設(shè)計(jì)和實(shí)踐教學(xué)設(shè)計(jì)兩方面。
2.3.1 課堂教學(xué)設(shè)計(jì)
課程教學(xué)內(nèi)容包括“程序設(shè)計(jì)”和“語言知識”兩部分,課堂教學(xué)應(yīng)以“程序設(shè)計(jì)”教學(xué)為主線,以編程應(yīng)用為驅(qū)動,通過案例和問題引入內(nèi)容,重點(diǎn)講解程序設(shè)計(jì)的思想和方法,并穿插介紹相關(guān)的語言知識,讓學(xué)生始終感受到“程序設(shè)計(jì)”這條主線。這就給教師提出了較高的要求,必須對課程的教學(xué)方法進(jìn)行研究,采用好的教學(xué)方法開展課堂教學(xué)。因此,在設(shè)計(jì)課堂教學(xué)時(shí),考慮從以下5個(gè)方面入手:
1)將課堂教學(xué)分為若干主題,圍繞“程序設(shè)計(jì)”主線,精選教學(xué)案例,精心設(shè)計(jì)教學(xué)過程,重點(diǎn)講解程序設(shè)計(jì)的思想和方法,穿插介紹“語言知識”。
2)采用合適的教學(xué)方法:實(shí)踐證明分步教學(xué)法 (示例→模仿→獨(dú)立)、舉一反三法、比較教學(xué)法等都是程序設(shè)計(jì)課程較好的教學(xué)方法。
3)借助習(xí)題課,精講程序閱讀方法,培養(yǎng)學(xué)生程序閱讀能力。
4)借助課堂演示實(shí)驗(yàn)教學(xué),加強(qiáng)學(xué)生調(diào)試程序能力的培養(yǎng)。
5)課外自學(xué):在課堂教學(xué)基礎(chǔ)上,積極引入E-Learning,使之成為課堂教學(xué)的重要補(bǔ)充。在設(shè)計(jì)課外學(xué)習(xí)內(nèi)容時(shí),應(yīng)充分考慮學(xué)生的差異,設(shè)計(jì)適當(dāng)?shù)亩鄻有院挽`活性,使學(xué)生可以根據(jù)自身水平和興趣,選擇適合的訓(xùn)練方式、數(shù)量和難度,自主安排學(xué)習(xí)進(jìn)程,在達(dá)到課程基本要求的前提下,使自己得到充分的發(fā)展和提高。
2.3.2 實(shí)踐教學(xué)設(shè)計(jì)
由于課程學(xué)習(xí)的自身特點(diǎn),聽不會,也看不會,只能練會,只有通過大量的編程練習(xí),才能實(shí)現(xiàn)課程的教學(xué)目標(biāo)。因此,精心設(shè)計(jì)課程的實(shí)踐教學(xué)內(nèi)容和過程非常重要。實(shí)踐教學(xué)主要包括四個(gè)主要內(nèi)容,即:演示實(shí)驗(yàn)、自測作業(yè)、主題作業(yè)和綜合訓(xùn)練。它們構(gòu)成了一個(gè)“階梯遞進(jìn)”模式的實(shí)踐教學(xué)體系。
1)演示實(shí)驗(yàn)。教師應(yīng)根據(jù)教學(xué)進(jìn)度和內(nèi)容適當(dāng)安排一些演示實(shí)驗(yàn),由教師在課堂上演示,學(xué)生觀看。通過演示,使學(xué)生能夠較快捷地熟悉C編程環(huán)境,較輕松地學(xué)習(xí)程序調(diào)試的基本方法和技巧。演示實(shí)驗(yàn)可以從兩大方面入手,設(shè)計(jì)一系列的演示實(shí)驗(yàn)。
A)編程環(huán)境演示實(shí)驗(yàn)。教師可以從教材中選擇1~2個(gè)程序作為演示案例,按照運(yùn)行一個(gè)C程序的基本步驟進(jìn)行完整的演示操作和講解,達(dá)到如下的教學(xué)目的。
■ 幫助學(xué)生較快地熟悉C編程環(huán)境,掌握C語言上機(jī)實(shí)踐的基本步驟 (編輯、編譯、連接、運(yùn)行)。
■ 幫助學(xué)生理解相關(guān)的概念和術(shù)語。例如:源文件、目標(biāo)文件、可執(zhí)行文件、程序工作區(qū)等。
B)程序調(diào)試方法和技巧演示實(shí)驗(yàn)。培養(yǎng)學(xué)生調(diào)試程序能力是演示實(shí)驗(yàn)教學(xué)的重要目標(biāo),根據(jù)教學(xué)進(jìn)度和內(nèi)容,共設(shè)計(jì)了6個(gè)程序調(diào)試方法和技巧的演示實(shí)驗(yàn) (如表1所示),在設(shè)計(jì)調(diào)試案例時(shí),可以設(shè)計(jì)編譯改錯(cuò)題、邏輯改錯(cuò)題兩種類型。通過教師的演示和講解,達(dá)到如下的教學(xué)目的。
■ 幫助學(xué)生理解程序調(diào)試、編譯錯(cuò)誤、連接錯(cuò)誤、邏輯錯(cuò)誤等基本概念。
■ 幫助學(xué)生認(rèn)識常見的錯(cuò)誤及產(chǎn)生原因,并學(xué)會解決方法。
■ 幫助學(xué)生掌握程序調(diào)試的基本方法和技巧。
表1 程序調(diào)試方法和技巧演示實(shí)驗(yàn)
2)自測作業(yè)。學(xué)好程序設(shè)計(jì),貴在平時(shí)練習(xí),學(xué)生應(yīng)該努力多編程,編好程。教師應(yīng)根據(jù)知識點(diǎn)布置一系列簡單的自測作業(yè),緊扣課堂教學(xué)內(nèi)容,偏重基本知識和能力,以掌握和鞏固課堂教學(xué)內(nèi)容。根據(jù)教學(xué)大綱設(shè)計(jì)了11個(gè)自測作業(yè),包括:熟悉C編程環(huán)境、簡單數(shù)據(jù)處理程序設(shè)計(jì)、分支結(jié)構(gòu)程序設(shè)計(jì)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)、函數(shù)程序設(shè)計(jì)、控制結(jié)構(gòu)綜合程序設(shè)計(jì)、數(shù)組程序設(shè)計(jì)、指針程序設(shè)計(jì)、結(jié)構(gòu)程序設(shè)計(jì)、程序結(jié)構(gòu)與遞歸函數(shù)程序設(shè)計(jì)和文件程序設(shè)計(jì)。要求學(xué)生通過上機(jī)實(shí)驗(yàn)系統(tǒng)在規(guī)定期限自主獨(dú)立完成,提交實(shí)驗(yàn)系統(tǒng)自動批改,給出反饋,并可反復(fù)練習(xí),直至掌握為止。教師要精心規(guī)劃和設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目和實(shí)驗(yàn)內(nèi)容,充分體現(xiàn)“教學(xué)做一體化”的分步教學(xué)思想 (示例→模仿→獨(dú)立)和舉一反三的教學(xué)思想,便于學(xué)生自主學(xué)習(xí)。通常設(shè)置調(diào)試示例、程序改錯(cuò)、閱讀完善程序和編程題等多種題型。
A)調(diào)試示例題:給出有錯(cuò)誤的源程序、調(diào)試計(jì)劃和步驟,在演示實(shí)驗(yàn)基礎(chǔ)上,學(xué)生根據(jù)調(diào)試計(jì)劃和步驟完成程序調(diào)試,學(xué)習(xí)調(diào)試方法和技巧。
B)程序改錯(cuò)題:給出有錯(cuò)誤的源程序,學(xué)生可以模仿調(diào)試示例完成程序調(diào)試,進(jìn)一步學(xué)習(xí)調(diào)試方法和技巧。
C)閱讀完善程序題:給出程序功能描述和不完整的源程序,在程序閱讀習(xí)題課的基礎(chǔ)上,每次實(shí)驗(yàn)都讓學(xué)生自主訓(xùn)練,掌握閱讀技巧,提高學(xué)生閱讀程序的能力。
D)編程題:一般設(shè)置3種級別 (示例編程、模仿編程、獨(dú)立編程),充分體現(xiàn)“教學(xué)做一體化”的分步教學(xué)思想 (示例→模仿→獨(dú)立)和舉一反三的教學(xué)思想。其中:示例編程通常選用教材中精講過的經(jīng)典案例并做適當(dāng)修改,讓學(xué)生閱讀程序,理解設(shè)計(jì)思路,掌握重要算法,舉一反三。模仿編程在示例編程基礎(chǔ)上,要求學(xué)生做適當(dāng)修改,實(shí)現(xiàn)程序功能要求。獨(dú)立編程只給出程序功能描述,要求學(xué)生在示例編程和模仿編程的基礎(chǔ)上,利用所學(xué)知識獨(dú)立完成編程[3]。
3)主題作業(yè)。在自測作業(yè)的基礎(chǔ)上,教師應(yīng)按照主題布置一些難度稍大的綜合作業(yè),學(xué)生通過主題作業(yè)的訓(xùn)練,能將“語言知識”和“程序設(shè)計(jì)”串成兩條相互呼應(yīng)的主線,加深對語言的全面理解和掌握,培養(yǎng)綜合應(yīng)用語言的能力和綜合分析能力,提高編程水平。根據(jù)教學(xué)進(jìn)度和知識結(jié)合應(yīng)用的程度,共設(shè)計(jì)了5次主題作業(yè) (如表2所示),題型一般只設(shè)置編程題,主題作業(yè)的難度稍大,學(xué)生可以部分選作,在規(guī)定的期限內(nèi)通過上機(jī)實(shí)驗(yàn)系統(tǒng)完成或交給老師批改。這就要求教師應(yīng)綜合考慮教學(xué)進(jìn)度和知識結(jié)合應(yīng)用的程度,精心規(guī)劃和設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目和實(shí)驗(yàn)內(nèi)容,組織有一定難度的編程題,教師只給出做題思路提示,讓學(xué)生獨(dú)立完成,以提高編程水平,為綜合訓(xùn)練做準(zhǔn)備。
表2 主題作業(yè)一覽表
4)綜合訓(xùn)練。要真正掌握程序設(shè)計(jì)的思想和方法,運(yùn)用語言解決實(shí)際問題,綜合實(shí)訓(xùn) (即課程設(shè)計(jì),時(shí)間一般為1周)是不可或缺的。綜合實(shí)訓(xùn)要求應(yīng)用軟件工程的思想和方法編寫較大型程序,解決實(shí)際問題。在綜合實(shí)訓(xùn)中采用基于問題的教學(xué)方法,學(xué)生以組為單位 (2~3人一組),自由選題,然后圍繞要解決的問題,進(jìn)行分析和研究,查閱、自學(xué)相關(guān)的文獻(xiàn)資料,確定技術(shù)路線和實(shí)施方案,組內(nèi)分工,合作完成,編寫文檔,最后分組答辯評分[4]。整個(gè)過程以分組獨(dú)立完成為主,教師只提供必要的輔導(dǎo)。這就要求教師要精心規(guī)劃訓(xùn)練項(xiàng)目 (9~10個(gè)可選題目),包括:項(xiàng)目問題描述、設(shè)計(jì)及實(shí)現(xiàn)要點(diǎn)、供參考的相關(guān)文獻(xiàn)資料、文檔組織要求、答辯要求和評價(jià)標(biāo)準(zhǔn)等。
A)項(xiàng)目問題描述:主要從功能要求方面做出描述,包括基本功能和高級 (擴(kuò)展)功能兩個(gè)方面。
B)設(shè)計(jì)及實(shí)現(xiàn)要點(diǎn):可以從難點(diǎn)分析、程序總體結(jié)構(gòu)、主要數(shù)據(jù)結(jié)構(gòu)提示、菜單組織結(jié)構(gòu)、主要算法提示等方面給出一些參考思想。
C)相關(guān)參考文獻(xiàn):列出一些要求學(xué)生學(xué)習(xí)的參考資料和網(wǎng)站。
D)文檔組織要求:給出課程設(shè)計(jì)文檔的組織格式和要求。
E)答辯要求、評分標(biāo)準(zhǔn)。
經(jīng)過嚴(yán)密的“階遞遞進(jìn)”模式的實(shí)踐教學(xué)體系訓(xùn)練,學(xué)生的編程能力得到了系統(tǒng)的鍛煉,提高了實(shí)際編程能力;特別是經(jīng)過綜合訓(xùn)練中模擬實(shí)際軟件開發(fā)的演練,不但能提高學(xué)習(xí)興趣,培養(yǎng)問題求解和編程能力,還有利于培養(yǎng)探索和創(chuàng)新能力。
課程評價(jià)體系可以從期末考試 (筆試)和實(shí)驗(yàn)考核 (機(jī)試)兩方面進(jìn)行綜合考核,以考查學(xué)生的知識掌握程度和實(shí)踐能力,二者比例為1∶1,如果學(xué)生沒有通過實(shí)驗(yàn)考核,課程成績直接記錄為不及格。實(shí)驗(yàn)考核采用平時(shí)訓(xùn)練和上機(jī)考試相結(jié)合的方式,包括基本訓(xùn)練和上機(jī)考試,基本訓(xùn)練使用實(shí)驗(yàn)系統(tǒng),該系統(tǒng)具有教師出題、學(xué)生訓(xùn)練和自動評判功能,上機(jī)考試使用測試系統(tǒng),該系統(tǒng)具有組卷、考試和自動評判功能。實(shí)驗(yàn)考核成績按照基本訓(xùn)練占40%(其中:基本訓(xùn)練包括自主作業(yè)和主題作業(yè),自主作業(yè)占70%,主題作業(yè)占30%)、上機(jī)考試占60%的比例進(jìn)行綜合評定。綜合訓(xùn)練 (即課程設(shè)計(jì))一般另外作為一門課程單獨(dú)考核,從設(shè)計(jì)文檔、系統(tǒng)實(shí)現(xiàn)、答辯和平時(shí)考勤等方面設(shè)計(jì)評價(jià)體系,比例可以考慮設(shè)置為 3∶4∶2∶1。
程序設(shè)計(jì)是高校重要的計(jì)算機(jī)基礎(chǔ)課程,研究設(shè)計(jì)一套完整、科學(xué)、創(chuàng)新、操作性強(qiáng)的教學(xué)方案非常重要,直接關(guān)系到課程的教學(xué)質(zhì)量。本方案的創(chuàng)新性在于系統(tǒng)全面地設(shè)計(jì)了課程教學(xué)的各個(gè)環(huán)節(jié),提供了較全面的方案設(shè)計(jì)內(nèi)容,具有較好的科學(xué)性、系統(tǒng)性、實(shí)用性、可操作性和可移植性等特點(diǎn),并成功運(yùn)用于具體的教學(xué)實(shí)踐,具有一定的參考價(jià)值。
[1]何欽銘,顏暉.C語言程序設(shè)計(jì)[M].北京:高等教育出版社,2008.
[2]顏暉.C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)[M].3版.北京:高教出版社,2008.
[3]牛欣源.程序設(shè)計(jì)實(shí)踐方案的研究與實(shí)施[J].計(jì)算機(jī)教育,2010(10):132-136.
[4]胡建榮,羅杰紅.高職C語言程序設(shè)計(jì)課程實(shí)踐教學(xué)體系的設(shè)計(jì)[J].計(jì)算機(jī)教育,2010(10):150-152.