程序設(shè)計風格范文
時間:2023-03-23 11:03:21
導(dǎo)語:如何才能寫好一篇程序設(shè)計風格,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公文云整理的十篇范文,供你借鑒。

篇1
【關(guān)鍵詞】面向?qū)ο螅?a href="http://www.yuanjingfilm.com/haowen/62348.html" target="_blank">程序設(shè)計特征
程序的質(zhì)量取決于程序設(shè)計的質(zhì)量,選擇了程序設(shè)計語言之后,編程風格決定了程序的可讀性、可測試性和可維護性。對面向?qū)ο髮崿F(xiàn)來說,良好的面向?qū)ο蟪绦?a href="http://www.yuanjingfilm.com/haowen/62348.html" target="_blank">設(shè)計風格,不但要遵循傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計風格和準則,也要遵循為適應(yīng)面向?qū)ο蠓椒ㄋ赜械母拍?例如,繼承性)而必需的一些新的風格和準則。
一、提高可重用性
提高軟件的可重用性是面向?qū)ο蠓椒ǖ囊粋€主要目標。軟件重用是指在兩次或多次不同的軟件開發(fā)過程中重復(fù)使用相同或相似軟件元素的過程。軟件元素包括程序代碼、測試用例、設(shè)計文檔、設(shè)計過程、需求分析甚至知識領(lǐng)域等多個層次。在編碼階段主要考慮代碼重用的問題,代碼級的重用是最簡單,也是最流行的,是迄今為止研究最深入、應(yīng)用最廣泛的重用技術(shù)。傳統(tǒng)上,代碼級重用部件的主體是子程序(函數(shù)或過程)。現(xiàn)在,由于基于對象和面向?qū)ο蟮某绦蛟O(shè)計語言及相應(yīng)開發(fā)環(huán)境的發(fā)展,代碼級重用部件的內(nèi)容更加豐富,不僅包括結(jié)構(gòu)化程序設(shè)計語言中的函數(shù)或過程,同時也包括面向?qū)ο蟪绦蛟O(shè)計語言中的程序包和類。
一般說來,代碼重用可分為兩種形式,一種是本項目內(nèi)的代碼重用,稱為內(nèi)部重用;另一種是新項目重用已有項目的代碼,稱為外部重用。內(nèi)部重用主要是找出本項目設(shè)計中相同或相似的部分,然后利用繼承機制共享它們。要做到外部重用,即一個項目重用另一項目的代碼,就要求開發(fā)人員必須具有重用的設(shè)計思想,做到反復(fù)考慮,精心設(shè)計。雖然為實現(xiàn)外部重用與內(nèi)部重用需要考慮的范圍不同,但是有助于實現(xiàn)這兩類重用的程序設(shè)計準則卻是相同的。實踐經(jīng)驗表明,主要的準則有:
1.提高方法的內(nèi)聚,減小方法的規(guī)模
一個方法(即服務(wù))應(yīng)該只完成單個功能,這樣的方法是高內(nèi)聚的。如果某個方法涉及兩個或多個不相關(guān)的功能或規(guī)模大的方法,則應(yīng)該把它分解成幾個更小的方法。
2.保持方法的一致性
實現(xiàn)代碼重用的一個重要因素是應(yīng)該保持方法的一致性。一般來說,功能相似的方法應(yīng)該有一致的名字、參數(shù)特征(包括參數(shù)個數(shù)、類型和次序)、返回值類型、使用條件及出錯條件等。這樣有助于實現(xiàn)代碼重用。
3.把策略與實現(xiàn)分開
方法從所完成的功能來看有兩種類型:策略方法和實現(xiàn)方法。策略方法負責做出決策,提供變元,并且管理全局資源;實現(xiàn)方法只負責完成具體的操作,但卻沒有執(zhí)行這個操作的決定權(quán),也不知道為什么執(zhí)行這個操作。
策略方法不直接完成計算或?qū)崿F(xiàn)復(fù)雜的算法,只是檢查系統(tǒng)運行狀態(tài),并處理出錯情況。該方法通常緊密依賴于具體應(yīng)用,這類方法易編寫、易理解。
實現(xiàn)方法僅僅針對具體數(shù)據(jù)完成特定處理,通常用于實現(xiàn)復(fù)雜的算法。實現(xiàn)方法既不制定決策,也不管理全局資源。實現(xiàn)方法如果在執(zhí)行過程中發(fā)現(xiàn)錯誤,只返回執(zhí)行狀態(tài)而不處理出錯情況。由于實現(xiàn)方法是自含式算法,與具體應(yīng)用相對獨立,因此,容易在其他應(yīng)用系統(tǒng)中重用,具有較高的可重用性。
在編程時分清策略方法和實現(xiàn)方法,不要把它們放在同一個方法中。應(yīng)該把算法的核心部分放在一個單獨的具體實現(xiàn)方法中。為此需要從策略方法中提取出具體參數(shù),作為調(diào)用實現(xiàn)方法的變元,才能提高方法可重用性。
4.采用全面覆蓋技術(shù)
在編程時,對系統(tǒng)全面考慮,寫出覆蓋整個系統(tǒng)所有可能的方法。而不能僅僅針對當前需要的功能寫方法。例如,如果在當前應(yīng)用中需要寫一個獲取表中第一個元素的方法,則至少還應(yīng)該為獲取表中最后一個元素再寫一個方法。一個方法不僅能處理正常值,而且還能夠?qū)Ξ惓G闆r(如空值、極限值及界外值等)作出有意義的響應(yīng)。
5.降低方法的耦合度
降低方法與外界的耦合程度的一項主要措施是在方法中盡可能少使用或不使用全局信息。
6.充分地利用繼承機制
使用繼承機制可實現(xiàn)共享和提高重用性,是面向?qū)ο蟪绦蛟O(shè)計的主要途徑。
(1)使用子過程。把公共的代碼分離出來,構(gòu)成一個被其他方法調(diào)用的公用方法,是實現(xiàn)代碼復(fù)用最常用、最簡單的方法。通??梢栽诨愔卸x這個公用方法,供派生類中的方法調(diào)用。
(2)分解因子。提高相似類代碼可重用性的另一個有效途徑,是從不同類的相似方法中分解出公共代碼和不同的代碼(即因子)。把公共代碼作為公用方法,定義在一個抽象基類(額外的)中;把不同的因子作為名字相同而算法不同的方法,定義在不同類中,并被這個公用方法調(diào)用。把這種分解與面向?qū)ο笳Z言提供的多態(tài)性機制結(jié)合起來,抽象基類中定義的公用方法可由派生類來繼承,在新子類中只需編寫其特有的代碼,由于增添新子類編寫的代碼減少了,顯然為增添新子類所需付出的工作量也就明顯降低了。
(3)使用委派。當確實存在一般—特殊關(guān)系時,利用繼承關(guān)系,子類可以繼承父類的所有方法和屬性。但是,當邏輯上不存在一般—特殊關(guān)系時,為重用已有的代碼,可以利用委派機制。要恰當?shù)厥褂美^承機制,否則會降低程序的可理解性、可修改性和可擴充性。
(4)把重用代碼封裝在類中。解決同一類應(yīng)用問題時,程序員往往希望重用其他方法編寫的程序代碼。那么就將被重用的代碼封裝在類中,這樣使用起來比較安全,也是程序員應(yīng)該提倡的編程風格。例如,如果開發(fā)一個應(yīng)用數(shù)學(xué)系統(tǒng)時,發(fā)現(xiàn)有現(xiàn)成的實現(xiàn)迭代法的商品軟件包,程序員想重用這個算法,于是先定義一個迭代法類,然后把這個商品軟件包的功能封裝在該類中即可。
二、提高可擴充性
前面所述的提高可重用性的準則,同樣能提高程序的可擴充性。通過實踐研究,有助于提高程序的可擴充性的面向?qū)ο蟪绦蛟O(shè)計準則如下:
1.封裝實現(xiàn)策略
為了提高類中數(shù)據(jù)結(jié)構(gòu)或算法可修改性,應(yīng)該把類中描述屬性的數(shù)據(jù)結(jié)構(gòu)以及修改屬性的算法等實現(xiàn)策略封裝起來,只提供公有的接口供外界訪問。
2.方法的功能應(yīng)該單一
一個方法應(yīng)該高內(nèi)聚低耦合,包含對象模型中的有限內(nèi)容。如果用一個方法遍歷多條關(guān)聯(lián)鏈,將使方法過分復(fù)雜,既降低了可理解性,又影響了可修改性和可擴充性。
3.避免使用多分支語句
在實施系統(tǒng)開發(fā)過程中,可以利用DO-CASE語句測試對象的內(nèi)部狀態(tài),避免使用多分支語句來根據(jù)對象類型選擇應(yīng)有的行為,否則在增添新類時將不得不修改原有的代碼。一般來說,應(yīng)該合理地利用多態(tài)性機制,根據(jù)對象當前類型,自動決定應(yīng)有的行為。
4.精心選擇和定義公有方法
公有方法是對外公用的接口,私有方法是僅在類內(nèi)使用的方法,通常利用私有方法來實現(xiàn)公有方法。一般來說,公有方法的修改代價要比私有方法大得多,因為對公有方法的修改常常會引起許多其他類的修改,而私有方法的刪除、增加或修改所涉及的面要小得多(僅在類內(nèi)),因此代價也比較小。為提高可修改性,降低維護成本,必須精心選擇和定義公有方法。
三、提高健壯性
提高健壯性,也是程序員在編寫實現(xiàn)方法的代碼時應(yīng)該考慮的一個重要方面。通常需要在健壯性與效率之間做出適當?shù)恼壑?。健壯性對任何一個實用軟件都是不可忽略的質(zhì)量指標。遵守下述準則將有助于提高健壯性。(下轉(zhuǎn)第83頁)
(上接第81頁)
1.增強系統(tǒng)的容錯功能
系統(tǒng)應(yīng)該具備容錯功能,即具有處理用戶操作錯誤的能力。當用戶操作失誤或輸入數(shù)據(jù)出錯時,不會引起程序運行中斷,更不應(yīng)該造成“死機”,而應(yīng)該對操作進行檢查,發(fā)現(xiàn)了的錯誤,必須給出有關(guān)的提示信息,并允許用戶再次輸入或正常退出。
2.檢查參數(shù)的合法性
對軟件系統(tǒng)中所使用的方法或過程,尤其是公有方法或過程,應(yīng)該著重檢查其參數(shù)的合法性,不能因為用戶在使用公有方法或過程時,違反參數(shù)的約束條件而引發(fā)程序運行中斷或造成系統(tǒng)“死機”現(xiàn)象。
3.不要預(yù)先確定限制條件
預(yù)先確定限制條件對所開發(fā)的系統(tǒng)往往會產(chǎn)生一些不良的后果。特別是在設(shè)計階段,往往很難準確地預(yù)測出應(yīng)用系統(tǒng)中使用的數(shù)據(jù)結(jié)構(gòu)的最大容量需求。當系統(tǒng)中使用的數(shù)據(jù)結(jié)構(gòu)的容量大于預(yù)先確定的限制條件時,系統(tǒng)有可能引發(fā)一連串的問題。因此不應(yīng)該預(yù)先確定限制條件。如果有必要和可能的條件下,則應(yīng)該使用動態(tài)內(nèi)存分配機制來創(chuàng)建數(shù)據(jù)結(jié)構(gòu),當然,該數(shù)據(jù)結(jié)構(gòu)是未預(yù)先確定限制條件的。
4.先測試后優(yōu)化
為了提高健壯性,往往需要增加大量的代碼,這就或多或少地影響了系統(tǒng)的執(zhí)行效率。因此,就需要在效率與健壯性之間做出合理的折衷。一般來說,首先根據(jù)應(yīng)用程序的特點,確定需要著重測試的部分(例如,最壞情況出現(xiàn)的次數(shù)及處理時間等),進行測試。然后為提高性能,確定著重優(yōu)化的關(guān)鍵部分。此外在選擇算法時,要綜合考慮內(nèi)存需求、速度以及實現(xiàn)的簡易程度等因素,選擇出適當?shù)乃惴ā?/p>
篇2
關(guān)鍵詞:軟件工程;程序設(shè)計;課程群;建設(shè);實踐
軟件工程專業(yè)的培養(yǎng)目標是面向我國軟件產(chǎn)業(yè)培養(yǎng)急需的工程應(yīng)用型人才。軟件產(chǎn)業(yè)的發(fā)展要求學(xué)生具備較強的系統(tǒng)分析、設(shè)計、開發(fā)與維護能力[1]。為培養(yǎng)學(xué)生軟件系統(tǒng)方面的相關(guān)能力,許多高校的軟件工程專業(yè)都設(shè)置了系列課程模塊,如程序設(shè)計課程模塊、網(wǎng)絡(luò)技術(shù)課程模塊、計算機體系和操作系統(tǒng)課程模塊、軟件工程課程模塊等,這些模塊往往是一些單獨課程的組合,有很多學(xué)生學(xué)了這門課程,又忘記了那門課程,到畢業(yè)時專業(yè)能力達不到社會所要求的層次。程序設(shè)計課程群是軟件工程專業(yè)系列課程的重要組成部分,其承載的技能培養(yǎng)目標是專業(yè)培養(yǎng)的子目標[2],處于非常重要的地位。課程群建設(shè)是專業(yè)建設(shè)的一部分[3],有利于打通課程知識脈絡(luò),避免課程內(nèi)容重復(fù)或前后脫節(jié),使前后連貫,內(nèi)容融合,進而獲得整體優(yōu)勢[4]。程序設(shè)計課程群主要培養(yǎng)計算思維能力、算法設(shè)計與分析能力、程序設(shè)計與實現(xiàn)能力和系統(tǒng)分析開發(fā)能力[5]。學(xué)生通過程序設(shè)計課程群的學(xué)習(xí),可掌握1~2門程序設(shè)計語言,更進一步理解程序設(shè)計方法,熟練掌握常用的數(shù)據(jù)結(jié)構(gòu)和算法,形成良好的程序設(shè)計風格,可獨立分析、設(shè)計和開發(fā)中小型軟件系統(tǒng)。所以對程序設(shè)計課程群進行研究并積極實踐對專業(yè)培養(yǎng)目標的實現(xiàn)具有重要現(xiàn)實意義。
1問題分析
目前,大多數(shù)高校信息類相關(guān)專業(yè)都開設(shè)了程序設(shè)計系列課程,一般為C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法、java程序設(shè)計等。許多高校都將C程序設(shè)計作為第一門程序設(shè)計課程[6],一般安排在第一學(xué)期或者第二學(xué)期,學(xué)完C語言之后,再學(xué)其他程序設(shè)計課程,如數(shù)據(jù)結(jié)構(gòu)等。由于C語言本身比較靈活且語法內(nèi)容比較多,對于初學(xué)者來說并不太好掌握。一些教師在授課過程中,沒有站在軟件設(shè)計的高度思考教學(xué)內(nèi)容,往往過多地強調(diào)語言成分的語法和語義,而忽視了計算思維能力[7]的培養(yǎng),使學(xué)生從開始就扎進程序設(shè)計語言的細枝末節(jié)中去,忽略了軟件工程思想的滲透,到最后學(xué)生掌握了一些語法,卻不能寫出較為優(yōu)美的程序或沒有形成較好的程序設(shè)計思維和風格。算法是程序的靈魂,數(shù)據(jù)結(jié)構(gòu)和算法在課程群中具有基礎(chǔ)和核心地位[8]。在實際教學(xué)過程中,學(xué)生普遍反映數(shù)據(jù)結(jié)構(gòu)和算法課程抽象難學(xué),在學(xué)習(xí)和實際應(yīng)用中出現(xiàn)的問題比較多,很難寫出能正確運行的程序,學(xué)習(xí)過程中成就感不強,學(xué)完之后還是不知道如何應(yīng)用,很難達到預(yù)期的效果。由于在前期的學(xué)習(xí)中,程序設(shè)計基礎(chǔ)沒有打牢,對常用的數(shù)據(jù)結(jié)構(gòu)和算法沒有真正掌握,模塊化程序設(shè)計思維沒有有效建立,良好的程序設(shè)計風格沒有形成,導(dǎo)致后續(xù)的高級面向?qū)ο笳Z言程序設(shè)計學(xué)習(xí)很難深入,最終導(dǎo)致軟件分析與設(shè)計能力得不到有效的提升。
2程序設(shè)計課程群建設(shè)
我校軟件工程專業(yè)采取校企合作辦學(xué)模式,由吉首大學(xué)和中軟國際共同建設(shè),企業(yè)參與人才培養(yǎng)的全過程,在具體實施過程中,學(xué)校側(cè)重于理論教學(xué)部分,企業(yè)側(cè)重于實踐教學(xué)部分[9]。程序設(shè)計課程群是軟件工程專業(yè)課程體系的重要組成部分,企業(yè)參與討論與建設(shè),確定該課程群以軟件設(shè)計能力培養(yǎng)為主線,以C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設(shè)計與分析幾門課程為基礎(chǔ)組建課程群,C語言程序設(shè)計開設(shè)在第一、二學(xué)期,數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設(shè)計與分析分別開設(shè)在第三、四、五學(xué)期,第六學(xué)期可開設(shè)JavaWeb程序設(shè)計或Asp.NetWeb程序設(shè)計,使課程群在能力構(gòu)建和開設(shè)形式方面形成一個不間斷的體系。
3程序設(shè)計課程群實施
3.1精講課程主要內(nèi)容,提高程序設(shè)計能力
課程組教師首先需要站在軟件分析與設(shè)計的角度研究各門課程在課程群中的地位和作用,把課程群中的系列課程作為一個有機的整體,研究各門課程的主要教學(xué)內(nèi)容,針對課程重點、難點、疑惑點進行精講,做到理論與實踐課并重,有效提高學(xué)生程序設(shè)計水平。在課程群系列課程中,由于第一門課程是后續(xù)系列課程的基礎(chǔ),所以學(xué)生必須掌握它。在C語言的教學(xué)中,要滲透軟件分析與設(shè)計的思想,把握程序的主要框架,不糾纏于一些細枝末節(jié)的語法。函數(shù)是C語言教學(xué)中的重點,需要重點突破,從模塊設(shè)計的角度來考慮函數(shù)設(shè)計,對于一個具體的函數(shù),則要掌握函數(shù)的返回類型、參數(shù)類型以及參數(shù)個數(shù)。如用函數(shù)處理一個數(shù)組時,需要傳遞數(shù)組的首地址和數(shù)組的規(guī)模,首地址用指針表示,數(shù)組的規(guī)模則有兩種表示方法,一是數(shù)組的長度,二是數(shù)組的起始下標和結(jié)束下標,這兩種方式可能會分別應(yīng)用到不同的地方,如果教師一直不提示第二種方法,則將來學(xué)生在寫數(shù)組做參數(shù)的遞歸程序時可能會遇到困難。從多年的教學(xué)實踐來看,如果學(xué)生真正掌握了函數(shù)設(shè)計方法,再加上必要的算法知識,一般情況下,程序設(shè)計就會變得得心應(yīng)手而且十分有趣;對于數(shù)據(jù)結(jié)構(gòu)課程,采取以數(shù)據(jù)存儲(內(nèi)存)為主線的方法,將重點放在數(shù)據(jù)的存儲和相關(guān)算法方面,在算法實現(xiàn)時滲透模塊化的思想,需注意頭文件和實現(xiàn)文件的定義,因為數(shù)據(jù)結(jié)構(gòu)內(nèi)容具有很強的連貫性且程序的初始化工作較多,如鏈表的具體應(yīng)用則先要建立鏈表、樹的遍歷和節(jié)點的查找等則先要建立樹、圖的遍歷和最短路徑及關(guān)鍵路徑等則先要建立圖,在實驗過程中有意識地把一些基礎(chǔ)工作放入頭文件,則會極大地提高實驗的效率;在面向?qū)ο蠹夹g(shù)教學(xué)中,以面向?qū)ο蟪绦蛟O(shè)計的方法為核心,以語言中的面向?qū)ο髾C制為主要內(nèi)容,在適當?shù)臅r候引入《ThinkinginC++》、《EffectiveC++》、《ThinkinginJa-va》等優(yōu)秀書籍中的一些思想和經(jīng)驗,要注重面向?qū)ο蟪绦蛟O(shè)計過程中大的程序框架的合理性以及具體處理算法的正確性;在講授算法設(shè)計與分析的時候,應(yīng)集中精力將主要算法講透,直到學(xué)生學(xué)懂為止,在實現(xiàn)算法時,應(yīng)充分運用面向?qū)ο笤O(shè)計的思想,將算法封裝在類中;在web程序設(shè)計教學(xué)中,采用案例驅(qū)動的方式,精講軟件項目設(shè)計中的主要方法和主要問題,培養(yǎng)學(xué)生工程化設(shè)計思想。精講的目的是讓學(xué)生多練,精講之后要布置任務(wù)并為學(xué)生提供練習(xí)環(huán)境和相關(guān)指導(dǎo),必須充分發(fā)揮教師主導(dǎo)和學(xué)生主體作用,教師要認真檢查學(xué)生的作業(yè)、實驗和練習(xí)情況,及時糾正問題,引導(dǎo)學(xué)生運用軟件工程的思想設(shè)計程序,培養(yǎng)學(xué)生良好的程序設(shè)計思維和程序設(shè)計風格,激發(fā)學(xué)生自覺學(xué)習(xí)和實現(xiàn)相關(guān)算法,最終提高程序設(shè)計能力。
3.2大規(guī)模開展程序設(shè)計訓(xùn)練,培養(yǎng)程序設(shè)計能力
為培養(yǎng)學(xué)生算法設(shè)計與分析能力,學(xué)院在晚上和周末開放了實驗室,在實驗室搭建了ACM在線測評系統(tǒng)(ACMOnlineJudgeSystem),并接入了校園網(wǎng),結(jié)合C程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法等課程部署了大量習(xí)題。學(xué)院利用課余時間,有計劃組織學(xué)生進入實驗室進行編程訓(xùn)練,并為每次訓(xùn)練配備了指導(dǎo)教師。平時,學(xué)生也可以在寢室登錄平臺進行訓(xùn)練。教師在講授C程序設(shè)計等課程的時候,要求學(xué)生利用課余時間在ACM平臺上完成至少上百道題的訓(xùn)練,并將完成情況計入課程的平時成績。通過大規(guī)模開展在線程序設(shè)計訓(xùn)練,學(xué)生的程序設(shè)計能力有了明顯的提高。
3.3開展課程設(shè)計訓(xùn)練,培養(yǎng)工程化設(shè)計思想
在課程群中除開設(shè)理論課程對應(yīng)的實驗項目之外,還針對整門課程開設(shè)了綜合性課程設(shè)計項目,如C語言課程設(shè)計、面向?qū)ο蠹夹g(shù)課程設(shè)計、javaweb課程設(shè)計,單個課程設(shè)計周期為1-4周。學(xué)院課程設(shè)計項目主要由企業(yè)教師指導(dǎo)完成,該類項目采用分組形式,在組內(nèi)模擬軟件企業(yè)運行模式設(shè)置相關(guān)崗位角色,學(xué)生在仿真企業(yè)環(huán)境中,利用仿真的軟件開發(fā)項目,進行輪崗和角色體驗,培養(yǎng)學(xué)生的軟件工程應(yīng)用能力、軟件項目開發(fā)與測試能力、職業(yè)素質(zhì)等,從而使學(xué)生熟悉軟件項目開發(fā)流程和規(guī)范,養(yǎng)成良好的軟件開發(fā)習(xí)慣。課程設(shè)計結(jié)束時,要求學(xué)生演示并講解自己的項目開況,由學(xué)院教師和企業(yè)教師組成評定小組進行評分。
3.4改革考核與評價方式,理論與實踐、平時與期末相結(jié)合
理論與實踐相結(jié)合。程序設(shè)計課程群內(nèi)的課程都是實踐性很強的課程,其目的是運用所學(xué)的知識解決實際問題,決定了課程的期末考核要綜合考慮理論和實踐兩部分內(nèi)容。理論部分主要考查學(xué)生對基本概念的理解和對基本知識的掌握情況,實踐部分側(cè)重考查學(xué)生的綜合應(yīng)用能力,這兩部分成績都在期末完成,占課程總成績的60%左右。平時與期末相結(jié)合。期末考核重在體現(xiàn)學(xué)習(xí)的結(jié)果,平時成績則側(cè)重于體現(xiàn)學(xué)習(xí)過程,在課程總成績中,平時成績占40%左右,即一門課程約有40分來自平時的學(xué)習(xí)過程。平時成績一般由出勤、作業(yè)和平時實驗情況、課程設(shè)計情況組成。在學(xué)期開始第一堂課的時候?qū)⒄n程評分方式告知每一個學(xué)生,必須抓緊平時的學(xué)習(xí),若平時分小于20分,則取消課程考試資格或直接將課程總成績記為不及格。
4結(jié)語
程序設(shè)計課程群對培養(yǎng)學(xué)生計算思維能力、算法設(shè)計與分析能力、系統(tǒng)分析與設(shè)計能力具有重要作用。本文分析了學(xué)生在課程群學(xué)習(xí)中遇到的一些問題,從軟件分析與設(shè)計的角度對課程群進行建設(shè)與改革,提出了以C語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο蠹夹g(shù)、算法設(shè)計與分析等幾門課程為基礎(chǔ)組建程序設(shè)計課程群,給出了課程群的主要知識與能力體系要求,通過精講課程主要內(nèi)容、大規(guī)模有組織地開展程序設(shè)計訓(xùn)練、企業(yè)教師指導(dǎo)課程設(shè)計、改革考核與評價方式等方法進行教學(xué)改革,學(xué)生的程序設(shè)計能力得了到較大的提高。
參考文獻
[1]韋迎春,文俊浩,陳蜀宇.以能力培養(yǎng)為核心構(gòu)建示范性軟件學(xué)院實踐教學(xué)體系[J].中國高等教育,2011(2):49-50.
[2]喬付,王國權(quán),張鳳武.CDIO理念下計算機程序設(shè)計課程群建設(shè)探索[J].內(nèi)蒙古師范大學(xué)學(xué)報,2011,24(11):39-41.
[3]孫雷,王新.計算機專業(yè)程序設(shè)計課程群的研究與實踐[J].教育教學(xué)論壇,2013(11):222-224.
[4]翁偉,吳克壽,吳蕓,等.程序設(shè)計課程群建設(shè)探索與實踐[J].計算機教育,2009(23):123-125.
[5]王海舜,蔣巍?。诔绦蛟O(shè)計能力培養(yǎng)的軟件設(shè)計類課程群架構(gòu)[J].計算機教育,2012(2):23-26.
[6]萬臣,謝芳,胡泉.計算機專業(yè)程序設(shè)計課程群的建設(shè)與研究[J].合肥工業(yè)大學(xué)學(xué)報:社會科學(xué)版,2009,23(1):33-36.
[7]汪紅兵,姚琳,武航星,等.C語言程序設(shè)計課程中的計算思維探析[J].中國大學(xué)教學(xué),2014(9):59-62.
篇3
關(guān)鍵詞:C++高級編程;實踐教學(xué);案例教學(xué);綜合性實驗
“C++高級編程”是一門對學(xué)生理論基礎(chǔ)及實踐能力要求較高的課程。C++高級編程是基于C++靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通用程序設(shè)計語言基礎(chǔ)上的高級編程。它支持過程化程序設(shè)計、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計、制作圖標、泛型程序設(shè)計等多種設(shè)計風格,對學(xué)生理論水平及動手能力綜合素質(zhì)要求較高。
在教學(xué)工作中,我們堅持理論聯(lián)系實踐,幫助學(xué)生建立科學(xué)、有效的編程思想。并結(jié)合教學(xué)工作進行開發(fā)應(yīng)用,提高了學(xué)生編寫程序的動手能力,取得了較好的教學(xué)成果。
1教學(xué)中存在的主要問題
通過對我院計算機專業(yè)“C++高級編程”課程教學(xué)現(xiàn)狀分析,發(fā)現(xiàn)主要存在以下問題:
(1) 重“理論教學(xué)”輕“實踐教學(xué)”。我校計算機專業(yè)該課程教學(xué)總課時為70學(xué)時,要求學(xué)生在較短的學(xué)習(xí)時間內(nèi)既要掌握理論知識,同時又具備較強的動手實踐能力。因此,教師在授課過程中,要么過分強調(diào)理論教學(xué),要么過分側(cè)重于流行數(shù)據(jù)庫開發(fā)工具的教學(xué),致使理論教學(xué)與應(yīng)用實踐比例失衡,使學(xué)生存在理論高分實踐低能現(xiàn)象。
(2) 教學(xué)方法和手段缺乏多樣性。目前,多媒體教學(xué)日趨流行,我校教師在“C++高級編程”理論授課中大多采用CAI課件進行教學(xué)。此教學(xué)方法雖然減輕了教師的板書負擔,增加了信息量。但學(xué)生反映在學(xué)習(xí)過程中,教學(xué)內(nèi)容重視語法細節(jié)而輕視實踐環(huán)節(jié),理論結(jié)合實際解決問題的能力較低,始終處于被動學(xué)習(xí)狀態(tài)。
(3) 實驗內(nèi)容過于簡單,覆蓋理論知識范圍有限。在實驗課教學(xué)過程中,每章節(jié)課后題可供學(xué)生選擇范圍較小,各章節(jié)實驗內(nèi)容聯(lián)系不緊密,存在脫節(jié)現(xiàn)象。學(xué)生無法將所學(xué)知識應(yīng)用到項目的分析、設(shè)計、實施、驗收各環(huán)節(jié)中去。既不利于學(xué)生理論聯(lián)系實際,也不利于學(xué)生適應(yīng)工作后的企業(yè)項目開發(fā)環(huán)境。
(4)“教”與“學(xué)”考核方法過于單一。我校在“教”與“學(xué)”考核方式上以傳統(tǒng)的理論筆試為主。該考核方式在“教與學(xué)”環(huán)節(jié)上存在重理論學(xué)習(xí)輕實踐應(yīng)用,使得絕大多數(shù)學(xué)生學(xué)習(xí)目的就是為了順利通過考試,而忽略了實踐能力的培養(yǎng),致使“高分低能”現(xiàn)象的出現(xiàn)。
2教改思路
“C++高級編程”包括理論講授、實驗和課程設(shè)計三個環(huán)節(jié),只有各環(huán)節(jié)緊密銜接、密切配合,才能保證該課程的教學(xué)效果。
2.1理論聯(lián)系實際,采用案例教學(xué)法吸引學(xué)生興趣
“C++高級編程”課程涉及知識面較廣,理論性和實踐性要求較強。在教學(xué)過程中,我通過設(shè)置具體案例,將學(xué)生學(xué)習(xí)內(nèi)容溶入到分析、討論、表達等教學(xué)過程中,讓學(xué)生在具體的問題環(huán)境中積極思考、主動探索,培養(yǎng)學(xué)生認識問題、分析問題和解決問題的能力。
(1) 以典型案例為例證,引入核心知識。結(jié)合教學(xué)過程中每個關(guān)鍵知識點設(shè)置一些典型程序,以典型程序為例,詳細講解相關(guān)的知識點。在此過程中,以教師講授為主,學(xué)生通過對典型程序代碼的研討學(xué)習(xí),加深對知識的理解和掌握[1]。
例如,在講解“網(wǎng)絡(luò)程序設(shè)計”這一章時,首先向?qū)W生展示目前網(wǎng)絡(luò)中最常見的即時聊天軟件,如騰訊QQ;其次演示具體的程序?qū)嵗?并講解文字、語音或視頻聊天程序的核心代碼,遇到核心知識點時,再深入講解相關(guān)的理論知識。
采用這種方法授課,可將復(fù)雜的問題簡單化、枯燥的知識趣味化、抽象的道理具體化,可以使學(xué)生產(chǎn)生濃厚的興趣,極大調(diào)動了學(xué)生研究學(xué)習(xí)代碼的積極性。
(2) 圍繞實際案例,展開討論。當課程進行到中期時,學(xué)生已具備了一定的編程經(jīng)驗,這時可以借助一個實際案例,組織學(xué)生開展辯論和研討。教師提出該案例,但不對案例作具體的解釋說明,讓學(xué)生在課堂上各自闡述自己的觀點、論據(jù),并相互提問和回答[2]。
例如,在“數(shù)據(jù)庫程序設(shè)計”一章的學(xué)習(xí)中,總結(jié)該章節(jié)的內(nèi)容后,就可以用一個學(xué)生做過的數(shù)據(jù)庫程序為實際案例,讓學(xué)生們討論該程序有何優(yōu)點、不足及如何改進。這種方法不僅可以鍛煉學(xué)生獨立發(fā)現(xiàn)問題、思考問題的能力,還有利于培養(yǎng)學(xué)生敏銳的應(yīng)變能力、思維能力和語言表達能力。
2.2加強實驗教學(xué),鍛煉學(xué)生動手能力
“C++高級編程”課程的實驗教學(xué)是整個教學(xué)過程中一個非常重要的環(huán)節(jié)。上機實踐不僅能提高學(xué)生靈活運用理論知識的能力,而且使學(xué)生在編程、上機操作、程序調(diào)試等方面受到嚴格的訓(xùn)練,有效地提高學(xué)生程序設(shè)計能力。
在開始學(xué)習(xí)“C++高級編程”課程之前,學(xué)生通過“C++程序設(shè)計”和“面向?qū)ο缶幊谭椒ā钡膶W(xué)習(xí),已具備一定的編程基礎(chǔ)。很多學(xué)生對程序設(shè)計的認識還只是停留在借助程序熟悉語法的程度上,對如何使程序高效、穩(wěn)定、可移植性強等方面沒有很理性的認識。如何培養(yǎng)學(xué)生養(yǎng)成良好的編程習(xí)慣,真正從專業(yè)角度進行軟件設(shè)計,是“C++高級編程”實驗教學(xué)需要認真思索和努力解決的問題。
首先,向?qū)W生介紹自己多年來的編程經(jīng)驗體會,推薦一些好的書籍和文獻資料供學(xué)生使用。其次,讓學(xué)生大量閱讀和仿寫優(yōu)秀的程序,通過學(xué)習(xí)和借鑒快速掌握這些優(yōu)秀程序員的經(jīng)驗和方法,少走彎路,養(yǎng)成良好的編程習(xí)慣。第三步,也是最關(guān)鍵的一步。在實驗過程中,始終嚴格檢查學(xué)生設(shè)計的程序,及時指出其在編程習(xí)慣上的錯誤。很多學(xué)生認為只要編寫的代碼能調(diào)試運行出結(jié)果就萬事大吉,這是錯誤的思想。作為教師要具有極大的耐心和持之以恒的耐力,及時指出并糾正學(xué)生編程中出現(xiàn)的問題,使學(xué)生養(yǎng)成良好、高效的編程習(xí)慣。
另外,為取得實驗教學(xué)的最佳效果,在實驗項目的設(shè)計上采取由淺入深,逐漸增加難度的辦法,引導(dǎo)學(xué)生逐步提升編程能力。開始時,多設(shè)計一些驗證性強的實驗,讓學(xué)生結(jié)合事例步驟仿寫程序。在中后期設(shè)計一些具有較強綜合性的實驗項目,鍛煉學(xué)生綜合運用知識的能力。教師開始時要詳細講解,分階段布置一些難度較大的作業(yè)由學(xué)生獨立完成,培養(yǎng)學(xué)生動手能力。
2.3通過綜合性實驗,培養(yǎng)學(xué)生獨立研究的能力
課程設(shè)計環(huán)節(jié)安排在整個教學(xué)過程的后期,目的是著重提高學(xué)生軟件分析、設(shè)計和開發(fā)的綜合能力,是培養(yǎng)學(xué)生綜合運用知識獨立研究的關(guān)鍵環(huán)節(jié)。
所謂綜合性實驗是指實驗內(nèi)容涉及本課程的綜合知識或相關(guān)課程知識的實驗。開設(shè)綜合性實驗的目的在于培養(yǎng)學(xué)生的綜合分析能力、實驗動手能力、數(shù)據(jù)處理能力及查閱中外文資料的能力[3]。為此,我布置了4個綜合性設(shè)計實驗項目。
(1) 多媒體軟件設(shè)計項目:設(shè)計開發(fā)一個多媒體播放器,能夠播放某種格式的音頻文件、視頻文件或動畫。要求該軟件具有選擇播放文件,播放、暫停、繼續(xù)播放、停止、音量控制等基本功能。
(2) 圖形圖像軟件設(shè)計項目:設(shè)計開發(fā)一個圖形圖像軟件,要求該軟件能夠畫出點、直線、圓等基本圖形,具有設(shè)定顏色、大小、位置等基本功能。
(3) 數(shù)據(jù)庫系統(tǒng)程序設(shè)計項目:設(shè)計開發(fā)一個后臺數(shù)據(jù)庫與一個前臺信息管理系統(tǒng),可以對數(shù)據(jù)庫中的記錄進行管理。要求該軟件具有瀏覽、修改、增加、刪除和查詢等基本功能。
(4) 網(wǎng)絡(luò)程序設(shè)計項目:設(shè)計開發(fā)一個客戶機/服務(wù)器模式的網(wǎng)絡(luò)軟件,要求能夠根據(jù)選擇建立客戶機端程序或服務(wù)器端程序,客戶機端和服務(wù)器端之間能夠相互交換數(shù)據(jù)。
實驗中教師采取個別講解、個別輔導(dǎo)、就普遍存在的問題演示相結(jié)合方法進行講授,有針對性地發(fā)現(xiàn)和解決每個學(xué)生存在的問題。在課程設(shè)計過程中始終堅持以下要求:①按照軟件工程思想使用面向?qū)ο蠹夹g(shù)進行程序設(shè)計。②注意養(yǎng)成良好的編程習(xí)慣和程序設(shè)計風格。③不斷提高程序調(diào)試技能。
要求學(xué)生提交的課程設(shè)計報告包含的內(nèi)容有:設(shè)計項目涉及的核心知識介紹、設(shè)計開發(fā)的步驟、程序功能介紹、核心源代碼、設(shè)計總結(jié)。
經(jīng)過4周共20學(xué)時的實踐課程學(xué)習(xí),學(xué)生按時提交了設(shè)計結(jié)果。其中40%的學(xué)生選擇了多媒體軟件設(shè)計項目,45%的學(xué)生選擇了數(shù)據(jù)庫系統(tǒng)程序設(shè)計項目,10%的學(xué)生選擇了網(wǎng)絡(luò)程序設(shè)計項目,5%的學(xué)生選擇了圖形圖像軟件設(shè)計項目。從設(shè)計過程、設(shè)計結(jié)果和課程設(shè)計報告綜合分析來看,10%的學(xué)生非常優(yōu)秀地完成了設(shè)計,30%的學(xué)生完成得較好,50%的學(xué)生基本達到了設(shè)計目標,而有10%的學(xué)生未完成或部分完成了設(shè)計。學(xué)生普遍反映通過實踐學(xué)習(xí)開闊了視野,提高了編程綜合能力,增長了信心,達到了預(yù)期的課程設(shè)計實踐目標。
3結(jié)語
2008年5月教育部對我校的本科教學(xué)評估中,“C++高級編程課程設(shè)計”作為綜合性、設(shè)計性實驗項目獲得專家的好評,該科目評審結(jié)果為優(yōu)秀,教學(xué)經(jīng)驗在全校教師中進行了推廣。
“C++高級編程”這門課程在教材、教學(xué)內(nèi)容、教學(xué)方法的選擇及實驗內(nèi)容的設(shè)計等方面都對任課教師提出了新要求。堅信通過不斷實踐改革“C++高級編程”教學(xué)內(nèi)容,改進教學(xué)方法,我們會培養(yǎng)出更多具有創(chuàng)新型、研究型、綜合素質(zhì)高的人才。
參考文獻:
[1] 黃英瓊. 談“計算機圖像處理”課程實例教學(xué)法[J]. 計算機教育,2007(3):24-26.
[2] 馬曉敏,姜遠明,胡光. 試論計算機案例教學(xué)的新思路[J]. 教學(xué)與管理,2007(4):133-134.
[3] 江靜.“數(shù)據(jù)結(jié)構(gòu)”課程綜合性實驗的實踐[J]. 實驗科學(xué)與技術(shù),2006(6):64-66.
Exploration and Practice on the Teaching Method in C++ Advanced Programming
MA Xiao-ting
(School of Information Engineering, Lanzhou University of Finance and Economics Lanzhou 730020, China)
篇4
關(guān)鍵詞:C語言;程序設(shè)計;教學(xué)改革;能力培養(yǎng);計算機輔助評測
中圖分類號:G642 文獻標識碼:B
1背景
隨著計算機技術(shù)的迅速發(fā)展和日益普及,越來越多的高校畢業(yè)生涌入計算機技術(shù)及應(yīng)用產(chǎn)業(yè),特別是軟件產(chǎn)業(yè)。這些人中不僅有計算機專業(yè)的畢業(yè)生,也有些非計算機專業(yè)的畢業(yè)生。在與這些非計算機專業(yè)學(xué)生的競爭中,計算機專業(yè)的學(xué)生并未表現(xiàn)出明顯的專業(yè)優(yōu)勢。造成這一現(xiàn)象的一個重要原因就是,計算機專業(yè)學(xué)生所掌握的基礎(chǔ)專業(yè)知識和能力,缺乏專業(yè)性的深度和廣度,計算機專業(yè)學(xué)生所學(xué)的一些專業(yè)課程和專業(yè)基礎(chǔ)課程沒有為學(xué)生提供足夠的專業(yè)知識和訓(xùn)練。課程改革前的C語言課程就是這樣一門在專業(yè)性方面有待加強的專業(yè)基礎(chǔ)課程。
程序設(shè)計是計算機專業(yè)學(xué)生的基礎(chǔ)課程,程序設(shè)計能力是計算機專業(yè)人員的重要專業(yè)基礎(chǔ)能力,C語言是目前計算機專業(yè)工作者的第一語言。隨著計算機技術(shù)和知識的普及,越來越多的非計算機專業(yè)學(xué)生也在這一層次和深度上掌握了C語言知識和運用能力。與此同時,計算機專業(yè)在C語言的教學(xué)方面依然采用原來的教學(xué)內(nèi)容和教學(xué)方法,在程序設(shè)計知識的深度和廣度以及C語言的運用方面沒有大的進展,導(dǎo)致計算機專業(yè)學(xué)生與非計算機專業(yè)學(xué)生之間在這方面的專業(yè)能力差距逐漸縮小甚至消失。計算機專業(yè)學(xué)生所完成的程序在程序結(jié)構(gòu)、程序的可靠性、可維護性、可擴展性、程序的時空效率、以及程序的風格和可讀性等方面與非計算機專業(yè)學(xué)生的程序差別不大。
造成上述這種情況的原因,從教學(xué)方面看主要有三點:一是目前“C語言程序設(shè)計”課程的教學(xué)內(nèi)容偏窄偏淺;二是教學(xué)方法不適當;三是實驗考核手段落后。從學(xué)生學(xué)習(xí)的角度看,也存在對學(xué)習(xí)內(nèi)容和方法不適應(yīng)的問題。大多數(shù)的學(xué)生從小學(xué)到中學(xué),已經(jīng)適應(yīng)了記概念、背知識點、應(yīng)付書面考試的學(xué)習(xí)模式,對于靈活運用所學(xué)知識去分析解決問題,缺乏必要的訓(xùn)練。當程序設(shè)計教學(xué)仍然是以程序設(shè)計語言為主、以概念為主、以書面教學(xué)為主時,就更會強化學(xué)生原有的思維模式和學(xué)習(xí)方法,把這門課程當成以概念和知識點學(xué)習(xí)為主的理論型課程,忽視了對實際能力的培養(yǎng)。
2指導(dǎo)思想
C語言課程是培養(yǎng)學(xué)生專業(yè)能力的重要課程,其教學(xué)效果對學(xué)生今后其他專業(yè)課程的學(xué)習(xí)以及畢業(yè)后的專業(yè)工作前景都有重要的影響。為解決C語言課程在程序設(shè)計能力培養(yǎng)方面的不足,需要根據(jù)當前學(xué)生的特點,在課程教學(xué)目標、課程指導(dǎo)思想、課程內(nèi)容設(shè)置和組織、練習(xí)和考試的方法及重點等方面進行調(diào)整和改革,使學(xué)生在掌握運用C語言進行程序設(shè)計的同時,在分析問題和解決問題的能力上有顯著的進步,在程序設(shè)計的各個環(huán)節(jié)養(yǎng)成良好的習(xí)慣,為后續(xù)的專業(yè)課程學(xué)習(xí)提供必要的程序設(shè)計知識和能力,為今后深入掌握專業(yè)化的程序設(shè)計能力打下良好的基礎(chǔ)。
對于計算機專業(yè)的學(xué)生來說,C語言課程的教學(xué)目標不僅僅是使學(xué)生了解和掌握C語言本身,而且應(yīng)該使學(xué)生深入掌握程序設(shè)計的思路和方法。C語言課程應(yīng)該是學(xué)習(xí)使用C語言進行程序設(shè)計的課程,而不是僅僅學(xué)習(xí)C語言本身的課程。程序設(shè)計語言與程序設(shè)計是互為表里的。程序設(shè)計的作用是表達程序設(shè)計者的思想,是按照計算機所能理解和執(zhí)行的方式描述需要讓計算機完成的工作,而程序設(shè)計語言則是表達這種思想的工具。在程序設(shè)計工作中,首先需要明確的是所要表達的思想到底是什么,也就是到底需要計算機按照什么樣的步驟來執(zhí)行計算過程,產(chǎn)生什么樣的計算結(jié)果。至于采用什么樣的語言,以及這種語言的細節(jié),則是第二位的。因此,對于沒有程序設(shè)計經(jīng)驗的學(xué)生的教學(xué),必須把程序設(shè)計的思想和方法放在中心的位置,而把程序設(shè)計語言作為講述程序設(shè)計思想和方法的工具。
3課程的內(nèi)容和安排
為使學(xué)生通過C語言的學(xué)習(xí)掌握程序設(shè)計的能力,養(yǎng)成良好的程序設(shè)計習(xí)慣,并在分析問題和解決問題的能力上得到培養(yǎng)和鍛煉,需要在課程的教學(xué)內(nèi)容和側(cè)重點上進行必要的調(diào)整,在教學(xué)方法上進行必要的改進,在實驗和考核的手段上進行必要的革新,在教學(xué)過程的組織和安排上與其他相關(guān)課程更好地協(xié)調(diào)。
首先,需要把教學(xué)的重點從C語言本身轉(zhuǎn)移到程序設(shè)計的思路和方法、以及運用C語言進行程序設(shè)計上來,把講授語言的概念轉(zhuǎn)變?yōu)橹v授語言運用,把對概念的講授由抽象的分析和講解轉(zhuǎn)變?yōu)橥ㄟ^實例和經(jīng)驗對概念的學(xué)習(xí)。教學(xué)內(nèi)容應(yīng)當圍繞程序設(shè)計的思想和方法進行組織,把C語言作為講解程序設(shè)計的工具,在講解程序設(shè)計的思想、方法和步驟的過程中,根據(jù)程序描述的需要,本著由簡到繁,由淺入深的原則,逐步講解C語言中的知識點,特別是C語言要素在程序設(shè)計中的運用。
其次,“C語言程序設(shè)計”課程是一門實踐性和應(yīng)用性很強的課程,因此這門課程在教學(xué)方法上必然要不同于其他各種理論性課程。它不是以概念的學(xué)習(xí)為中心,而是以概念運用能力的培養(yǎng)為中心。對于概念和基本知識的掌握,更多地不是通過理論分析,而是通過對實例的分析和在實踐中的運用。對練習(xí)題的分析、講解、討論以及在練習(xí)現(xiàn)場的答疑都是教學(xué)中的要點。對一些復(fù)雜概念的引入和探討只有在學(xué)生具有了相當?shù)膶嵺`經(jīng)驗時進行,才能使學(xué)生真正地接受。
第三,在教學(xué)安排方面要充分考慮C語言的基礎(chǔ)性、應(yīng)用性、專業(yè)性的特點,以及該課程與其他課程的關(guān)聯(lián)和配合。復(fù)雜的程序設(shè)計知識需要有“數(shù)據(jù)結(jié)構(gòu)”等先修課程作為基礎(chǔ),同時,基本的C語言知識和程序閱讀和理解能力,也是其他一些專業(yè)課程,包括“數(shù)據(jù)結(jié)構(gòu)”等課程在內(nèi)的基礎(chǔ)。為了適應(yīng)學(xué)生知識水平和學(xué)習(xí)能力的現(xiàn)狀,并考慮與其他課程的銜接和協(xié)調(diào),我們把“C語言程序設(shè)計”課程的內(nèi)容分為兩個部分,分兩個階段講授。第一個階段主要針對沒有程序設(shè)計經(jīng)驗的初學(xué)者講授程序設(shè)計的基本方法和C語言的入門知識,第二階段主要是在第一階段的基礎(chǔ)上進一步提高學(xué)生的程序設(shè)計能力,培養(yǎng)學(xué)生專業(yè)化程序設(shè)計能力的基礎(chǔ),以及對C語言的深入理解和把握。
第一階段課程教學(xué)的重點內(nèi)容是程序設(shè)計的基本思路、步驟和方法,以及簡單的程序設(shè)計技術(shù)和C語言的運用,目的是培養(yǎng)學(xué)生程序設(shè)計的基本能力和初步培養(yǎng)學(xué)生良好的程序設(shè)計習(xí)慣,使他們知道如何著手分析一個問題,如何把解決問題的過程分解成一個個緊密銜接的步驟,如何用C語言準確地描述這些步驟,以及當程序出現(xiàn)錯誤時如何迅速準確地發(fā)現(xiàn)問題的原因,找到解決的方法。在這一階段的教學(xué)中,在講授方法上應(yīng)以例題分析和討論為主,避免從概念到概念的論述,特別注意避免過于深奧的概念的引入和討論,以免學(xué)生在未掌握程序設(shè)計基本方法和思考習(xí)慣的情況下把注意力不適當?shù)赝度雽Ω拍罾斫獾倪^分追求。對于概念和理論,應(yīng)該只對必要的內(nèi)容做適當?shù)慕榻B,更多地把學(xué)生的注意力引入到對這些概念的運用中。應(yīng)該更多地講授使用C語言進行程序設(shè)計的實例,通過實例講授分析問題的方法以及程序設(shè)計的基本思路、過程和步驟。對于C語言本身,主要應(yīng)介紹各種基本語言要素和使用方法,介紹簡單程序的編寫、調(diào)試和運行過程和操作步驟,講授一些基本的算法、數(shù)據(jù)結(jié)構(gòu)的C語言實現(xiàn)方法和特點。對于C語言的語法和語義,應(yīng)盡量通過例題的示范進行概括性的介紹。對于其中的細節(jié),則應(yīng)留給學(xué)生通過上機實習(xí),自己逐步深入了解和掌握。這一階段的教學(xué)目標是使學(xué)生能閱讀和理解一些較為復(fù)雜的程序,并能在較短的時間內(nèi)獨立完成具有初等難度、長度約幾十行的程序的設(shè)計、實現(xiàn)和調(diào)試。
第二階段的教學(xué)主要集中在對程序設(shè)計能力、特別是專業(yè)程序設(shè)計能力基礎(chǔ)的培養(yǎng)上。在學(xué)生學(xué)習(xí)了“數(shù)據(jù)結(jié)構(gòu)”及其他相關(guān)的課程之后,可以進一步引入專業(yè)化的程序設(shè)計思想,介紹專業(yè)化的程序設(shè)計應(yīng)當考慮的一些問題,對比不同的解題思路實現(xiàn)的難易程度,對比不同的算法和實現(xiàn)方法在時空效率方面的優(yōu)劣,對比不同的程序設(shè)計風格對程序的可讀性、可維護性、可擴展性、可移植性等方面的影響,講授程序質(zhì)量的判斷標準等。在這一階段也可以引導(dǎo)學(xué)生進一步深入理解C語言中的一些重要概念和C語言的特點,使學(xué)生在C語言運用的技巧方面得到鍛煉,在程序設(shè)計的水平方面得到提高。這一階段的教學(xué)內(nèi)容包括對C語言屬性、特點和重要概念的深入講解、對C語言中難點的深入分析,對程序設(shè)計思路、過程和步驟的進一步系統(tǒng)化,以及信息領(lǐng)域常用算法的實現(xiàn),程序和軟硬件系統(tǒng)的關(guān)系,程序的調(diào)試和測試,程序的時空效率和優(yōu)化,程序設(shè)計的風格,中型程序的結(jié)構(gòu)和組織等。在掌握了這部分內(nèi)容之后,學(xué)生應(yīng)該能夠獨立完成較為復(fù)雜的,長度在百行以上的程序的設(shè)計、實現(xiàn)和調(diào)試,知道如何充分測試一個程序,以保證其運行的可靠,知道如何正確地組織一個較大的程序,以保證其可維護性和可擴展性,知道如何優(yōu)化一個程序,以滿足對時空效率的要求。在這一階段的教學(xué)過程中,在教學(xué)方法上可以更多地采用啟發(fā)式的方法,可以拿出一定的時間展開課堂討論和習(xí)題分析,引導(dǎo)學(xué)生主動地學(xué)習(xí)。同時,在練習(xí)題方面也可以適當提供一些難題,以便為學(xué)有余力的學(xué)生提供更大的學(xué)習(xí)空間。
4練習(xí)和考試
程序設(shè)計課程是一門實踐性很強的專業(yè)技術(shù)課程。只有加強實踐環(huán)節(jié),讓學(xué)生在失敗的和成功的實踐中通過自己的經(jīng)驗積累才能切實掌握實際知識的運用能力。在課程教學(xué)的過程中不僅要重視理論教學(xué),重視教學(xué)內(nèi)容的設(shè)置,也要重視實踐環(huán)節(jié)的設(shè)置,重視為學(xué)生提供具有及時監(jiān)控和反饋環(huán)節(jié)的實踐環(huán)境。在課程的考核環(huán)節(jié),應(yīng)該以檢驗學(xué)生的實際程序設(shè)計能力為主,關(guān)鍵概念為輔。對于語言的語法細節(jié)和使用方式,則不應(yīng)單獨作為考核的題目,而應(yīng)該與對程序設(shè)計能力的考核有機地融和在一起,以改變學(xué)生讀書、背概念、應(yīng)付考試的學(xué)習(xí)模式。
程序設(shè)計題目和源程序答案具有高度的靈活性和差異性,難以進行常規(guī)的標準化評測。受評測方式的制約,傳統(tǒng)程序設(shè)計語言的練習(xí)及考試一般以標準化的筆試題為主,偏重于考察程序設(shè)計語言的基本概念和語法細節(jié),而程序設(shè)計題目所占比重較小。這種練習(xí)及考試方式易于導(dǎo)致學(xué)生忽視編程實踐能力和理論聯(lián)系實際能力的培養(yǎng)。為此,需要在練習(xí)和考試中改變傳統(tǒng)的方法,要求學(xué)生以實際程序設(shè)計為主進行練習(xí),通過實際程序設(shè)計對學(xué)生的學(xué)習(xí)效果進行考核。這種練習(xí)和考試的方式改變了練習(xí)的目的,使練習(xí)由過去簡單地復(fù)習(xí)課堂的講授內(nèi)容改變?yōu)橛蓪W(xué)生通過實踐環(huán)節(jié)進行自學(xué)。這樣,課堂講授就可以集中對關(guān)鍵內(nèi)容上,而不必在語言本身的細節(jié)上花費過多的時間。
5技術(shù)支持手段
為采用“以實際程序設(shè)計為主進行練習(xí),通過實際程序設(shè)計進行考核”的實踐及考試方式,需要為學(xué)生在編程實踐中提供具有及時監(jiān)控和反饋功能的實踐環(huán)境,并在課程作業(yè)方面增加程序設(shè)計題目的比例。這樣,不但可以提高練習(xí)和考試的強度,使得習(xí)題更加接近實際程序設(shè)計的要求,而且也更能檢驗教學(xué)效果和學(xué)生的實際程序設(shè)計能力。學(xué)生的答題工作全部在計算機上進行,提交的答案必須是不存在任何語法和邏輯錯誤、能解決一個完整問題的源程序。學(xué)生在學(xué)習(xí)階段必須重視實際編程能力,提高對代碼質(zhì)量和編程風格的要求,養(yǎng)成良好的編程習(xí)慣。同時,這也可以改變以往基于經(jīng)驗和直觀感覺的人工閱卷方式,提高閱卷的效率,減輕教師的閱卷負擔,保證成績評定的準確和公正。而且,在C語言這樣一門具有很強實踐性的信息技術(shù)專業(yè)基礎(chǔ)課程的實踐環(huán)節(jié)采用基于信息技術(shù)的自動化支持手段,其本身也是對學(xué)生的一種示范和啟發(fā)。
在自動化的評測系統(tǒng)中,最重要的問題是對程序設(shè)計題目的評測方式和標準。對程序的評價既有內(nèi)在屬性的指標,如功能、性能、正確性、可靠性等,也有外在屬性的指標,如程序的結(jié)構(gòu)、可讀性、風格等。根據(jù)本課程的教學(xué)要求,程序評測系統(tǒng)主要采用內(nèi)在屬性指標,學(xué)生所完成的程序必須通過編譯,產(chǎn)生可執(zhí)行代碼文件,在計算機上運行,根據(jù)題目的要求讀入輸入數(shù)據(jù),進行正確的運算,產(chǎn)生正確的輸出數(shù)據(jù),才能得分。這種方式可以檢查學(xué)生程序語法和基本功能的正確性。對程序的功能完整性和性能的評測通過設(shè)計具有不同難度的輸入數(shù)據(jù)來完成。這樣,就可以對學(xué)生的程序在問題分析、數(shù)據(jù)結(jié)構(gòu)和算法的選擇、實現(xiàn)的正確性和效率等多個方面產(chǎn)生適當?shù)膮^(qū)分度。同時,為了全面提高學(xué)生專業(yè)化程序設(shè)計的能力,也可適當引入一些外在屬性的指標以及相應(yīng)的評測手段,以檢驗學(xué)生程序在程序的結(jié)構(gòu)、可讀性、風格等方面的水平。
根據(jù)這些原則,我們設(shè)計和實現(xiàn)了一個基于Web的程序設(shè)計語言練習(xí)及考試評測系統(tǒng),并開通了C語言課程教學(xué)網(wǎng)站。該練習(xí)及考試評測系統(tǒng)由配置工具、命題及題庫管理工具、Web應(yīng)用服務(wù)器、程序題評測服務(wù)器、考試控制工具、成績統(tǒng)計工具等組成,具有很強的可配置性和可擴展性,能夠適應(yīng)不同的練習(xí)和考試要求。為防范考試中可能的作弊行為,系統(tǒng)提供了實時網(wǎng)絡(luò)監(jiān)測工具和程序源文件及可執(zhí)行碼的功能;在一場考試中可以使用具有相同難度的多份試卷,以避免相鄰座位學(xué)生之間的交流和抄襲。練習(xí)及考試評測系統(tǒng)既支持程序設(shè)計類型的試題,又支持單選、多選、填空等標準化試題。為適應(yīng)練習(xí)和考試的不同要求,對所提交的答案可以分別設(shè)置為立即評測和定時評測。這樣,在練習(xí)過程中學(xué)生就可以及時得知自己的答案是否正確,并及時改正錯誤。練習(xí)及考試評測系統(tǒng)可以自動完成對學(xué)生成績的評測和統(tǒng)計,并根據(jù)需要生成成績表。這樣,不僅可以使教師及時準確地掌握學(xué)生的成績,發(fā)現(xiàn)存在的問題,而且可以大大減輕教師的工作負擔。
篇5
一、如何應(yīng)對全國計算機二級等級考試的公共基礎(chǔ)知識大綱
計算機二級考試大綱中關(guān)于基礎(chǔ)知識的有數(shù)據(jù)結(jié)構(gòu)與算法、程序設(shè)計基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫設(shè)計基礎(chǔ)四部分,下面筆者分別介紹一下這些部分的學(xué)習(xí)重點和方法:
1.數(shù)據(jù)結(jié)構(gòu)與算法。
本章內(nèi)容在計算機專業(yè)基礎(chǔ)課中相對較復(fù)雜,考生對本章的內(nèi)容必須理解,死記硬背是無效的。在二級等級考試中本章考核的重點和難點為二叉樹的相關(guān)知識,其考核的形式主要為二叉樹的遍歷問題(如給圖求遍歷序列,給前序、中序遍歷求后序遍歷等)、二叉樹的結(jié)點問題(如給出一些條件然后求葉子結(jié)點個數(shù))、排序和查找。排序主要以計算時間復(fù)雜度的形式考核,查找主要以計算最佳、最壞比較次數(shù)的方式考核,其余的知識點主要以概念的形式考核,考生需要仔細看書并理解。
2.程序設(shè)計基礎(chǔ)與軟件工程基礎(chǔ)。
這兩章以概述的形式簡介了規(guī)范化開發(fā)軟件的方法。與數(shù)據(jù)結(jié)構(gòu)不同,這兩章內(nèi)容主要是記憶性的知識點。程序設(shè)計基礎(chǔ)這章在原大綱的基礎(chǔ)上添加了面向?qū)ο蟪绦蛟O(shè)計的內(nèi)容,考生對這部分知識了解即可;軟件工程基礎(chǔ)這章主要考核結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計方法(即SA及SD,約占50%)、軟件測試(約占20%),考生需熟記相關(guān)的概念及規(guī)則。
3.數(shù)據(jù)庫設(shè)計基礎(chǔ)。
數(shù)據(jù)庫是當前軟件處理的信息核心,目前大部分軟件是基于數(shù)據(jù)庫的,因此,考生學(xué)習(xí)數(shù)據(jù)庫的知識對程序開發(fā)是大有裨益的。本章主要的考點是關(guān)系模型、關(guān)系代數(shù)及數(shù)據(jù)庫系統(tǒng)的基本概念,考生對其余的知識點了解即可。對于數(shù)據(jù)庫的設(shè)計和管理,考生結(jié)合軟件工程來看,會發(fā)現(xiàn)這兩者有很多相似之處。本章內(nèi)容除了關(guān)系代數(shù)會考一些簡單的計算問題外,其余的都以概念題的形式出現(xiàn),考生需要有針對性地進行復(fù)習(xí)。
二、二級公共基礎(chǔ)知識的特點
大綱對全國計算機二級等級考試作了重大的調(diào)整:在取消了過時的考試科目和調(diào)整了一些科目的考試之外,新增加了目前比較流行的計算機語言C++、Java和Access數(shù)據(jù)庫。公共基礎(chǔ)知識的考核方式為筆試,與C語言程序設(shè)計、C++語言程序設(shè)計、Java語言程序設(shè)計、Visual Basic語言程序設(shè)計、Visual FoxPro數(shù)據(jù)庫程序設(shè)計或Access數(shù)據(jù)庫程序設(shè)計的筆試部分合為一張試卷,共有10道選擇題和5道填空題,占全國計算機二級等級考試筆試總分的30%。公共基礎(chǔ)知識部分的試題具有如下特點:
1.涉及面廣,但難度小。
全國計算機二級等級考試中有關(guān)公共基礎(chǔ)知識部分涉及的內(nèi)容,從整體上分析,考核內(nèi)容的難度不大,考點也相對比較集中。
2.考核重點為基本概念、基本方法和基本運算。
考試中涉及的題目都是基本概念、基本方法和基本運算,考核以概念和認識性內(nèi)容為主,理解性、應(yīng)用性內(nèi)容極少。
3.考核重點是數(shù)據(jù)結(jié)構(gòu)和算法。
數(shù)據(jù)結(jié)構(gòu)和算法、程序設(shè)計基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫設(shè)計基礎(chǔ)部分各占公共基礎(chǔ)知識部分題目的百分比分別為:50%、12.5%、18.75%、18.75%,可見在全國計算機二級考試中,數(shù)據(jù)結(jié)構(gòu)和算法是重點。
三、學(xué)習(xí)方法
1.考生的復(fù)習(xí)必須遵守“80/20的原則”。
全國計算機二級等級考試的公共基礎(chǔ)知識部分覆蓋面廣,它至少涵蓋了計算機應(yīng)用專業(yè)的四門核心課程:數(shù)據(jù)結(jié)構(gòu)與算法、程序設(shè)計基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫設(shè)計基礎(chǔ)。事實上,這些課程本身的涉及面就很廣,難度系數(shù)較大。所以,考生應(yīng)把80%的時間用在20%的重點知識點上,爭取用20%的重點知識點來答對80%的考題,這是考生復(fù)習(xí)全國計算機二級等級考試的公共知識部分的總體思路。
2.復(fù)習(xí)的關(guān)鍵是考生必須準確判斷和掌握常見的考點。
考生必須準確判斷和掌握常見考點,例如:算法部分主要考查算法的概念及算法的復(fù)雜度,數(shù)據(jù)結(jié)構(gòu)部分主要考查最基本的概念、最典型的數(shù)據(jù)結(jié)構(gòu)和最常見的操作,程序設(shè)計部分主要考查程序設(shè)計風格的基本要求、結(jié)構(gòu)化程序設(shè)計的最基本知識和面向?qū)ο蟪绦蛟O(shè)計的最常見概念,軟件工程基礎(chǔ)部分主要考查軟件工程的基本概念和軟件生命周期的各個階段的基礎(chǔ)知識,數(shù)據(jù)庫設(shè)計基礎(chǔ)部分主要考查數(shù)據(jù)庫基本概念、數(shù)據(jù)模型、關(guān)系代數(shù)基礎(chǔ)知識、數(shù)據(jù)庫設(shè)計方法和步驟??忌鷮ΤR娍键c的準確把握能避免盲目地復(fù)習(xí),從而輕松面對考試。
3.基礎(chǔ)知識的掌握方法。
很多考生在復(fù)習(xí)公共基礎(chǔ)部分時都會發(fā)現(xiàn)內(nèi)容零散,知識點之間的跳躍性大,似乎沒有連續(xù)性。所以掌握起來很困難,似懂非懂,對知識點處于模糊認知狀態(tài)。因此,考生必須在準確把握知識點的基礎(chǔ)上,學(xué)會把“知識點”連成“知識鏈”,并把“知識鏈”織成“知識網(wǎng)”。
4.做題技巧。
考生切勿采取題海戰(zhàn)術(shù)。對全國計算機二級等級考試公共知識部分,學(xué)生沒有必要做大量的題目,更不能為了應(yīng)付考試記一大堆錯誤答案。
5.非“靈活”地掌握知識點。
考生在掌握知識點時最好經(jīng)歷一個“先死后活、熟能生巧”的過程。全國計算機二級等級考試要求的知識點都是最基本的、最簡單的,真正需要“靈活”掌握的考點極少。很多考生在考試過程中發(fā)現(xiàn),該部分的題目“會做就是不懂”。所以筆者建議考生在復(fù)習(xí)過程中不要急于“靈活”,其實考生只要掌握基本的知識點,自然就“靈活”了。
6.答題技巧。
考生在遇到難題時要考慮成本和效果的關(guān)系,公共知識部分僅占30分,題目相對簡單。因此,考生在答題過程中,對這部分內(nèi)容要爭取速度快、準確度高。在全國計算機二級等級考試中常常出現(xiàn)這樣的情景:有些考生為了一道小題花費很長時間仍沒有找到任何線索。一般來說,公共知識部分的考題難度不大,沒有一道題目需要考慮很長時間。所以,考生如果做一道公共基礎(chǔ)題在兩分鐘內(nèi)沒有任何思路時,就應(yīng)該跳過此題,把時間留給后面的題目。
參考文獻:
[1]全國計算機等級考試二級教程――公共基礎(chǔ).2008.
篇6
關(guān)鍵詞:C語言;教學(xué)效果;激發(fā)興趣;注重實踐;多媒體教學(xué)
中圖分類號:G420文獻標識碼:A文章編號:16727800(2011)012020002
作者簡介:宋美英(1982-),女,山西呂梁人,碩士,呂梁學(xué)院離石師范分校助理講師,研究方向為計算機應(yīng)用技術(shù)。1引導(dǎo)學(xué)生正確定位課程性質(zhì),明確學(xué)習(xí)目標
1.1明確學(xué)習(xí)本課程的重要性
C語言程序設(shè)計作為一門程序設(shè)計入門課程,對培養(yǎng)學(xué)生的算法和程序的設(shè)計能力、形成良好的程序設(shè)計風格起到基礎(chǔ)性和先導(dǎo)性的重要作用。通過學(xué)習(xí),可以使學(xué)生掌握程序設(shè)計的基本思想,具備通過程序設(shè)計解決實際問題的基本能力。同時,也是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、C++程序設(shè)計等課程的先修課程,在教學(xué)培養(yǎng)方案中起到承上啟下的作用。
1.2了解C語言的用途
C語言是目前世界上最為流行的計算機高級程序設(shè)計語言之一,它的應(yīng)用領(lǐng)域非常廣泛,既適合于編寫應(yīng)用軟件,又特別適合于編寫系統(tǒng)軟件。目前,C語言在其原有應(yīng)用領(lǐng)域的基礎(chǔ)上,又拓展了支持大型數(shù)據(jù)庫開發(fā)和Internet及嵌入式系統(tǒng)等新的應(yīng)用領(lǐng)域。C語言廣泛應(yīng)用領(lǐng)域和極強的生命力,使其受到廣大計算機工作者的肯定和歡迎。
有一種錯誤的認識,認為C語言就是DOS下的編程,這種錯誤認識直接導(dǎo)致學(xué)生學(xué)習(xí)C語言的興趣遠不及其他面向?qū)ο蟮某绦蛟O(shè)計語言,如Visual FoxPro、Visual Basic等。針對這種情況,可以在正式授課之前,通過向?qū)W生展示歷屆學(xué)生的優(yōu)秀作品,來展示C語言的數(shù)據(jù)處理、圖形和動畫等功能,使學(xué)生對C語言有一個正確的認識,明確學(xué)習(xí)目標。
2精選實例,激發(fā)學(xué)生的學(xué)習(xí)興趣
2.1選取的實例應(yīng)是科學(xué)性與趣味性的高度統(tǒng)一
選取的實例,應(yīng)既能涵蓋知識點又具有趣味性。例如,在講授算術(shù)運算符時,可以設(shè)計“計算器”問題;在講授選擇結(jié)構(gòu)時,可以設(shè)計“判定閏年”問題、“學(xué)生成績管理系統(tǒng)的菜單界面設(shè)計”問題;在講授循環(huán)結(jié)構(gòu)時,可以設(shè)計“水仙花數(shù)”、“完全數(shù)”、“素數(shù)”等數(shù)學(xué)數(shù)據(jù)問題,也可以引入中國古代數(shù)學(xué)家張丘建在他的《算經(jīng)》中提出的著名的“百錢買百雞”問題和“驗證歌德巴赫猜想”問題(100以內(nèi)任何一個大于6的偶數(shù)都可以表示成兩個素數(shù)之和);在講授數(shù)組時,可以設(shè)計“楊輝三角形”、“歌手大獎賽”問題;在講授循環(huán)鏈表時,可以引入“約瑟夫問題”等。這些具有趣味性的實例,可以有效激發(fā)學(xué)生的學(xué)習(xí)興趣,提高教學(xué)效果。
2.2不同技能培養(yǎng)階段,應(yīng)循序漸近地選取難易適中的實例
學(xué)生們經(jīng)常會對看起來稍微有些復(fù)雜的程序望而卻步,往往不是因為難度太大,而是感覺離成功的距離還很遠。如果選取過于復(fù)雜的實例,反而會導(dǎo)致學(xué)生的自信心受到打擊,降低學(xué)習(xí)興趣。例如,在講授數(shù)組時,可以設(shè)計“歌手大獎賽”問題:10個評委為選手打分,為了遵循公平公正的比賽原則,記分方式為去掉一個最高分和一個最低分,中間8個評分的平均值為該選手的最后得分。教學(xué)時,可以引導(dǎo)學(xué)生循序漸近地將該實例分為以下幾個階段來完成:①輸入10個評委的評分;②查找最高分和最低分;③最高分與最低分不計入總分,計算其余8個評分的平均分(該階段實現(xiàn)時,需引導(dǎo)學(xué)生注意有多個最高分或最低分的情況)。這樣,把大目標分解成若干個小目標,分階段去實現(xiàn),讓學(xué)生品嘗階段性成功的喜悅,增強學(xué)生攀登知識高峰的信心和勇氣。
3加強實踐環(huán)節(jié),突出動手能力的培養(yǎng)
3.1分組實驗,促進各個層次學(xué)生的全面提高
課程進行一段時間后,教師已經(jīng)對學(xué)生有了一定的了解,此時可根據(jù)學(xué)生的知識掌握情況和編程能力,將學(xué)生進行搭配分組。在平時的實踐課上進行需獨立完成的小規(guī)模程序時,可以通過互相討論有效促進各個層次學(xué)生的全面提高。在課程末期進行較大規(guī)模程序的課程設(shè)計時,以小組為單位,自行分工,合作完成。這個綜合實踐作業(yè)不僅可以培養(yǎng)學(xué)生使用所學(xué)知識解決實際問題的能力,而且可以培養(yǎng)學(xué)生的創(chuàng)新意識、團隊合作精神和集體觀念。
3.2將實踐環(huán)節(jié)記入期末成績,進行課程考核方式的改革
傳統(tǒng)的考試多以C語言復(fù)雜多變的語法為難點,測試學(xué)生對基本概念等理論知識的掌握程度。在題型上普遍采用選擇、判斷、填空、簡答等形式,涉及編程的部分所占比例比較小。這種考核方式使不少學(xué)生為應(yīng)付考試而死記硬背概念,完全偏離了理論與實踐相結(jié)合的教學(xué)準則。因此,結(jié)合學(xué)生在平時實踐課和學(xué)期末的課程設(shè)計兩方面的編程情況作為平時成績,與期末考試卷面成績按一定比例折算,作為學(xué)生的期末綜合成績較為妥當。一方面,更有利于全面衡量學(xué)生的學(xué)習(xí)情況,另一方面,也可以提高學(xué)生對實踐課的重視程度,有利于開展教學(xué)工作,全面提高教學(xué)質(zhì)量。
4充分利用多媒體教學(xué)手段,提高教學(xué)效率
傳統(tǒng)的黑板加粉筆的教學(xué)手段,往往由于板書、繪圖等占用很大比例的課堂時間,學(xué)生課堂消化知識的時間較少,課外作業(yè)負擔重。而在講授上機步驟和程序調(diào)試方法等內(nèi)容時,傳統(tǒng)教學(xué)方式也暴露出了明顯的弊端。
提高教學(xué)效率是多媒體教學(xué)手段的顯著優(yōu)勢。將多媒體教學(xué)手段與傳統(tǒng)教學(xué)手段有機結(jié)合,不僅可以增加學(xué)生的課堂討論與練習(xí)時間,而且可以使抽象的知識具體化、形象化,圖文并茂地將枯燥的程序設(shè)計知識變得形象生動,更有助于學(xué)生對知識的理解。例如,在講授選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的流程、函數(shù)的遞歸調(diào)用和嵌套調(diào)用時,利用生動的畫面演示執(zhí)行的過程,可以達到事半功倍的教學(xué)效果。
5結(jié)束語
只要在課程初期對學(xué)生加以正確的引導(dǎo),在教學(xué)過程中注重培養(yǎng)學(xué)習(xí)興趣,加強實踐環(huán)節(jié)的培養(yǎng),進行教學(xué)手段和課程考核方式的改革,就一定能夠充分調(diào)動學(xué)生的學(xué)習(xí)積極性,使學(xué)生真正能夠通過所學(xué)知識解決實際生活中的問題,開創(chuàng)C語言程序設(shè)計教學(xué)的新局面。參考文獻:
[1]董漢麗.C語言程序設(shè)計(第五版)[M].大連:大連理工大學(xué)出版社,2009.
[2]董志民,崔建平,肖利娜.《C語言程序設(shè)計》教學(xué)改革探索與實踐[J].福建電腦,2007(5).
(責任編輯:周曉輝) Research on Improve the C Programming Education Effect
篇7
一. 目前團委網(wǎng)站現(xiàn)狀。
團委工作在網(wǎng)站的開展不斷深化,現(xiàn)有的功能應(yīng)用已不能滿足需求。網(wǎng)站目前存在重多問題,局限了網(wǎng)站的發(fā)展。企業(yè)對信息安全的重視,暴露出網(wǎng)站安全管理上的設(shè)計缺陷。鑒于存在的問題,將對網(wǎng)站整體改版,打破現(xiàn)有內(nèi)容布局,完善后臺管理,制定網(wǎng)站發(fā)展規(guī)劃。
目前網(wǎng)站存在的問題:
1. 功能設(shè)計不能滿足需要。
2. 用戶管理混亂,帶來信息安全隱患。
3. 頁面布局不合理,信息分類管理雜亂。
4. 頁面設(shè)計不美觀。
二. 網(wǎng)站改版項目計劃。
〔1〕 項目資金。
****元
〔2〕 費用明細。
1. 網(wǎng)站設(shè)計支出。
2. 服務(wù)器租用與維護。
3. 網(wǎng)站推廣活動。
〔3〕 人員組成與分工。
***:負責網(wǎng)站改版所有事務(wù),制定網(wǎng)站發(fā)展規(guī)劃,協(xié)調(diào)各方工作。
***:負責網(wǎng)站后臺程序設(shè)計,技術(shù)維護。
***: 負責網(wǎng)站美工制作,視覺設(shè)計。
(4) 網(wǎng)站改版日程。
2010年2月中旬完成整體設(shè)計;
2010年3月正式投入使用。
三. 網(wǎng)站改版項目規(guī)劃。
設(shè)計原則:
以界面的簡潔化,功能模塊的靈活變通性為原則,建立適合自身需求的網(wǎng)絡(luò)平臺,提供廣泛的涵蓋用戶多種需求的功能。網(wǎng)站的整體規(guī)劃及框架設(shè)計具有可擴充性,前臺頁面的設(shè)計能保證網(wǎng)站在增加欄目后不會破壞網(wǎng)站的整體結(jié)構(gòu)。網(wǎng)站的內(nèi)容及欄目規(guī)劃充分考慮到了日后維護的便捷性,方便的對網(wǎng)站內(nèi)容進行審核、管理、維護。提高網(wǎng)站易用性、改善用戶體驗。
(1) 網(wǎng)站內(nèi)容規(guī)劃。
1. 團委工作。
開展團委日常工作,宣傳報道開展的活動。
2. 基層團支部。
報道團支部開展的團委工作,優(yōu)秀團員事跡,介紹團委專題工作。
3. 學(xué)習(xí)天地。
學(xué)習(xí)共青團知識,思想教育。開展網(wǎng)絡(luò)課堂,以圖片、視頻形式學(xué)習(xí)各種知識。
4. 青年服務(wù)。
通過青年服務(wù)工程,為日常生活提供便利;推出青年卡,介紹打折優(yōu)惠信息;開辟娛樂板塊,活躍網(wǎng)站氣氛。
(2) 網(wǎng)站功能設(shè)計。
1. 完善團委工作平臺,實現(xiàn)網(wǎng)絡(luò)辦公。
2. 完善網(wǎng)絡(luò)會議功能。
3. 設(shè)計訪問統(tǒng)計,分析職工思想動向。
4. 增上信息服務(wù),提供生活便利查詢。
5. 完善信息搜索功能。
6. 建立圖片宣傳動態(tài)管理。
(3) 網(wǎng)頁設(shè)計風格。
遵循石化企業(yè)團委vi(企業(yè)視覺識別)設(shè)計風格,主色調(diào)選擇紅色,要求結(jié)構(gòu)嚴謹而簡潔,采用模板及css網(wǎng)頁風格技術(shù)。
(4) 后臺管理。
網(wǎng)站后臺管理將網(wǎng)站信息進行集中分類管理,操作界面簡單、方便。管理員管理權(quán)限系統(tǒng)能夠支持用戶分級管理,設(shè)置后臺用戶可管理哪些欄目,將龐大的資料管理工作分配給多個管理員完成,做到專人專職、責權(quán)分明,優(yōu)化人力資源,提高網(wǎng)站信息的更新效率,簡便網(wǎng)站信息審核與管理的流程。同時網(wǎng)站管理員能夠?qū)崟r對版主進行管理,隨時修改、刪除版主的信息與使用權(quán)限,保證系統(tǒng)的安全可靠性。
四. 網(wǎng)站日常管理。
〔1〕 網(wǎng)站日常運作。
1. 網(wǎng)站管理組負責網(wǎng)站日常維護,管理網(wǎng)站事務(wù)。
2. 團委負責團委工作的日常。
3. 各車間團支部負責車間團委工作及活動的。
4. 版主負責各版塊日常維護。
5. 廠協(xié)會、合作團體在指定板塊授權(quán)發(fā)帖。
6. 開辟個人專欄,授權(quán)發(fā)帖。
〔2〕 信息安全管理。
1. 網(wǎng)站服務(wù)器委托信息中心管理。
2. 建立網(wǎng)站管理員、團支部、版主,授權(quán)分級管理。
3. 信息嚴格審核,追蹤不良信息的ip來源。
4. 用戶功能授權(quán)設(shè)置,部分頁面授權(quán)查看。
〔3〕 網(wǎng)站宣傳推廣。
1. 配合團委工作制作專題。
2. 結(jié)合青年卡、青工技能網(wǎng)、文藝社團開展活動。
3. 版主組織開展活動,活躍板塊氣氛。
4. 結(jié)合相關(guān)事件、節(jié)日開展網(wǎng)站活動。
5. 與洛石化工會、各協(xié)會,以及其他單位合作開展活動。
五. 網(wǎng)站改版效果評測。
進行用戶滿意度調(diào)查,及時修改糾正改版后功能和欄目中不太合理或不足的地方,保證最大限度地滿足需求。
網(wǎng)站評測內(nèi)容:
1. 內(nèi)容布局合理。
2. 頁面設(shè)計風格。
3. 功能操作便捷。
4. 網(wǎng)站訪問速度。
5. 用戶體驗指數(shù)。
篇8
關(guān)鍵詞: 雙語教學(xué);Java程序設(shè)計;教學(xué)方法
中圖分類號:G642文獻標識碼:A文章編號:1006-4311(2012)04-0244-020引言
隨著經(jīng)濟的快速發(fā)展,英語在IT行業(yè)顯得越來越重要。如何在IT領(lǐng)域中培養(yǎng)具有國際合作意識和國際交流與競爭能力的專長人才成為高校教師需要仔細考慮的問題。國家教育部要求高校本科教學(xué)改革要推動雙語教學(xué)課程建設(shè),探索有效的教學(xué)方法和模式,提高大學(xué)生的專業(yè)英語水平和直接使用英語進行科研的能力。雙語教學(xué)正成為高校課程改革的一個熱門話題,也是教學(xué)改革中的一個新鮮點和困難點。
所謂雙語教學(xué)[1,2],是指在專業(yè)學(xué)科課程的教學(xué)中采用國外原版教材,而授課中采用中外兩種語言交叉進行的一種方法。雙語教學(xué)有助于學(xué)生直接地了解國際文化和教育背景,更好地參與創(chuàng)造和分享世界最新的文明和文化成果。采用雙語教學(xué)[3,4]把外語作為知識的載體,使所講授的知識與英文語言相聯(lián)系,不僅讓學(xué)生掌握所學(xué)知識,而且讓學(xué)生從兩種語言,兩種思維角度來理解同一問題,加深學(xué)生對知識的理解程度。
Java是20世紀90年代初由sun公司推出的一種純面向?qū)ο蟮某绦蛟O(shè)計工具,具有與平臺無關(guān)的特性,特別適合于Internet的應(yīng)用開發(fā)。Java語言已經(jīng)成為國內(nèi)外各IT公司首選的開發(fā)語言之一。因此,學(xué)習(xí)和掌握Java已成為越來越多程序設(shè)計人員的選擇,國內(nèi)外許多大學(xué)都已將《Java程序設(shè)計》列入了信息類專業(yè)的骨干課程。因此開展《Java程序設(shè)計》雙語教學(xué)是十分必要的,不僅能夠進一步提高學(xué)生的外語水平,也有助于培養(yǎng)學(xué)生獨立獲取國外先進科技成就的能力。
1《Java程序設(shè)計》雙語教學(xué)實踐
1.1 教材選取實施雙語教學(xué),教材的選擇至關(guān)重要。本課程采用美國Harvey M.Deitel編著的Small Java How to Program,6/E原版教材進行授課,內(nèi)容符合教學(xué)大綱要求的深度和廣度。該教材簡明清晰、論述層次分明,具有較強的邏輯性和較新的知識體系。該教材通篇使用大家熟悉的學(xué)生成績管理這個案例來呈現(xiàn)Java的各種操作以及面向?qū)ο蟮母鞣N相關(guān)概念,并且配備了大量的自測練習(xí)與程序設(shè)計練習(xí),從而使學(xué)生在理論上和實踐上達到統(tǒng)一。
1.2 教學(xué)方法與手段無論學(xué)習(xí)哪一種程序設(shè)計語言,最重要的是掌握其程序設(shè)計思想,而不是語言的外在形式。程序設(shè)計思想是在反復(fù)的實踐、觀察、分析、比較、總結(jié)中潛移默化積累的。掌握了程序設(shè)計思想的學(xué)生在面對新的程序設(shè)計語言時,只需要了解該語言的語法特點就可以在很快的時間內(nèi)融會貫通,最終達到學(xué)以致用的目的。為了更好的啟發(fā)學(xué)生的程序設(shè)計思想,首先要培養(yǎng)學(xué)生的形象思維能力。形象思維是在形象反映客體的具體形狀或姿態(tài)的感性認識基礎(chǔ)上,通過意象、聯(lián)想和想象來揭示對象的本質(zhì)及其規(guī)律的思維方式。在教學(xué)中恰當?shù)貞?yīng)用形象思維的聯(lián)想和類比的方法,可以使抽象的難以理解的教學(xué)內(nèi)容具體化、形象化,不僅有利于學(xué)生理解和記憶,而且使教學(xué)生動、有趣,激發(fā)他們的學(xué)習(xí)興趣和創(chuàng)新能力。形象思維有助于激發(fā)學(xué)生的學(xué)習(xí)興趣。興趣是思維發(fā)展的巨大動力,是最積極的內(nèi)在學(xué)習(xí)動機。其次,要培養(yǎng)學(xué)生解決實際問題的能力,以解決實際問題的程序設(shè)計思想作為教學(xué)的切入點,加強基礎(chǔ)、強化實踐、注重應(yīng)用、引導(dǎo)創(chuàng)新,啟發(fā)學(xué)生用程序的方式來解決問題,要把程序的組織結(jié)構(gòu)、語句含義、運行流程和實際問題對應(yīng)起來。為了有效地使學(xué)生掌握程序設(shè)計思想,在教學(xué)的過程中,運用案例教學(xué)、網(wǎng)絡(luò)教學(xué)和階梯式教學(xué)等多種教學(xué)手段。
1.2.1 案例教學(xué)在Java語言的教學(xué)過程中,教師講授的所有演示程序都是來自于現(xiàn)實,例如Small Java How to Program教材中的成績評定案例。首先,通過案例的教學(xué),使得學(xué)生掌握程序設(shè)計思想和形象思維能力。其次,通過對案例采取逐步加強式的擴展,揭示程序由小到大、由簡單到復(fù)雜直到實用的過程,激發(fā)學(xué)生的探索熱情和興趣,使學(xué)生掌握知識間的聯(lián)系和程序設(shè)計思想,獲得解決實際問題的程序設(shè)計能力。
1.2.2 網(wǎng)絡(luò)教學(xué)Java語言是一門實踐性很強的語言。為此,將傳統(tǒng)的課堂教學(xué)改為在實驗室進行網(wǎng)絡(luò)教學(xué),通過網(wǎng)絡(luò)教學(xué),學(xué)生能夠積極參與到教師教學(xué)中來,增強學(xué)生學(xué)習(xí)的主觀能動性。使用網(wǎng)絡(luò)進行教學(xué),學(xué)生可以同步感受和參與軟件的運行過程,增強他們的學(xué)習(xí)興趣。這項教學(xué)方式可以使學(xué)生通過視、聽等多種手段獲取教學(xué)信息,避免了學(xué)習(xí)時的倦怠情況產(chǎn)生。網(wǎng)絡(luò)教學(xué)能真正體現(xiàn)出教學(xué)過程的實時交互性,教師可以通過監(jiān)視管理功能,指導(dǎo)學(xué)生解決問題,學(xué)生也可以通過電子舉手的方法提出自己的看法和問題,向老師提出疑難,它與傳統(tǒng)教學(xué)的區(qū)別在于,不受時空方面的限制,可以是課堂教學(xué)的延續(xù),也可以自成一體,真正實現(xiàn)計算機獨立教學(xué)。學(xué)生在這種交互式教學(xué)環(huán)境中有了主動參與的可能,教師在主端提問,學(xué)生在各個終端設(shè)備上可以即時實施回答,保證了教學(xué)的同步性、及時性,教師可以及時檢查學(xué)生的學(xué)習(xí)情況,學(xué)生也可以及時向教師提問,讓兩者之間的關(guān)系更為緊密,交流更為便捷。
1.2.3 階梯式教學(xué)它是引導(dǎo)學(xué)生循序漸進的一種新的教學(xué)模式。可以防止學(xué)生在學(xué)習(xí)的過程中產(chǎn)生畏懼和排斥心理。對于大部分學(xué)生而言,英語基礎(chǔ)較為薄弱,它要求學(xué)生靈活掌握中文和英文的使用比例,在雙語教學(xué)過程中,并不急于求成,而是根據(jù)自身的具體情況和教學(xué)的基本要求來制定教學(xué)計劃,以便順利地實現(xiàn)教學(xué)目的。
1.3 實踐教學(xué)Java程序設(shè)計課程是一門綜合性較強的課程,上機實驗是至關(guān)重要的教學(xué)環(huán)節(jié)。上機實驗注重培養(yǎng)學(xué)生基本程序設(shè)計和調(diào)試能力?;境绦蛟O(shè)計和調(diào)試能力是深入學(xué)習(xí)本課程并取得實際程序設(shè)計能力的前提。通過上機實驗,學(xué)生會發(fā)現(xiàn)很多意想不到或未引起足夠重視的問題;通過解決這些遇到的問題,學(xué)生會加深對語法的理解,提高程序調(diào)試和實際程序設(shè)計能力。通過上機實驗,可以檢驗學(xué)生是否真正掌握和運用該語言。根據(jù)教學(xué)內(nèi)容編寫了一套以調(diào)試技術(shù)、基本語法、基本算法、綜合程序設(shè)計為核心內(nèi)容的綜合性程序設(shè)計來進行上機實驗。綜合性程序設(shè)計以一個或若干個章節(jié)為基礎(chǔ),設(shè)計若干個具有典型性、綜合性和示范性,能突出難點與實用價值的綜合性程序設(shè)計題。通過綜合性程序設(shè)計,學(xué)生能進一步鞏固和掌握基本語法、基本算法和基本調(diào)試技術(shù),養(yǎng)成良好程序設(shè)計風格,形成軟件工程化思想。
1.4 考核方式在考核方法的選擇上,我們要根據(jù)雙語教學(xué)的具體特點,制定靈活多樣的考核形式,注重對學(xué)生綜合能力的考察,不僅考察學(xué)生的專業(yè)學(xué)科知識,更注重考察其實際應(yīng)用能力。平時作業(yè)、課堂表現(xiàn)和期末考試是考查教學(xué)效果的有效方法。平時作業(yè)的內(nèi)容是教材的基本的程序設(shè)計題,側(cè)重考查學(xué)生對課堂內(nèi)容的理解,占總成績的20%。課堂表現(xiàn)主要考查學(xué)生的課堂參與能力和專注能力以及表達能力,占總成績的20%。期末考試,占總成績的60%,注重對教學(xué)的重點內(nèi)容和所學(xué)知識的綜合應(yīng)用能力的考評。基礎(chǔ)知識考核以選擇、判斷、填空為主,檢查學(xué)生對Java語言基礎(chǔ)知識的掌握程序以及對于英文原版教材的熟悉程度。程序設(shè)計題考核學(xué)生運用Java語言進行程序設(shè)計的能力。實驗環(huán)節(jié)的成績單獨評定。通過Java語言的雙語教學(xué),學(xué)生能夠掌握大量的英文專業(yè)術(shù)語,對于提高學(xué)生的能力、開拓學(xué)生視野有很大的幫助。
2結(jié)束語
按照以上教學(xué)方法和手段,《Java程序設(shè)計》課程的雙語教學(xué)基本達到了預(yù)期目標,收到了較好的效果。通過實施雙語教學(xué),學(xué)生提高了程序設(shè)計能力和外語的應(yīng)用能力,了解了國際上程序設(shè)計語言的動態(tài)。。在雙語教學(xué)過程中,教師要認真研究教學(xué)對象、精心設(shè)計教學(xué)過程,重視對學(xué)生的引導(dǎo)和輔導(dǎo),雙語教學(xué)才能收到較好效果。要根本地提高Java程序設(shè)計雙語教學(xué)的教學(xué)效果,經(jīng)過各方面的共同努力,總結(jié)經(jīng)驗與教訓(xùn),探索適合自己的更有效的雙語教學(xué)方法。
參考文獻:
[1]隋紅霞.關(guān)于高校雙語教學(xué)中幾個問題的思考[J].大家,2010(23).
[2]張引瓊,戴小鵬.“Java程序設(shè)計”雙語教學(xué)模式的分析與實踐[J].當代教育理論與實踐,2011,3(4):126-127.
篇9
關(guān)鍵詞:案例;案例教學(xué);C++語言程序設(shè)計
“C++語言程序設(shè)計”作為計算機應(yīng)用及相關(guān)專業(yè)的重要基礎(chǔ)課程,具有較強的理論性、實踐性和創(chuàng)造性,它是在C語言的基礎(chǔ)上發(fā)展演變而來的一種面向?qū)ο蟪绦蛟O(shè)計語言,提供了面向?qū)ο蟪绦蛟O(shè)計風格,更接近于目前常用軟件開發(fā)平臺的軟件開發(fā)思想,從而成為當今計算機教學(xué)的核心內(nèi)容。由于C++牽涉到的概念比較復(fù)雜,規(guī)則繁多,使用靈活但容易出錯,長期以來,C++語言被認為是較難學(xué)習(xí)的專業(yè)開發(fā)語言,如果采用傳統(tǒng)的課堂講授教學(xué)法,則教學(xué)內(nèi)容仍然是理論與實踐相脫節(jié),使課堂教學(xué)顯得空洞、呆板,缺乏學(xué)習(xí)興趣,束縛了學(xué)生的思維發(fā)展且不能考核出學(xué)生的實際操作水平、綜合分析能力及創(chuàng)新能力。經(jīng)過多年的教學(xué)實踐和不斷探索,筆者認為案例教學(xué)法能彌補傳統(tǒng)教學(xué)法在講授“C++語言程序設(shè)計”時的不足,也是提高學(xué)生學(xué)習(xí)興趣的有效手段之一。那么,如何在對高職院校??粕M行C++語言的教學(xué)中,使學(xué)生能夠了解C++語言程序設(shè)計的基本概念和方法,進而領(lǐng)會程序設(shè)計的奧秘,掌握C++語言的編程技巧,提高該課程的教學(xué)效果,是每一位計算機教師在教學(xué)中應(yīng)該努力探討的問題。
1案例教學(xué)法的基本思想
案例教學(xué)法是一種生動、靈活、多樣化的教學(xué)方法,由于它自身的特點,同時經(jīng)過長期的教學(xué)實踐,已經(jīng)形成了獨具特色的教學(xué)方法,更確切地說,它已成為一種重要的教學(xué)形式,是教育者本著理論與實際有機整合的宗旨,遵循教學(xué)目的要求,以案例為基本素材,將學(xué)習(xí)者引入一個特定的真實情境中,通過師生、生生之間雙向和多向互動,積極參與,平等對話和研討,重點培養(yǎng)學(xué)習(xí)者的批判反思意識及團體合作能力,并促使學(xué)習(xí)者充分理解問題之復(fù)雜性、變化性、多樣性等屬性的重要教學(xué)形式[1]。它在非計算機專業(yè)學(xué)科教學(xué)中采用較多,由于它的獨特魅力,現(xiàn)在已被應(yīng)用到很多學(xué)科的教學(xué)當中,而關(guān)于案例教學(xué)在“C++語言程序設(shè)計”教學(xué)中進行運用的理論性研究相對來說目前并不多,所以如何更好地發(fā)揮案例教學(xué)在教學(xué)中的作用值得探討。程序設(shè)計教學(xué)的最終目的是要讓學(xué)生學(xué)會進行軟件設(shè)計及軟件開發(fā),培養(yǎng)學(xué)生的實際動手能力和探究、創(chuàng)新能力,所以在案例的選取方面要精,要有代表性和典型性,同時要考慮到學(xué)生的認知特點。
2案例教學(xué)法中的案例選擇
案例教學(xué)法的成功取決于:(1)教師的素質(zhì)和教師在教學(xué)過程中角色的合理定位。在案例教學(xué)中,教師不是主角,他只起一個引導(dǎo)和啟發(fā)的作用。(2)學(xué)生的角色定位。學(xué)生是主角,積極主動地參與到案例教學(xué)過程中,他們之間可以開展討論,甚至辯論,其目的就是要把問題分析透徹,最后解決問題。(3)選擇案例的質(zhì)量。案例的選擇是“C++語言程序設(shè)計”課程案例教學(xué)法的重要環(huán)節(jié),直接影響教學(xué)效果,應(yīng)依據(jù)專業(yè)方向的培養(yǎng)目標,課程內(nèi)容,教學(xué)目的以及課程特點來進行案例的選擇,在課程的案例選擇中一般應(yīng)注意以下幾個方面的內(nèi)容。
2.1實用性
將案例引入教學(xué)的目的在于理論聯(lián)系實際以促進教學(xué)。學(xué)習(xí)C++后要求學(xué)生能系統(tǒng)地進行程序設(shè)計,而不是學(xué)會一些語句及簡單地計算機操作,所以,從教學(xué)內(nèi)容和教學(xué)要求上看,在教學(xué)中舉出一些實用的案例是很有必要的,通過案例,學(xué)生從知其局部到知其全面,從知其然到知其所以然,使學(xué)生通過具體的實例有“身臨其境”的感覺,以某個系統(tǒng)設(shè)計員的角度考慮問題,這樣做能啟發(fā)學(xué)生把具體案例與C++語言聯(lián)系起來,彼此貫通。
2.2趣味性
俗話說,興趣是最好和老師,如果選擇時鐘這樣傳統(tǒng)的案例,學(xué)生初學(xué)時很難認可它的價值,不知學(xué)它何用,學(xué)習(xí)缺乏目的性,激不起學(xué)生學(xué)習(xí)的興趣,這就需要教師在選擇案例時要充分考慮其趣味性,讓學(xué)生產(chǎn)生興趣,從而有效調(diào)動學(xué)生的學(xué)習(xí)熱情。
2.3綜合性
C++是適合于編寫大型復(fù)雜程序的語言,在編寫小的程序時根本顯現(xiàn)不出它的魅力,所以選擇的案例要具有一定的難度,深度和綜合性,不應(yīng)過于簡單,這樣可以吸引學(xué)生對案例去反復(fù)琢磨、推敲,激勵學(xué)生去系統(tǒng)地研究、分析,加深對難點、重點問題的認識和掌握,從而取得較好的整體教學(xué)效果。
2.4挑戰(zhàn)性
“C++語言程序設(shè)計”是一門實踐性很強的課程,而運用案例進行教學(xué)又是編程中不可缺少的一種方法,但是多數(shù)情況下,教師習(xí)慣采用正面實例進行對比分析,其實,反面實例往往比正面更能加深學(xué)生對問題的認識和理解。因此,在教學(xué)中可以采用一些反面實例,引導(dǎo)學(xué)生深思,鼓勵學(xué)生運用所學(xué)知識完善實例,這是具有挑戰(zhàn)性的環(huán)節(jié),一般改別人的程序要比自己編程還難。
3實施案例教學(xué)的方法及策略
在程序設(shè)計教學(xué)中實施案例教學(xué)基本上分為兩類方法:一是案例講解法,二是案例分析法[2]。案例講解法主要用于課堂教學(xué)中那些應(yīng)用性很強的案例,放棄邏輯講授而直接用案例講解來教學(xué),這里主要強調(diào)教師的講解作用。案例分析法也叫案例討論法,這里主要強調(diào)學(xué)生的參與性,主要培養(yǎng)學(xué)生創(chuàng)造性思維和解決問題的能力,通過討論和分析來培養(yǎng)學(xué)生解決問題的思維方法和能力。
對于案例而言,由于它并不能包含某一種程序設(shè)計語言課程的全部內(nèi)容,特別是一些原理性、概念性相對比較強的內(nèi)容,雖然案例教學(xué)在實用性和重應(yīng)用性方面有很大的優(yōu)勢,但在知識的系統(tǒng)性、連貫性上不如傳統(tǒng)教學(xué)有優(yōu)勢。所以,要根據(jù)課程內(nèi)容的性質(zhì)尋找這兩方面的接觸點和相互之間的聯(lián)系,將傳統(tǒng)教學(xué)與案例教學(xué)有機地結(jié)合起來[3]。對于案例教學(xué)在“C++語言程序設(shè)計”教學(xué)實施中的具體教學(xué)流程如圖1所示。
同時,教師在實施案例教學(xué)的過程中要進行不斷地反思,進而改進教學(xué)策略來適應(yīng)不斷變化的課堂和學(xué)生的需求。
4 “C++語言程序設(shè)計”教學(xué)案例分析
以下通過一個案例在“C++語言程序設(shè)計”教學(xué)中的運用來更好地說明如何運用案例教學(xué)。
4.1案例選編
在案例的選編上,遵循案例選取的原則,選擇一個大家比較容易理解的數(shù)制轉(zhuǎn)換案例,該案例是計算器中的一個功能,比較有實用性,并且覆蓋了C++語言中的數(shù)據(jù)類型定義、程序的流程控制、數(shù)組、函數(shù)調(diào)用和結(jié)構(gòu)等內(nèi)容,在設(shè)計上充分了體現(xiàn)程序開發(fā)的基本思路,既符合所需掌握知識的特點,又能讓學(xué)生感興趣[4],在完成了十以下進制的數(shù)制轉(zhuǎn)換之后,還可在此基礎(chǔ)上進行擴充,如增加十六進制轉(zhuǎn)換和小數(shù)部分的轉(zhuǎn)換等。
4.2案例的實施
(1) 在案例實施前,要運用傳統(tǒng)的講授法對C++語言的數(shù)據(jù)類型定義、程序的流程控制、數(shù)組、函數(shù)調(diào)用和結(jié)構(gòu)等內(nèi)容作一下簡要的、系統(tǒng)的復(fù)習(xí)。讓學(xué)生對這門語言有一個總的認識和總的把握,對在程序設(shè)計中所用到的堆棧結(jié)構(gòu)和一些重要的概念進行了簡要的介紹,因為這些概念相對來說比較難理解,主要是讓學(xué)生在案例學(xué)習(xí)當中以及自己在實踐操作中去慢慢接受和理解。
(2) 對案例進行講解和分析。將十進制數(shù)N轉(zhuǎn)換成r進制的數(shù)學(xué)模型如下。
N=(N div r)*r+ N mod r
計算過程:首先用十進制整數(shù)N除以基數(shù)r,得到的余數(shù)是r進制y的最低位y0,接著以x除以r的整數(shù)商作為被除數(shù),用它除以r得到的整余數(shù)是y的最低位y1,依次類推,直到商為0時得到的整余數(shù)y的最高位ym,假定y共有m+1位。這樣得到的y與N等值,y的按權(quán)展開式為:
y=y0+y1.r+y2.r2+...+ym.rm
算法思想:將計算過程的r進制數(shù)逐位進棧,然后逐個出棧[5]。
例如,若十進制整數(shù)為3929,把它轉(zhuǎn)換為八進制數(shù)的過程如圖2所示。
(3) 根據(jù)高職學(xué)生的特點和水平,給出案例的設(shè)計流程及部分參考程序。
//打開相關(guān)的頭文件
const int StackMaxSize=30; //定義數(shù)組的最大長度
typedef int ElemType; //定義元素類型為整型
struct Stack
{
ElemType stack[StackMaxSize];
int top;
}; //定義一個棧結(jié)構(gòu)
//定義棧操作的相關(guān)函數(shù)
//把一個長整型數(shù)num轉(zhuǎn)換為一個r進制數(shù)輸入
void Transform(long num,int r)
{
Stack a;//利用棧a存儲轉(zhuǎn)換后得到的每一位數(shù)字
InitStack(a);//初始化棧
while(num!=0)//由低到高求出r進制的每一位并入棧
{
int k=num%r;
Push(a,k);
num/=r;
}
while(!StackEmpty(a))//由高到低輸出r進制數(shù)的每一位
cout
cout
}
//主函數(shù)
運行結(jié)果如圖3所示。
(4) 教學(xué)過程交流互動。案例教學(xué)過程中一個重要環(huán)節(jié)是學(xué)生參與問題的討論,討論案例旨在分析問題,提出解決問題的算法,使學(xué)生能夠主動參與學(xué)習(xí)活動,教師和學(xué)生能夠相互交流。學(xué)生學(xué)習(xí)由被動變?yōu)橹鲃?主動提出問題、思考問題。教師作為案例討論的組織者,要能夠駕馭課堂討論的進度和氛圍。教師作為案例討論的引導(dǎo)者,要創(chuàng)造寬松的氛圍。對同一案例允許學(xué)生提出不同的分析結(jié)果和實現(xiàn)方法,如本案例可以用老師的給出方法來實現(xiàn),也可以用學(xué)生自己的方法來實現(xiàn),老師幫助學(xué)生分析算法的優(yōu)劣,讓學(xué)生真正成為學(xué)習(xí)的主體。
(5) 案例評述。案例評述是案例教學(xué)中極其重要的一個環(huán)節(jié),通過評述可以發(fā)現(xiàn)算法中的漏缺,將各知識點有機地串連起來,便于知識的融會貫通,保證知識的完整性。為了便于加強對所學(xué)的重要知識點的鞏固和對新知識的學(xué)習(xí),提高學(xué)生的學(xué)習(xí)積極性和綜合應(yīng)用所學(xué)知識解決實際問題的能力,讓學(xué)生對本案例的算法進一步完善。如:如何解決十六進制的轉(zhuǎn)換和小數(shù)部分的轉(zhuǎn)換等問題。
5結(jié)語
教學(xué)實踐表明,通過案例教學(xué)在“C++語言程序設(shè)計”教學(xué)中的實施,能夠激發(fā)學(xué)生創(chuàng)造性思維,充分調(diào)動學(xué)生學(xué)習(xí)的積極性,提高了學(xué)生分析問題和解決問題的能力,所以在教學(xué)中合理、有效地使用案例教學(xué),容易使教學(xué)過程充滿挑戰(zhàn)性、趣味性,很好地解決傳統(tǒng)教學(xué)中遇到的問題。
參考文獻:
[1] 張新平. 案例教學(xué)的內(nèi)涵[J]. 云南教育,2002(32):6.
[2] 張繼學(xué). 案例教學(xué)及其在國內(nèi)的發(fā)展研究[J]. 職業(yè)教育研究,2004(11):60-61.
[3] 龔沛曾,楊志強,陸慰民,等. 案例教學(xué)法在“Visual Basic程序設(shè)計”課程中的應(yīng)用[J]. 計算機教育,2004(5):62-63.
[4] 李寧. C++語言程序設(shè)計[M]. 北京:中央廣播電視大學(xué)出版社,2000:1-8.
[5] 許卓群. 數(shù)據(jù)結(jié)構(gòu)(C++語言描述)[M]. 北京:中央廣播電視大學(xué)出版社,2001:129-130
Application of Case-based Teaching Method in the C + + Programming Language
XIAO Ming
(Guangzhou Light Industry Technician Institute, Guangzhou 510220,China)
篇10
關(guān)鍵詞:信息技術(shù);課堂教學(xué);創(chuàng)新能力;培養(yǎng)與提高
中圖分類號:G633.67 文獻標識碼:A 文章編號:1671―0568(2013)24―0027-02
信息技術(shù)教育的創(chuàng)新性與實踐性較強,教學(xué)中如何發(fā)揮其創(chuàng)新性與實踐性的優(yōu)勢,激發(fā)學(xué)生對該課程的學(xué)習(xí)興趣,培養(yǎng)創(chuàng)新能力呢?筆者認為,在信息技術(shù)課教學(xué)中,要根據(jù)學(xué)生的年齡特點和發(fā)展水平,按照信息技術(shù)課程的設(shè)置要求,使學(xué)生了解和掌握該課程的基本知識和技能,從而不斷提高信息素養(yǎng),為今后的學(xué)習(xí)、工作和生活打下堅實的基礎(chǔ),并運用所學(xué)的知識和技能解決實際問題。
一、從現(xiàn)有的知識中引發(fā)新問題,培養(yǎng)創(chuàng)新意識
在教學(xué)中,教師要善于運用各種教學(xué)手段創(chuàng)設(shè)問題情境,調(diào)動學(xué)生思維的積極性,激發(fā)探究的興趣,培養(yǎng)學(xué)生的創(chuàng)新意識。如在教學(xué)《用程序畫圖》一課時,因勢利導(dǎo),引導(dǎo)學(xué)生靈活運用編程工具箱中的控件,掌握控件的屬性設(shè)置及修改;結(jié)合實際問題,通過分析,編寫程序,形成良好的程序設(shè)計風格。教師要了解學(xué)生的學(xué)習(xí)心態(tài),善用學(xué)生對程序設(shè)計的神秘感和強烈的好奇心,使之熟悉VB程序設(shè)計環(huán)境,明確本節(jié)課學(xué)習(xí)任務(wù)和學(xué)習(xí)目的,激發(fā)其學(xué)習(xí)程序設(shè)計的求知欲,在此基礎(chǔ)上再引導(dǎo)學(xué)生觀察并思考:《編程序和畫圖一樣簡單》這樣的程序我們能不能重編寫一個《用程序畫圖》的程序呢?并對程序窗口中控件的屬性,能不能設(shè)置及修改呢?要添加什么樣的代碼才能讓這相應(yīng)的按鈕畫出對應(yīng)的圖形呢?一系列的問題激發(fā)了學(xué)生嘗試練習(xí),學(xué)生打開《用程序畫圖》嘗試完成添加“畫矩形”這按鈕的代碼,教師則巡回指導(dǎo)。學(xué)生啟用VB設(shè)計一個程序,為“畫直線”、“畫矩形”、“畫圓”這三個按鈕添加代碼,單擊按鈕并畫出相應(yīng)的圖形。實踐證明:在知識中引發(fā)的新問題,可以激發(fā)探究的動機,從而培養(yǎng)學(xué)生的創(chuàng)新意識。
二、貼近學(xué)生實際,挖掘教材中創(chuàng)新的契機,培養(yǎng)創(chuàng)新能力
中學(xué)生的思維極為活躍,參與意識較強,想象力極為豐富,因此,在教學(xué)中要以學(xué)生為本,要由傳統(tǒng)的課堂主宰者和知識灌輸者轉(zhuǎn)變?yōu)檎n堂的組織者、探究知識的引導(dǎo)者、合作學(xué)習(xí)的協(xié)調(diào)者和培養(yǎng)創(chuàng)新能力的促進者,要善于挖掘和尋找信息技術(shù)教材中的點滴契機來激發(fā)學(xué)生的創(chuàng)新意識、培養(yǎng)創(chuàng)新思維,從而提高他們的創(chuàng)新能力。要積極為學(xué)生創(chuàng)設(shè)有利于創(chuàng)作和想象的契機,擴展學(xué)生自由創(chuàng)新的空間,使他們的創(chuàng)新思維得以無拘無束地釋放和飛躍,這樣才有可能實現(xiàn)創(chuàng)新的夢想。例如,在教學(xué)《使用PowerPoint制作幻燈片》時,可以根據(jù)教學(xué)內(nèi)容,讓學(xué)生利用PowerPoint制作一張張精美的“明信片”送給自己的親朋好友。由于此教學(xué)內(nèi)容符合學(xué)生的年齡特點和心理特點,能夠很好地發(fā)揮學(xué)生的想象力,所以,學(xué)生對這種內(nèi)容的練習(xí)非常感興趣,積極性極為高漲。教學(xué)實踐證明:學(xué)生制作的明信片主題各異,內(nèi)容豐富,形式多樣,很好地體現(xiàn)了自己的創(chuàng)意。有的同學(xué)設(shè)計的明信片以展現(xiàn)祖國山川美景為主題內(nèi)容,有的同學(xué)設(shè)計的明信片以介紹名勝古跡為主題內(nèi)容,還有的同學(xué)設(shè)計的明信片以突出家鄉(xiāng)的巨大變化為主題背景,甚至有的同學(xué)設(shè)計的明信片以展示自己風采為主題內(nèi)容。學(xué)生在創(chuàng)作過程中,合理想象,充分張揚自己的個性,充分體現(xiàn)了學(xué)到的技能和創(chuàng)新能力。
實踐證明:學(xué)生的學(xué)習(xí)興趣是創(chuàng)新的內(nèi)動力,有興趣會激發(fā)強烈的探索欲望,從而萌發(fā)創(chuàng)新的意識,促生創(chuàng)新的行為。
三、鼓勵自主實踐,提高學(xué)生的創(chuàng)新能力
教師在教學(xué)中要鼓勵學(xué)生自主實踐,運用自己已有的知識經(jīng)驗,獨立解決問題。例如,在教學(xué)《電子信箱的使用》一課時,教師首先對什么是電子信箱和電子信箱的工作原理進行簡單介紹,并介紹幾種常見的免費電子信箱,要求學(xué)生通過自學(xué)教材內(nèi)容,查看網(wǎng)絡(luò)提示,合作討論,嘗試實踐申請一個免費電子信箱,并向教師成功發(fā)送一個電子郵件。學(xué)生通過自學(xué)教材內(nèi)容,查看網(wǎng)絡(luò)提示,嘗試用自己申請的用戶名和密碼登陸自己注冊的電子信箱;通過合作、交流、討論,知道了寫郵件時應(yīng)注意的填寫內(nèi)容,并嘗試發(fā)送、接收和回復(fù)郵件。在學(xué)生體驗成功的喜悅中,引導(dǎo)學(xué)生探究通訊錄的使用與管理技巧,對郵件科學(xué)分組管理,提高郵件交流的效率;引導(dǎo)學(xué)生養(yǎng)成健康、安全的自我防范意識,形成主動、自覺抵制不良信息的習(xí)慣,并引導(dǎo)他們學(xué)會如何抵制不良郵件的操作辦法以及如何添加文件、圖片等進行發(fā)送。
實踐表明:在探究中培養(yǎng)學(xué)生的實踐能力會激發(fā)學(xué)生的深度思維,從而促使其創(chuàng)新能力在實踐過程中得到鍛煉和提高。
四、實施分層教學(xué),發(fā)揮學(xué)生的創(chuàng)新潛能
學(xué)生來自不同學(xué)校,存在著諸多方面的差異,對此,教學(xué)時如果對學(xué)生的教學(xué)要求和目標同等對待的話,勢必會造成基礎(chǔ)差、能力弱的學(xué)生學(xué)習(xí)吃力,而又影響基礎(chǔ)好、能力強的學(xué)生創(chuàng)新發(fā)展。因此,在信息技術(shù)教學(xué)中,要使不同層次的學(xué)生都得到發(fā)展,逐漸縮小差異,有必要對學(xué)生進行分層教學(xué),使不同層次學(xué)生的個性都得到發(fā)展和創(chuàng)新。這就要對剛?cè)雽W(xué)的學(xué)生進行廣泛的調(diào)查研究,如針對目前掌握了計算機的哪些操作技能,學(xué)過哪些軟件,能處理哪些計算機程序等進行詳細調(diào)查,或是對新入學(xué)的學(xué)生進行摸底測試,然后根據(jù)調(diào)查的結(jié)果和摸底測試進行高、中、低三個層次的分層。然后在具體的教學(xué)中,制定不同的教學(xué)目標,實施分層教學(xué),讓各層次的學(xué)生都能找到發(fā)揮自己創(chuàng)新潛能的突破口。
實踐證明:針對學(xué)生的年齡特點和個性差異因材 材施教、分層教學(xué)可以讓各層次的學(xué)生都能找到發(fā)揮自己創(chuàng)新潛能的突破口,有利于學(xué)生的個性發(fā)展和發(fā)揮創(chuàng)新潛能。
參考文獻:
[1]馮文樂.讓思維能力在信息技術(shù)教育課堂中升華[J].湖南教育,2010,(12).
熱門標簽
程序設(shè)計論文 程序畢業(yè)論文 程序法 程序?qū)嵱?xùn)總結(jié) 程序公正 程序閱讀 程序員 程序問題 程序設(shè)計 程序化 心理培訓(xùn) 人文科學(xué)概論