林勇
摘要:針對(duì)程序設(shè)計(jì)類課程教學(xué)現(xiàn)狀及存在的問(wèn)題,提出了在課程體系設(shè)置、教育理念和教育教學(xué)方式改革、教學(xué)內(nèi)容的組織和安排、課程和教材建設(shè)等方面的嘗試和實(shí)踐,取得了好的教學(xué)效果。
關(guān)鍵詞:程序設(shè)計(jì);課程體系;教學(xué)改革
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)04-0778-02
計(jì)算機(jī)科學(xué)是一種具有較高的抽象性的創(chuàng)造性思維活動(dòng),其設(shè)計(jì)過(guò)程是人的智力勞動(dòng),有形表達(dá)抽象思維方法是通過(guò)程序設(shè)計(jì)來(lái)實(shí)現(xiàn)。在計(jì)算機(jī)相關(guān)專業(yè)人才培養(yǎng)計(jì)劃和課程設(shè)置上,計(jì)算機(jī)語(yǔ)言類課程和實(shí)踐類課程的教學(xué)是培養(yǎng)學(xué)生程序設(shè)計(jì)能力的基礎(chǔ)和關(guān)鍵,通過(guò)C程序設(shè)計(jì)、C++或Java語(yǔ)言面向?qū)ο蟪绦蛟O(shè)計(jì)、網(wǎng)絡(luò)程序設(shè)計(jì)、數(shù)據(jù)庫(kù)等語(yǔ)言類課程和課程實(shí)驗(yàn),以及結(jié)構(gòu)化程序設(shè)計(jì)實(shí)訓(xùn)、面向?qū)ο虺绦蛟O(shè)計(jì)實(shí)訓(xùn)、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)、數(shù)據(jù)庫(kù)課程設(shè)計(jì)、軟件工程課程設(shè)計(jì)、軟件生產(chǎn)實(shí)習(xí)、畢業(yè)設(shè)計(jì)等實(shí)踐類課程群[1],培養(yǎng)學(xué)生的程序設(shè)計(jì)思維能力和軟件工程能力。
1 計(jì)算機(jī)程序設(shè)計(jì)類課程教學(xué)現(xiàn)狀及存在的問(wèn)題
1)計(jì)算機(jī)程序設(shè)計(jì)類課程體系設(shè)置不夠合理
目前,不少高校計(jì)算機(jī)專業(yè)程序設(shè)計(jì)類課程的設(shè)置,大一新生一進(jìn)校,第一學(xué)期就開(kāi)設(shè)C語(yǔ)言程序設(shè)計(jì),或者C++程序設(shè)計(jì),其理由是認(rèn)為學(xué)生在中學(xué)階段進(jìn)行過(guò)信息技術(shù)教育和簡(jiǎn)單的程序設(shè)計(jì)基礎(chǔ)訓(xùn)練。而結(jié)果呢,由于中學(xué)階段的信息技術(shù)教育在很多地區(qū)特別是農(nóng)村地區(qū)得不到重視,或者沒(méi)有全面的開(kāi)展實(shí)施,學(xué)生剛?cè)氪髮W(xué)時(shí)對(duì)計(jì)算機(jī)的認(rèn)識(shí)和理解不夠深入,就進(jìn)入了C語(yǔ)言或者C++語(yǔ)言程序設(shè)計(jì)的學(xué)習(xí),其教學(xué)效果很不理想。因此,學(xué)生對(duì)后續(xù)課程如《數(shù)據(jù)結(jié)構(gòu)》、《Java程序設(shè)計(jì)》等課程的學(xué)習(xí)也將受到很大影響,顯得很吃力,而且學(xué)習(xí)效果也比較差。
2)教育理念和教學(xué)方式不夠恰當(dāng)
程序設(shè)計(jì)類課程的教學(xué),如C語(yǔ)言程序設(shè)計(jì)或者C++程序設(shè)計(jì),很多教師注重基本概念和語(yǔ)言的語(yǔ)法規(guī)則的教學(xué),在相應(yīng)的課程實(shí)驗(yàn)中也只是對(duì)基本語(yǔ)法的訓(xùn)練,而忽略了對(duì)學(xué)生分析問(wèn)題的方法、思想的培養(yǎng),學(xué)生的創(chuàng)新能力不強(qiáng)。因此,學(xué)生在學(xué)完一門(mén)程序設(shè)計(jì)類課程后,往往感覺(jué)到能閱讀程序,能讀懂程序,能理解別人寫(xiě)的程序,可讓自己動(dòng)手來(lái)編寫(xiě)一個(gè)稍微復(fù)雜一點(diǎn)的程序,卻顯得很茫然,無(wú)從下手。
3)教學(xué)內(nèi)容的組織和安排不夠符合學(xué)生的認(rèn)知規(guī)律
學(xué)生對(duì)程序設(shè)計(jì)類課程的學(xué)習(xí),很大一部分同學(xué)是:翻開(kāi)教材,課本中的程序個(gè)個(gè)都會(huì),能看明白;閉上書(shū),自己來(lái)重寫(xiě)一下這些程序,錯(cuò)誤百出。其原因還是由于教師在教學(xué)過(guò)程中沒(méi)有把握住學(xué)生的認(rèn)知規(guī)律,學(xué)生對(duì)課程知識(shí)理解不夠牢固[2-3]。如《C語(yǔ)言程序設(shè)計(jì)》課程的教學(xué)過(guò)程中,指針這一部分知識(shí)是安排在教學(xué)內(nèi)容的靠后章節(jié)講授,學(xué)時(shí)短,應(yīng)用少,但指針卻是這門(mén)課程的重點(diǎn),后續(xù)課程中的應(yīng)用很多,學(xué)生對(duì)這一知識(shí)掌握不好,勢(shì)必影響后續(xù)《數(shù)據(jù)結(jié)構(gòu)》等課程的學(xué)習(xí)效果。
4)教材建設(shè)缺乏針對(duì)性,系統(tǒng)性
目前,很多普通高校計(jì)算機(jī)專業(yè)都還沒(méi)有編寫(xiě)適合自己學(xué)生的教材,基本上都是使用高校計(jì)算機(jī)專業(yè)規(guī)劃系列教材,而程序設(shè)計(jì)類課程的教材很多,每本教材都有作者自己的內(nèi)容安排和章節(jié)設(shè)計(jì)方案,而且教材的選用也不固定,不同的授課教師常會(huì)選用不同的教材,這樣往往會(huì)有在程序設(shè)計(jì)類課程群的教材使用中,出現(xiàn)知識(shí)點(diǎn)和講授內(nèi)容的重復(fù)、教材的難度與學(xué)生的知識(shí)水平不符等問(wèn)題,教材建設(shè)針對(duì)性和系統(tǒng)性差。
2 計(jì)算機(jī)程序設(shè)計(jì)類課程教學(xué)改革方法及措施
1)調(diào)整計(jì)算機(jī)程序設(shè)計(jì)類課程體系
針對(duì)在現(xiàn)行的課程體系中,學(xué)生由于C語(yǔ)言或者C++程序設(shè)計(jì)的學(xué)習(xí)效果不理想,而導(dǎo)致對(duì)后續(xù)課程的學(xué)習(xí)受到很大的影響,應(yīng)將計(jì)算機(jī)專業(yè)程序設(shè)計(jì)類課程教學(xué)體系和課程設(shè)置進(jìn)行調(diào)整。在大一第一學(xué)期開(kāi)設(shè)《計(jì)算機(jī)導(dǎo)論》課程,目的是讓學(xué)生對(duì)計(jì)算機(jī)學(xué)科和計(jì)算機(jī)領(lǐng)域的研究?jī)?nèi)容有初步的認(rèn)識(shí),了解并掌握如數(shù)據(jù)在計(jì)算機(jī)中的存儲(chǔ)與表示、計(jì)算機(jī)工作原理、計(jì)算機(jī)基礎(chǔ)知識(shí),計(jì)算機(jī)硬件系統(tǒng),計(jì)算機(jī)軟件系統(tǒng),多媒體技術(shù)基礎(chǔ),通信與網(wǎng)絡(luò)基礎(chǔ)等方面的知識(shí)。[4]在此基礎(chǔ)之上,大一第二學(xué)期開(kāi)設(shè)《程序設(shè)計(jì)基礎(chǔ)》課程,講授內(nèi)容可以是C語(yǔ)言程序設(shè)計(jì)或C++程序設(shè)計(jì),目的是進(jìn)行程序邏輯訓(xùn)練,讓學(xué)生掌握程序的基本結(jié)構(gòu)和程序調(diào)試基本技能。在學(xué)生掌握了基本的程序設(shè)計(jì)基礎(chǔ)之后,再開(kāi)設(shè)《高級(jí)程序設(shè)計(jì)技術(shù)》課程,重在培養(yǎng)學(xué)生程序設(shè)計(jì)方法和思想,其教學(xué)內(nèi)容是程序設(shè)計(jì)中的一些高級(jí)處理技術(shù),如數(shù)據(jù)類型、指針的高級(jí)應(yīng)用,文件的操作,圖形界面與動(dòng)畫(huà)設(shè)計(jì),鍵盤(pán)與鼠標(biāo)操作,以及一些典型算法應(yīng)用。在學(xué)生掌握了程序設(shè)計(jì)能力和程序設(shè)計(jì)思想方法基礎(chǔ)上,再先后開(kāi)設(shè)《數(shù)據(jù)結(jié)構(gòu)》、《Java程序設(shè)計(jì)》課程?!稊?shù)據(jù)結(jié)構(gòu)》課程是培養(yǎng)學(xué)生根據(jù)實(shí)際問(wèn)題的要求有效地組織、存儲(chǔ)、處理數(shù)據(jù)的能力;《Java程序設(shè)計(jì)》貫穿面向?qū)ο蟪绦蛟O(shè)計(jì)新理念,讓學(xué)生掌握面向?qū)ο蟪绦蛟O(shè)計(jì)思想和技術(shù)。在高年級(jí),針對(duì)不同的專業(yè)方向,還可開(kāi)設(shè)VC++、C#、LINX等程序設(shè)計(jì)類選修課程,提高學(xué)生的編程水平和實(shí)踐能力,以滿足社會(huì)對(duì)軟件人才的不同需求。這樣,就形成了“基礎(chǔ)訓(xùn)練+方法培養(yǎng)+提高能力+拓展層面+實(shí)踐應(yīng)用”的程序設(shè)計(jì)教學(xué)新模式和程序設(shè)計(jì)類課程新體系。
2)改革教育理念和教育教學(xué)方式
程序設(shè)計(jì)類課程的課堂理論教學(xué)中,采用案例教學(xué)法可以取得較好的教學(xué)效果,可將一個(gè)較復(fù)雜的項(xiàng)目分解到各章節(jié)去講授介紹。如在《程序設(shè)計(jì)基礎(chǔ)》課程教學(xué)過(guò)程中,我們使用了一個(gè)學(xué)生成績(jī)管理程序項(xiàng)目案例,在講授數(shù)組這一部分知識(shí)時(shí),就可以將這個(gè)案例引入進(jìn)來(lái),介紹為什么要使用數(shù)組來(lái)存儲(chǔ)多個(gè)學(xué)生的成績(jī),要對(duì)學(xué)生成績(jī)排序應(yīng)該怎么辦;當(dāng)課程進(jìn)行到函數(shù)這一章時(shí),引入了案例中的模塊設(shè)計(jì)思路,介紹為什么要將項(xiàng)目分解為成績(jī)錄入、成績(jī)排序、成績(jī)查找、成績(jī)統(tǒng)計(jì)等多個(gè)模塊,模塊之間如何去調(diào)用;當(dāng)課程繼續(xù)進(jìn)行到結(jié)構(gòu)體這一章時(shí),讓學(xué)生分析理解案例中,學(xué)生的信息不僅包含成績(jī),還包含姓名、學(xué)號(hào)時(shí)應(yīng)該怎樣處理;講授到文件這一章時(shí),讓學(xué)生理解要將案例中的學(xué)生成績(jī)等信息存儲(chǔ)到一個(gè)文件中去,怎樣去實(shí)現(xiàn)。這樣,通過(guò)這一個(gè)完整的案例貫穿到整個(gè)課程的學(xué)習(xí),不僅能使學(xué)生掌握課程中的基本知識(shí),也能讓學(xué)生直觀的感受到一個(gè)復(fù)雜項(xiàng)目的設(shè)計(jì)過(guò)程。
3)改善教學(xué)內(nèi)容的組織和安排
在程序設(shè)計(jì)類課程的教學(xué)過(guò)程中,我們將教學(xué)內(nèi)容進(jìn)行了調(diào)整和重新組織。在《程序設(shè)計(jì)基礎(chǔ)》課程的教學(xué)過(guò)程中,將指針這一部分知識(shí)分散到各個(gè)章節(jié)去講授,在講到變量定義時(shí),就引入地址和指針的概念,講到數(shù)組和函數(shù)部分時(shí),將指針的應(yīng)用也同時(shí)在案例中進(jìn)行講授,這樣,同學(xué)們也很容易接受和消化理解。在《高級(jí)程序設(shè)計(jì)技術(shù)》課程教學(xué)中,不講授語(yǔ)言的基本知識(shí),只講授指針、文件、圖形界面、動(dòng)畫(huà)、鍵盤(pán)、鼠標(biāo)等的高級(jí)應(yīng)用操作和設(shè)計(jì)。《數(shù)據(jù)結(jié)構(gòu)》課程中,講授各種抽象數(shù)據(jù)類型的定義,及相應(yīng)的算法設(shè)計(jì)。在《Java程序設(shè)計(jì)》課程教學(xué)中,重在培養(yǎng)學(xué)生面向?qū)ο蟪绦蛟O(shè)計(jì)思想和編程技術(shù),對(duì)教材中的基礎(chǔ)知識(shí)部分如常量、變量、數(shù)據(jù)類型、數(shù)組等進(jìn)行略講或不講,只是在應(yīng)用中進(jìn)行簡(jiǎn)單介紹該注意的問(wèn)題,這樣,就可以將更多地學(xué)時(shí)放在對(duì)學(xué)生面向?qū)ο缶幊趟枷氲呐囵B(yǎng)上。
4)加強(qiáng)課程和教材建設(shè)
在程序設(shè)計(jì)類課程群教材建設(shè)方面,應(yīng)該有區(qū)別的選取具有系統(tǒng)性的、適合自己學(xué)生水平的高質(zhì)量教材,或者課程群相關(guān)教師合作編寫(xiě)出版教材或講義,這不僅使課程群中的課程教學(xué)內(nèi)容具有系統(tǒng)性,也適合自己學(xué)生的認(rèn)知水平,具有較強(qiáng)的針對(duì)性,同時(shí),授課教師也能熟練駕馭教材和授課內(nèi)容。近年來(lái),我校計(jì)算機(jī)專業(yè)程序設(shè)計(jì)類課程群教師編寫(xiě)出版了《程序設(shè)計(jì)基礎(chǔ)》、《數(shù)據(jù)結(jié)構(gòu)》教材和相配套的習(xí)題冊(cè),教學(xué)效果有了明顯提高。
3 結(jié)束語(yǔ)
程序設(shè)計(jì)類課程的教學(xué)重在培養(yǎng)學(xué)生的程序設(shè)計(jì)思想和創(chuàng)造性思維能力,課程體系設(shè)置應(yīng)該合理,課程群間課程的教學(xué)內(nèi)容安排應(yīng)該相互協(xié)調(diào)、補(bǔ)充,教學(xué)方式應(yīng)多以項(xiàng)目式案例教學(xué)為主,讓學(xué)生在案例中學(xué)會(huì)程序設(shè)計(jì)思想和對(duì)基本知識(shí)的理解,應(yīng)加強(qiáng)課程和教材建設(shè),以保障知識(shí)講授的針對(duì)性和系統(tǒng)性,這樣,才能在教學(xué)中取得較好的教學(xué)效果。
參考文獻(xiàn):
[1] 何欽銘.C語(yǔ)言程序設(shè)計(jì)[M].北京:高等教育出版社,2008.
[2] 單新梅.新課程背景下教師的角色定位及其專業(yè)發(fā)展[J].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2006(2).
[3] 左洪真.案例教學(xué)法在《C#程序設(shè)計(jì)》教學(xué)中的應(yīng)用 [J].電腦知識(shí)與技術(shù),2013(27).
[4] 陳婷.C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革探究[J].實(shí)驗(yàn)技術(shù)與管理,2010(10).