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