前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的計算機程序設(shè)計藝術(shù)主題范文,僅供參考,歡迎閱讀并收藏。
【關(guān)鍵詞】程序設(shè)計課程 教學(xué)方案 能力培養(yǎng)
【中圖分類號】G642 【文獻標識碼】A 【文章編號】1006-9682(2012)06-0010-03
程序設(shè)計類課程是計算機科學(xué)與技術(shù)及相關(guān)專業(yè)的基礎(chǔ)課程,在計算機專業(yè)課程體系建設(shè)中占有十分重要的地位。目前大部分高校在程序設(shè)計教學(xué)中多采用傳統(tǒng)的講授法和系統(tǒng)的學(xué)習(xí),同時結(jié)合一些上機實踐操作來鞏固和熟悉課堂上所講的一些知識點,但對于計算機程序設(shè)計課程而言,其特點是更新更快、內(nèi)容多、課時少。所以,在授課內(nèi)容處理上既要講授大量的基礎(chǔ)知識、基本概念,而且還要講授具體的應(yīng)用甚至操作,要讓學(xué)生掌握計算機的應(yīng)用能力;既不能拋棄傳統(tǒng)的、經(jīng)典的內(nèi)容,又要介紹當(dāng)前最新的成果。傳統(tǒng)的系統(tǒng)學(xué)習(xí)和講授有許多缺點,它偏重知識的灌輸,重理論輕實踐,以教師為中心,以單項講授為主,是式的學(xué)習(xí)方法,培養(yǎng)出的學(xué)生實踐能力不強,不能滿足當(dāng)前社會對人才的需要。[2~4]教育的目標是培養(yǎng)、提高學(xué)生的科學(xué)素質(zhì),科學(xué)素質(zhì)教育的核心是培養(yǎng)學(xué)生的實際動手能力與創(chuàng)新精神。[5]所以,我們提倡把程序設(shè)計課程的重點放在學(xué)生的能力培養(yǎng)上,即如何從計算機解決實際問題的角度,以解決實際問題的程序設(shè)計思想作為切入點進行教學(xué),培養(yǎng)學(xué)生具有利用軟件開發(fā)環(huán)境解決實際問題的能力。
在上述教學(xué)理念的指導(dǎo)之下,為了使程序設(shè)計課程達到上述的目標,提出以下教學(xué)方案,包括課程設(shè)置、教學(xué)內(nèi)容與教材建設(shè)、教學(xué)方法、教學(xué)手段等。
一、課程設(shè)置
在課程設(shè)置上,我們應(yīng)采用《程序設(shè)計基礎(chǔ)C++》+可視化開發(fā)環(huán)境介紹的方式,并配備集中課程實踐的方式。通過《程序設(shè)計基礎(chǔ)C++》的學(xué)習(xí),學(xué)生可以掌握基本的編程技能,但不能具備利用軟件開發(fā)工具進行高級編程的能力,不能滿足社會對計算機專業(yè)學(xué)生的編程要求,甚至出現(xiàn)大四畢業(yè)生連一門開發(fā)工具都不掌握的情況。通過這兩門課程的學(xué)習(xí),學(xué)生能較深入全面地掌握程序設(shè)計的思想和技能,并可以使用軟件開發(fā)工具進行高級編程。
學(xué)習(xí)程序設(shè)計的目標是利用計算機這個智力工具來分析和解決問題,對現(xiàn)實問題進行建模并編程解決的能力的培養(yǎng)是程序設(shè)計類課程的首要任務(wù)。知識、能力和素養(yǎng)三者具有辯證關(guān)系,一個具有較強能力和良好素養(yǎng)的人,必須掌握豐富的知識。程序設(shè)計基礎(chǔ)領(lǐng)域的知識是由程序設(shè)計的基本概念和程序設(shè)計藝術(shù)(技巧)組成的,要掌握這些基本概念和設(shè)計藝術(shù),必須立足于理性化的學(xué)習(xí)和理性化的實踐。能力是技能化的知識,是知識的綜合體現(xiàn),程序設(shè)計能力的培養(yǎng)必須通過動手實踐來培養(yǎng),同時程序設(shè)計需要以扎實的理論基礎(chǔ)、學(xué)科方法以及思維方法來指導(dǎo)實踐。為此,程序設(shè)計的課程應(yīng)在加強課堂教學(xué)的同時,更注重上機實踐環(huán)節(jié),學(xué)生通過上課掌握了豐富的知識,通過實踐鍛煉了個人能力,與此同時個人素養(yǎng)也得到提高。[1] 程序設(shè)計基礎(chǔ)C++的語法和語義介紹以及開發(fā)工具的介紹,可以幫助學(xué)生掌握基本的程序設(shè)計概念,只有通過兩門課程大量的上機實踐才能幫助學(xué)生把所學(xué)的理論知識用于解決實際問題,促進學(xué)生程序設(shè)計能力的提高。以我校為例,程序設(shè)計基礎(chǔ)共96學(xué)時(60學(xué)時課堂教學(xué)+36學(xué)時上機實驗),在大一開設(shè),課程結(jié)束后緊接著是兩周的程序設(shè)計課程設(shè)計。目前該課程實踐教學(xué)環(huán)節(jié)由兩部分組成:與課堂教學(xué)同步安排的實驗上機和集中安排的課程設(shè)計。實驗上機注重學(xué)生理解和消化課堂講授的知識,偏重于如何編寫功能單一的“小”算法,局限于一個或兩個知識點,運用這些知識解決一些具體的算法設(shè)計問題,培養(yǎng)學(xué)生的動手能力,并培養(yǎng)良好的程序設(shè)計風(fēng)格。課程設(shè)計是軟件設(shè)計的綜合訓(xùn)練,包括問題分析、總體結(jié)構(gòu)設(shè)計、用戶界面設(shè)計、程序設(shè)計基本技能和技巧,多人合作,以至一整套軟件工作規(guī)范的訓(xùn)練和科學(xué)作風(fēng)的培養(yǎng),對學(xué)生的一種全面綜合訓(xùn)練,是與課堂聽講、自學(xué)和練習(xí)相輔相成的、必不可少的一個教學(xué)環(huán)節(jié)。但是,課程設(shè)計的效果不盡人意,絕大部分同學(xué)只是在DOS環(huán)境下實現(xiàn)了一個算法,演示效果缺乏美觀,盡管我們一再要求學(xué)生自學(xué)可視化開發(fā)工具如Visual C++,但是只有極少數(shù)同學(xué)進行這項工作,很多同學(xué)反映,看不懂,太難了。所以,根據(jù)實際教學(xué)經(jīng)驗,應(yīng)該開設(shè)可視化開發(fā)環(huán)境介紹這門課,幫助學(xué)生掌握一門實際的開發(fā)工具。學(xué)習(xí)完這門課以后,開設(shè)課程設(shè)計,這樣,在課程設(shè)計階段綜合運用所學(xué)知識,提高學(xué)生用軟件開發(fā)環(huán)境解決實際問題的能力。
二、教學(xué)內(nèi)容與教材建設(shè)
教學(xué)內(nèi)容的組織與實施是程序設(shè)計課程改革的重要內(nèi)容。教學(xué)內(nèi)容在組織上應(yīng)該與時俱進,不與實際的程序設(shè)計發(fā)展脫節(jié),比如,STL(Standard Template Library),即標準模板庫,是一個具有工業(yè)強度的,高效的C++程序庫。它被容納于C++標準程序庫(C++ Standard Library)中,是ANSI/ISO C++標準中最新的也是極具革命性的一部分。應(yīng)該作為程序設(shè)計課程的必不可少的組成部分,程序設(shè)計內(nèi)容體系結(jié)構(gòu)應(yīng)分為三個部分:第一部分簡述程序設(shè)計的基本概念和思想,以C++語言面向語法和語義為背景,講述一般程序設(shè)計語言所具有的基本內(nèi)容:數(shù)據(jù)(類型)、操作、程序控制結(jié)構(gòu)、數(shù)據(jù)控制,這部分內(nèi)容重點介紹如何進行結(jié)構(gòu)化程序設(shè)計及計算機解題的思路和方法,使學(xué)生理解算法結(jié)構(gòu)與解題過程,同時掌握程序調(diào)試與測試的初步技術(shù)。第二部分以C++面向?qū)ο髾C制為背景,介紹面向?qū)ο蟮幕靖拍睿侯?、對象、消息、方法、封裝、繼承、多態(tài),使學(xué)生初步掌握面向?qū)ο蟪绦蛟O(shè)計開發(fā)技術(shù)的基本方法,為后繼課程打下基礎(chǔ)。第二部分以標準模板庫和Visual C++開發(fā)工具為背景,介紹容器、算法、迭代子、開發(fā)環(huán)境、MFC、視圖等知識,使學(xué)生進一步掌握面向?qū)ο蟮某绦蛟O(shè)計方法,以及用高效的工具進行軟件開發(fā)的能力。
教材的質(zhì)量直接影響教學(xué)的質(zhì)量,以注重學(xué)生的程序設(shè)計思想和能力的培養(yǎng)為指導(dǎo),組織編寫具有特色的、高水平的教材。此外,隨著教育信息化進程的推進,僅提供一本平面紙質(zhì)教材,已無法滿足高校的教學(xué)需求。為了教學(xué)的需要,我們給學(xué)生提供了立體化的教材,主要包括:主教材、學(xué)習(xí)指導(dǎo)書(實驗和課程設(shè)計指導(dǎo)書)、主要參考書目、電子教案、多媒體課件、習(xí)題庫和試題庫等。這些資料,學(xué)生都可以通過網(wǎng)站獲得。
三、教學(xué)方法
教學(xué)方法是程序設(shè)計教學(xué)的核心,有了合理的課程設(shè)置和教學(xué)內(nèi)容,把程序設(shè)計的知識傳授給學(xué)生,這是決定教學(xué)成功與否的關(guān)鍵因素。
在目前普遍采用的教育模式中,學(xué)生處于一種較單純的接受式學(xué)習(xí)方式中,學(xué)生所學(xué)知識,基本上是由教師以定論的形式傳授給學(xué)生的,學(xué)生不需要進行獨立發(fā)現(xiàn),而只需接受或理解。教師則更多注重知識的傳授,重視教學(xué)內(nèi)容的選擇和講授的技巧和方法的研究,而往往不重視對學(xué)生的自主學(xué)習(xí)能力和創(chuàng)新思維的培養(yǎng)。因此,在對傳統(tǒng)教學(xué)方法分析的基礎(chǔ)上,繼續(xù)保持傳教法研究的優(yōu)勢,改變以教師為中心的狀況,注重學(xué)生多方面的能力和素質(zhì)的培養(yǎng),特別要重視學(xué)生思維能力、思維方法和創(chuàng)新能力的培養(yǎng),應(yīng)采用探究式教學(xué)方法。
1.采用探究式教學(xué)培養(yǎng)學(xué)生的創(chuàng)新能力
“探究式教學(xué)”,是指教學(xué)過程在教師的啟發(fā)誘導(dǎo)下,以學(xué)生自主學(xué)習(xí)和合作討論為基礎(chǔ),為學(xué)生提供充分自由表達、質(zhì)疑、探究、討論問題的機會,讓學(xué)生通過個人、小組、集體等多種解難釋疑嘗試活動,將所學(xué)知識應(yīng)用于解決實際問題的一種教學(xué)形式,[6]探究式教學(xué)方法通過“探究—創(chuàng)新”的過程,在培養(yǎng)創(chuàng)新型人才上起了明顯的作用,強調(diào)通過在教師引導(dǎo)下的學(xué)生自主或合作進行探索而獲得知識,特別適宜于思維能力的鍛煉和自主學(xué)習(xí)能力和團隊合作精神的培養(yǎng),它在啟發(fā)和培養(yǎng)學(xué)生創(chuàng)新能力方面呈現(xiàn)著明顯的優(yōu)點,受到教育學(xué)界的重視并得到了逐步推廣。
2.采用案例教學(xué)法提高學(xué)生的興趣
案例教學(xué)法(Case Method),在1870年由哈佛法學(xué)院院長藍德爾(C.C.Langdell)首倡,案例教學(xué)法已被大學(xué)很多專業(yè)及中小學(xué)教學(xué)廣泛應(yīng)用。它是培養(yǎng)和提高學(xué)習(xí)者知識能力的一種教學(xué)方法,即將已經(jīng)發(fā)生或?qū)砜赡馨l(fā)生的問題作為個案形式讓學(xué)習(xí)者去分析和研究,并提出各種解決問題的方案,從而提高學(xué)習(xí)者解決實際問題能力的一種教學(xué)方法。案例教學(xué)法是一種啟發(fā)學(xué)生研究實際問題,注重學(xué)生智力開發(fā)及能力培養(yǎng)的現(xiàn)代教學(xué)方法,它有著傳統(tǒng)教學(xué)方法所不具備的特殊功能。和傳統(tǒng)的“滿堂灌”、“注入式”教學(xué)法相比,案例教學(xué)側(cè)重實踐和案例的講解分析,啟迪學(xué)生積極思維,強調(diào)在教學(xué)過程中學(xué)生主動參與,引導(dǎo)學(xué)生動用科學(xué)的理論知識,去分析、歸納、演繹、推理、總結(jié),從而達到鞏固知識的目的。案例教學(xué)的實施一般包括三個步驟,案例的選擇,作為教師可以選擇一些經(jīng)典案例課題,如程序設(shè)計課程中的“學(xué)生管理系統(tǒng)”案例,接下來是案例教學(xué)的開展。案例教學(xué)的一般流程是教師介紹案例背景給出任務(wù)目標,學(xué)生開展現(xiàn)場討論提出初步意見,之后就是在教師的指導(dǎo)下不斷討論與實踐直至最終完成任務(wù)目標。案例教學(xué)的最后一步是評價,對學(xué)生提交的案例實施報告和案例解決方案根據(jù)案例任務(wù)目標進行評價,這里案例的評價通常由教師與學(xué)生共同完成,讓學(xué)生介入評價更有利于加強學(xué)生對案例的認識提高案例教學(xué)效果。古語云:“授人以魚,三餐之需;授人以漁,終生之用?!痹诎咐x擇及實施階段強調(diào)學(xué)生的自學(xué)能力是非常有必要的。那么如何做到這點呢?首先逐步削弱學(xué)生對老師的依賴,即老師不再是學(xué)生學(xué)習(xí)知識的唯一途徑,告知學(xué)生如何提高各種途徑獲得解決問題的方法是一種很有效的手段。在課堂中經(jīng)常告知學(xué)生獲取知識的三種途徑:互聯(lián)網(wǎng)、書籍或者編程軟件的幫助文檔、他人。其次是對學(xué)生獨立解決的任何問題給予鼓勵及肯定,這必將進一步促進其獨立解決問題的興趣。最后是在案例中刻意制造一些未學(xué)習(xí)過的問題,促使學(xué)生必須通過各種途徑找到解決方法。[7~8]
3.采用任務(wù)驅(qū)動式教學(xué)法增強學(xué)生的綜合能力
任務(wù)驅(qū)動教學(xué)法是一種建立在建構(gòu)主義教學(xué)理論基礎(chǔ)上的教學(xué)法。所謂任務(wù)驅(qū)動教學(xué)法,就是讓學(xué)生在一個典型的信息處理“任務(wù)”的驅(qū)動下,展開教學(xué)活動,引導(dǎo)學(xué)生由簡到繁、由易到難、循序漸進地完成一系列“任務(wù)”,從而得到清晰的思路、方法和知識的脈絡(luò),在完成“任務(wù)”的過程中,培養(yǎng)分析問題、解決問題以及用計算機處理信息的能力,為學(xué)生創(chuàng)造良好的學(xué)習(xí)環(huán)境,讓學(xué)生通過努力,能順利完成每個具體的任務(wù),掌握學(xué)習(xí)內(nèi)容,獲得成功的體驗。任務(wù)驅(qū)動式教學(xué)在形式上是:提出任務(wù)師生共同分析完成任務(wù)的方法和步驟適當(dāng)講解或自學(xué)或協(xié)作學(xué)習(xí)完成任務(wù)實踐歸納和研討。比如我們在上運算符重載時,在沒進入主題以前,先給學(xué)生布置一個任務(wù),實現(xiàn)兩個復(fù)數(shù)的運算,可能學(xué)生會用以前的知識完成任務(wù),也有的學(xué)生可能會有比較超前的想法,然后通過研討的方式對問題進行分析并提出解決方案,最終完成任務(wù),學(xué)生在完成任務(wù)的同時既學(xué)會了運用以前的知識點分析解決問題,又學(xué)會了運算符重載這一知識點。采用任務(wù)驅(qū)動教學(xué)法進行教學(xué),教師的教和學(xué)生的學(xué)都是圍繞如何完成一個具體的任務(wù)進行。教師教學(xué)思路清晰,學(xué)生學(xué)習(xí)目的明確,學(xué)習(xí)變成了學(xué)生的主動行為,可以充分調(diào)動學(xué)生的主觀能動性,在用的需求下學(xué),學(xué)以致用,更容易掌握學(xué)習(xí)內(nèi)容,增強學(xué)生的綜合能力。[1、7]
四、教學(xué)手段
在教學(xué)手段上,采用多媒體(黑板輔助)+實驗室環(huán)境+網(wǎng)絡(luò)課堂的方式。多媒體教學(xué)已經(jīng)是一種非常重要的教學(xué)手段,但單純使用多媒體進行教學(xué),老師的即興發(fā)揮以及與學(xué)生的交互將受到限制,所以,我們采用黑板進行輔助的方式。對于識記性的內(nèi)容可以通過多媒體展示,對于理解性的內(nèi)容,為了理清學(xué)生的思路則通過黑板給學(xué)生講解。此外,對于一些例題,我們采用在集成開發(fā)環(huán)境下進行現(xiàn)場調(diào)試和制作例題的多媒體動態(tài)演示課件等方法來加深學(xué)生的理解。當(dāng)前,程序設(shè)計的課堂教學(xué)一般在教室里采用“計算機+大屏幕投影”的方式,實驗課在實驗室環(huán)境下人手一機練習(xí)。該模式缺點是理論與實踐相脫節(jié)、以教師為中心、束縛學(xué)生的思維,最終直接影響到教學(xué)效果。[9]在實驗室環(huán)境下,老師講課時,鎖住所有的機器,使學(xué)生機和教師機保持同步,在學(xué)生練習(xí)時,再給機器解鎖,讓學(xué)生自由練習(xí),通過這種方式,邊講邊練,可以通過實際動手編程加深對新知識的理解。為了使所有的教學(xué)資源能被有效地利用,要建立一個網(wǎng)絡(luò)輔助教學(xué)環(huán)境,即建立程序設(shè)計網(wǎng)絡(luò)課堂,將現(xiàn)實教學(xué)中的課堂教授、作業(yè)、答疑、測試、課程設(shè)計、討論等全部在網(wǎng)絡(luò)課堂中予以實現(xiàn),提供課程的教學(xué)大綱、教學(xué)日歷、參考資料等。這樣,為學(xué)生提供了一個很好的學(xué)習(xí)氛圍。學(xué)生可以進入程序設(shè)計網(wǎng)絡(luò)課堂進行在線學(xué)習(xí)、在線討論和答疑、在線測試等。
五、結(jié)束語
總之,程序設(shè)計是計算機專業(yè)的核心課程,合理的課程內(nèi)容設(shè)置配以科學(xué)的教學(xué)方法,充分利用科技發(fā)展帶來的教學(xué)方式的革新,定能促進學(xué)生能力的提高,但是,還有很多方面有待進一步摸索。
參考文獻
1 楊靜、王浩、胡學(xué)鋼、方寶富、張晶.程序設(shè)計課程教學(xué)改革探討[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2005(S2)
2詹自勝.案例教學(xué)法在計算機程序設(shè)計教學(xué)中探索與實踐. 省略/lunwen/2008/200811/270935.shtml
3 方寶富、王浩、胡學(xué)鋼.機器人足球賽程序設(shè)計教學(xué)研究——大學(xué)生創(chuàng)新能力培養(yǎng)實踐第七屆全國計算機系主任論壇論文集[C].北京:清華大學(xué)出版社,2004
4 何炎祥、伍春香.現(xiàn)代教學(xué)理論指導(dǎo)下的“編譯原理”教學(xué)綜合改革[J].計算機教育,2005(3)
5 劉傳平.《C++語言程序設(shè)計》課程教學(xué)改革的探討[J].中國科技信息,2005(11)
6 戴挺、童蔚蘋.探究式教學(xué)法在計算機程序設(shè)計教學(xué)中的應(yīng)用[J].電氣電子教學(xué)學(xué)報,2005(4)
7 崔艷莉、張敏、王重英.淺談“案例+任務(wù)”驅(qū)動教學(xué)法在VB程序設(shè)計語言教學(xué)中的應(yīng)用[J].中國農(nóng)業(yè)銀行武漢培訓(xùn)學(xué)院學(xué)報,2009(1)
關(guān)鍵詞:C語言教學(xué);自動化專業(yè);專業(yè)技能;專業(yè)特色
中圖分類號:GDP42 文獻標識碼:A 文章編號:1009-3044(2013)13-3111-03
隨著信息技術(shù)在全社會的進一步普及,就業(yè)單位對大學(xué)生的計算機技能有了更高的要求。作為計算機教學(xué)的主要方面—計算機語言的講授,也成為了高等院校教學(xué)改革的一個重點內(nèi)容[1]。計算機語言已不再是一門孤立的課程,而是漸漸地作為一個必不可少的工具滲透到所在專業(yè)的整個學(xué)習(xí)進程中來。隨著中小學(xué)階段計算機課程的開設(shè),大學(xué)新生的計算機基礎(chǔ)也在日益提升。同時,由于我國人口素質(zhì)的進一步提高,對計算機應(yīng)用已不再滿足于傳統(tǒng)的簡單編程,而是希望將計算機作為一個真正的工具,為生產(chǎn)生活服務(wù)。因此,高校計算機語言教學(xué)改革的迫切性進一步增強。如何適應(yīng)新時期下學(xué)生、社會、用人單位對計算機語言水平的要求,是擺在教學(xué)人員面前的一個重要課題[2,3]。
該文以C語言為例探討計算機語言在自動化專業(yè)學(xué)生中教學(xué)的一些改革途徑[4]。作為一門適應(yīng)性很廣的計算機語言,C語言有著很強的生命力。它具備豐富的教材來源、大量的可參考教案和程序?qū)嵗齕5]。是在我國從985重點高校到各類職業(yè)技術(shù)學(xué)院中工科學(xué)生學(xué)習(xí)最廣的一門計算機語言,具有很強的代表性。對自動化專業(yè)的學(xué)生而言,學(xué)好C語言有助于加深對計算機程序設(shè)計思想的理解,為學(xué)習(xí)匯編語言和其他計算機高級語言打下良好的基礎(chǔ)。同時為學(xué)習(xí)后續(xù)專業(yè)課程以及進行相應(yīng)的課程設(shè)計做好專業(yè)知識的儲備。
當(dāng)然,應(yīng)該指出的是,該文所列舉的很多方法并不僅適用于C語言。不同計算機語言具有大量的共性,該文所提出的不少思路完全可以在作適當(dāng)增刪之后移植到其他計算機語言的教學(xué)中。同樣,適應(yīng)專業(yè)也不一定局限在自動化專業(yè),很多方法也可供其他專業(yè)參考。
1 教學(xué)過程的組織實施(Plan of teaching process)
1.1 C語言思想的引入
作為C語言教學(xué)的開始,教師有必要向?qū)W生介紹C語言的特點,培養(yǎng)學(xué)生對程序設(shè)計的興趣。同時需要解答學(xué)生在學(xué)習(xí)C語言初期遇到的一些常見問題,使他們不至于一開始就對C語言的學(xué)習(xí)產(chǎn)生畏難情緒。就筆者的教學(xué)經(jīng)驗而言,教學(xué)初期一般會面臨如下問題:
1)學(xué)了它有什么用?
這個問題可能是大學(xué)新生問得最多的一個問題?這時,教師并不一定說:“到時候你們就知道了”,而是可以從學(xué)生所在專業(yè)特色開始深入淺出地談一下C語言的特點和一些容易理解的直觀的應(yīng)用??梢越o學(xué)生介紹一下計算機程序在工廠過程自動化控制中的應(yīng)用。因為學(xué)生將來都要去工廠進行實習(xí)的,事先給他們介紹一下這些背景知識可以有效地提高他們對C語言學(xué)習(xí)的好奇和渴望。同時也是為他們的專業(yè)課程學(xué)習(xí)做好鋪墊。
2)我能學(xué)好嗎?
由于我國一些農(nóng)村中學(xué)計算機教學(xué)的局限,一些新生在看到其他有些同學(xué)具備較為熟練的計算機操作能力可能會產(chǎn)生焦慮情緒。這時,教師在課堂舉例時,應(yīng)當(dāng)多舉淺顯易懂的例子。興趣是最好的老師。C語言教學(xué)不是數(shù)學(xué)學(xué)習(xí),不應(yīng)該拿復(fù)雜的公式編程來使學(xué)生望而生畏。例如:如果要使學(xué)生熟悉條件語言、循環(huán)語句的使用,用最簡單的數(shù)學(xué)四則運算舉例即可。不要讓學(xué)生把注意力過多地放在數(shù)學(xué)背景上。
3)考試怎么考?
關(guān)注自己的成績是每個學(xué)生的權(quán)利,作為老師也有義務(wù)向?qū)W生講述考試的題型和方式。在這里,我們的經(jīng)驗是鼓勵學(xué)生多看其他的講授C語言的書籍。大學(xué)不像中學(xué),由于知識的經(jīng)典性,中學(xué)的教材一般是統(tǒng)一的。而大學(xué)教材則體現(xiàn)了不同專業(yè),不同編者的個性風(fēng)格。在這里,我們希望學(xué)生能汲取各家之長。如果某個知識點在一本教材里沒有看懂,那么就試圖去另外一本教材里去找找。這種做法另一個好處是破除了學(xué)生對知識會一成不變的迷信。讓學(xué)生明白:知識是不斷發(fā)展的,必須不斷學(xué)習(xí)才能不斷地充實自己。
4)今后還會用到嗎?
在中學(xué),雖然每個學(xué)期所學(xué)的知識在不斷的變化,但課程名卻總是那么幾個。但是在大學(xué),課程名會隨著所學(xué)內(nèi)容的變化在不斷地更新。如果說新生對大一的英語、數(shù)學(xué)、政治理論等課程名還似曾相識的話,那么面對高年級的一堆陌生的課程名就有點迷茫了。面對這個問題,我們可以在講授C語言各個章節(jié)時用適當(dāng)?shù)臅r間舉例講授一下該部分內(nèi)容在未來的哪些課程里面會有所涉及。通過這樣的講述,學(xué)生不但從感性上認識了將來要學(xué)習(xí)的課程的一些特點,也更進一步加深了對目前學(xué)的C語言的理解。
1.2 注重論述C語言和其他課程的相關(guān)性
作為自動化專業(yè)的一門課程,C語言既是整個自動化專業(yè)課程體系的一部分,同時也是一個貫穿專業(yè)學(xué)習(xí)始終的工具。我們在講授C語言時,沒有將它與其他課程割裂開來,而是時而不時有目的地貫輸了C語言如何在其他的知識領(lǐng)域中的一些應(yīng)用。在這里所需要指出的的,或許有老師認為對新生談及一些專業(yè)課內(nèi)容可能會使他們無所適從(因為他們尚無太多的專業(yè)基礎(chǔ))。就我們的實踐經(jīng)驗來看,這種擔(dān)心沒有太多必要?,F(xiàn)在大部分學(xué)生的自學(xué)能力和理解能力較過去已大大增強,而且目前高校給予學(xué)生的專業(yè)熏陶較之過去也已不可同日而語。新生完全有能力理解老師所講的一些簡易的專業(yè)內(nèi)容。現(xiàn)舉一些C語言與其他專業(yè)課結(jié)合的例子如下:
《數(shù)字電子技術(shù)》的一個基礎(chǔ)內(nèi)容是與門、或門、非門等邏輯門電路的講解。而這部分內(nèi)容又恰好對應(yīng)了C語言中的與、或、非三種邏輯運算。我們在講授C語言邏輯運算的同時也介紹了該部分內(nèi)容與《數(shù)字電子技術(shù)》內(nèi)容的吻合性。同時,電子技術(shù)中又涉及到數(shù)/模、模/數(shù)的轉(zhuǎn)化問題。我們在講循環(huán)語句時就要求學(xué)生嘗試編一個十進制數(shù)和二進制數(shù)轉(zhuǎn)化的程序(其算法在更早的《大學(xué)計算機基礎(chǔ)》課程里就已經(jīng)講授到)。使學(xué)生對硬件邏輯和軟件邏輯的概念具有了直觀的概念。
計算機控制的一個特點在于它控制指令的離散性?!队嬎銠C控制》課程中一個很重要的知識點是控制量的遞推運算。我們在講述一維數(shù)組時有意識地強化了數(shù)組元素的遞推編程。并且通過設(shè)置標志位,對某些具有特定意義的元素進行了定位標示。使學(xué)生在今后接觸到相關(guān)課程時感到有章可循。
《微型計算機原理》是自動化專業(yè)中一門重要課程。在這門課程中,指令地址的概念是一個較難理解的問題。我們在講C語言的指針部分時有意識地涉及到了該部分內(nèi)容。試圖通過講述指針為今后學(xué)習(xí)指令尋址打下基礎(chǔ),反之,也試圖通過介紹指令地址,使學(xué)生明確指針一節(jié)的地位和重要性。
作為一門工具性與理論性兼?zhèn)涞恼n程,《數(shù)據(jù)庫技術(shù)》里面的內(nèi)容較為繁雜。在講述結(jié)構(gòu)體這一章時,我們有意識地介紹了數(shù)據(jù)庫的基本組成思想。要求學(xué)生用結(jié)構(gòu)體知識編一個小型的數(shù)據(jù)管理程序。任務(wù)雖然簡單,但已經(jīng)涉及到了數(shù)據(jù)庫組成的主干思想。使學(xué)生對這門課程不再神秘。
MATLAB語言的講授是《計算機仿真技術(shù)》課程的骨干內(nèi)容??紤]到仿真技術(shù)對于自動化專業(yè)的重要性,我們在講授C語言語句的同時,也適量介紹了它在MATLAB語言中所對應(yīng)的代碼。這樣做的目的是為學(xué)生破除“世界上只有C語言”這一誤解。為他們更好地理解程序員的含義打下基礎(chǔ)。
通過諸如此類內(nèi)容的引入,學(xué)生學(xué)習(xí)C語言不再感到單一乏味。同時,由于我們對相關(guān)內(nèi)容點到為止,并沒有增加學(xué)生的負擔(dān)。而當(dāng)學(xué)生將來接觸到對應(yīng)的知識點時,就會享受到以前學(xué)習(xí)的基礎(chǔ)了。
2 教學(xué)案例分析
本節(jié)就我們講述C語言時的相關(guān)案例進行探討。意圖拋磚引玉,進一步完善C語言教學(xué)。如前所述,興趣是最好的老師。如果學(xué)生有了學(xué)習(xí)的興趣,自然教學(xué)會事半功倍。因此,我們將興趣的培養(yǎng)貫穿了C語言教學(xué)的始終。
計算機編程的一個核心思想之一是通過不斷循環(huán)執(zhí)行一些簡單的語句來實現(xiàn)對目標的搜索,并且在搜索的過程中需要判斷搜索的終止條件是否已經(jīng)達到。因而條件語句和循環(huán)語句的教學(xué)是C語言教學(xué)的一項重點內(nèi)容。為了培養(yǎng)學(xué)生的興趣,結(jié)合學(xué)生理工科的專業(yè)背景,我們在教學(xué)中引入了不少數(shù)論名題作為例子,要求學(xué)生編程予以驗證。例如:3x+1猜想是一個很有趣的問題[6]。這個猜想是:任意給一個自然數(shù),如果它是偶數(shù),則除以2;如果它是奇數(shù),則乘以3再加上1.所得結(jié)果再按如上規(guī)則進行運算,最終結(jié)果一定是1.例如,對數(shù)字7,其后續(xù)的運算結(jié)果是;22,11,34,17,52,26,13,40,20,20,5,16,8,4,2,1.針對這個問題,我們要求學(xué)生用條件語句判斷數(shù)字的奇偶性,然后用循環(huán)語句實現(xiàn)這個數(shù)列的計算。更推廣一步,我們還要求學(xué)生用隨機數(shù)發(fā)生器生成一個隨機整數(shù),然后分別用while循環(huán)和do-while循環(huán)來實現(xiàn)這個過程,并且要學(xué)生記錄下達到1時一共產(chǎn)生了幾個數(shù)?如何實現(xiàn)到1就退出循環(huán)?在這一循環(huán)過程中的最大值是多少?由于3x+1問題的淺顯易懂,且因為其尚未得到證明所具有強大挑戰(zhàn)性,使學(xué)生對編程產(chǎn)生了濃厚的興趣。不少學(xué)生紛紛試圖去驗證自己所提出的數(shù)的正確性。還有學(xué)生則試圖進一步通過函數(shù)調(diào)用的方式來改善程序。也有學(xué)生在程序中插入了各種有趣的提示性語句。這個例子的提出,滿足了不同層次學(xué)生的不同要求。一下子就把他們帶進了豐富多彩的代碼世界中。
輸入輸出語句的編寫是人機交互的關(guān)鍵環(huán)節(jié)。總所周知,英語學(xué)習(xí)是我國廣大大中學(xué)生學(xué)習(xí)的一個主要課程。幾乎所有的大專院校都把學(xué)生能否通過某種英語水平考試作為其能否順利畢業(yè)的核心條件之一。我們也注意到個別學(xué)生由于擔(dān)心英語的壓力而在課堂上記憶英語單詞。對此,我們采用了引導(dǎo)的辦法。在針對3x+1問題編程的訓(xùn)練中,我們要求學(xué)生用英文寫出對應(yīng)代碼的提示和答案。在此之前,不少學(xué)生是用漢語拼音或簡單的“yes”、“no”,甚至僅是“?”來表示問題的。通過我們的這一要求,學(xué)生積極地去尋求許多詞匯的英文表述。這樣一來,他們希望看懂C語言編譯器所給出的英文錯誤提示的熱情也越來越高了。通過這樣的訓(xùn)練,有些學(xué)生開始漸漸能嘗試看一些關(guān)于C語言的英文著作了。如此不斷循環(huán),學(xué)生的計算機能力、英語能力都得到了提高,應(yīng)該說是實現(xiàn)了雙贏。
3 結(jié)束語
計算機語言的教學(xué)工作是工科專業(yè)教學(xué)的一個重點環(huán)節(jié)??萍及l(fā)展的客觀要求使得我們更加重視教學(xué)課程的一體化。作為一門在專業(yè)學(xué)習(xí)初期階段開設(shè)的課程,C語言有它自身的一些教學(xué)特點。我們在總結(jié)自己的一些教學(xué)經(jīng)驗的基礎(chǔ)上,試圖更好地將C語言這個工具融入到學(xué)生的整個專業(yè)學(xué)習(xí)體系中。讓學(xué)生從享受編程的快樂開始,無形中回答了自己前期的一些疑惑,同時也不知不覺地為將來的其他課程學(xué)習(xí)以及自己專業(yè)素質(zhì)的培養(yǎng)打下了良好的基礎(chǔ)。
參考文獻:
[1] 謝寶榮.計算機教學(xué)設(shè)計藝術(shù)[M].清華大學(xué)出版社,2007.
[2] 陳國良,董榮勝.計算思維與大學(xué)計算機基礎(chǔ)教育[J].中國大學(xué)教學(xué),2011(1):7-12.
[3] 馮博琴.計算機基礎(chǔ)教育新階段的教學(xué)改革研究[J].中國大學(xué)教育,2004(9):7-10.
[4] 王鵬遠,蘇虹.高校非計算機專業(yè)C語言教學(xué)改革與實踐[J].計算機教育,2011(2):15-18.