前言:中文期刊網精心挑選了結構化程序設計范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
結構化程序設計范文1
關鍵詞:實例拓展;結構化;程序設計教學;教學應用
中圖分類號:TP311.1
在計算機專業的教學中,程序設計是一門最基礎,也是最重要的課程之一,是培養學生計算編程能力的主要課程[1]。但是又因為這門課程涉及到很多理論性極強的內容和大量的編碼知識,不容易被學生理解,所以是計算機專業教學的重點和難點。在過去傳統的教學方式之下,老師只是按照大綱的順序來講解相關的知識點,即使舉例也只是引用一些比較典型的例題,例題和例題之間缺乏聯系,使得學生只能進行生硬的記憶法來掌握程序設計各種語句,不能真正理解這些編程方法,達不到自主編程的教學目的,收效甚微。為了改變這一現狀,讓學生能夠真正理解程序結構之間的關系,能夠靈活運用各種編程方法進行自主編程,在教學的過程中怎樣選擇具合適的實例已經成為提高教學效果的關鍵。我校推行的實例拓展教學法很好地解決了這一難題,在我校大力推行之后,受到廣大師生的好評,結構化程序設計的教學效果明顯。
1 實例拓展法概述
實例拓展教學法屬于教學方式創新的表現形式之一。在這種教學方法中,實例就是整個教學的中心,所有的教學活動都可以通過實例來完成,這也是這種教學方法最典型的特征[2]。運用實例拓展法進行教學,學王可以充分利用各種學習資源,通過自主探索或者相互合作的方式來完成實例任務,同時又會催生出一種新的實例。這種重在學生實踐活動的教學方式就被稱之為拓展實例法。這種教學方法有助于培養學生的自主學習能力,提高他們獨立分析問題和解決問題的能力。在計算機結構化程序設計這種實踐性較強的課程教學中,尤其適合使用這種方法。
2 實例拓展法在結構化程序設計教學中的實際應用
在計算機程序設計中,VB語言是一門重要的課程,所以我們就以這門課程為例,對實例拓展教學方法在課堂上的具體應用進行具體。為了便于學生理解和練習,我們將實例分成了兩種,一種在老師進行課堂理論教學時應用,另一種則在上機實踐活動中應用,下面我們對實例的應用進行出詳細介紹。
老師在進行教學設計時,如何安排實例是教學活動的核心所在。在對教學實例進行安排時,老師一定要結合中專學生的年齡特點、心理發展水平和實際生活的需要等因素。同時,實例的拓展應該遵循教育學的客觀規律,從易到難,由淺入深,便于學生進行理解[3]。另外,實例的難度應該適中,既不能讓他們一看就明白,也不能讓他們冥思苦想而不得,要讓大部分學生通過自己的思考能夠完成,而且要將相關的知識點囊括其中,這樣才能充分實例拓展的作用。
在VB結構化程序設計的教學中,課堂內容可以被大致分成順序結構、選擇結構、循環結構、數組應用和過程設計等五個部分[4]。老師在進行教學的過程中一定要全面掌握這些內容之間的內在關系。在本文中,我們將省略比較復雜的程序代碼,對這5部分內容運用到的實例進行簡單分析。
在進行順序結構這一內容的教學時,我們可以以計算圓的面積為例,在輸入圓的半徑之后就可以計算出來。這一實例可以作為入門介紹,理解起來并不困難。在這個實例中,融入了程序的三大基本組成部分,即數據輸入、處理和輸出,在講解實例的過程中,就能讓學生掌握這一知識點。
在結構程序的教學中,可以在對上述實例進行拓展,提出問題:“假設圓的半徑的小于0時該怎們辦?”讓學生進行思考,然后提出程序設計中的基本語句――選擇結構的if語句。為了讓學生理解if語句的語法,老師可以讓學生在鍵盤上隨意輸入三個數字,求解最大值和最小值,在這個過程中介紹if語句的兩種格式,即單行格式和多行格式。到這里,我們就在前兩個實例的基礎上衍生出了新的實例。在了解if語句的格式之后,老師還可以對實例進行進一步拓展,讓學生求解分段函數,明確if語句和Select Case這兩種多支結構的語句格式。
在循環結構的教學中,我們可以引入一個新的實例來介紹循環結構For Next語句,例如在窗體上顯示出1、3、5、7、9這五個奇數。然后讓學生對求解上述數字之和,對上述實例進行拓展。進一步掌握For Next語句。在求和的基礎上,再一次對實例進行拓展,讓學生在100以內,求出1+3+5+7+……的最大奇數值,在講解實例的過程中引入循環結構中一種重要的語句形式――Do Loop語句。
在講解數組應用這一內容時,可以在任意輸入3個數字求解最大值和最小值這一實例的基礎上加以拓展,讓學生思考怎樣求出任意10個數字的最大值和最小值,通過這個實例引入數組概念和靜態數組的使用方法。在這一實例的基礎上還能進一步拓展,求出任意數字的最大值和最小,引入動態數組的概念的和具體的使用方法。
在進行過程設計這一內容的教學時,依然在任意求解3個數字的最大值和最小值這一實例的基礎上加以拓展,將它們分成兩個函數,在講解的過程中讓學生掌握過程的概念以及Function過程的建立和使用方法。在此基礎上,對實例進一步拓展,將3個數字的最大值和最小值看成兩個Sub過程,讓學生通過老師對實例的講解掌握Sub過程的建立和使用方法[5],并與Function過程進行對比。
以上的實例主要是在引入相關概念和講解程序基本原理時使用的,需要在多個課時中講解。根據所講內容的課時安排,可適當補充其他實例,更加詳細地講解相關知識,也可以補充一些比較有趣實用的綜合例子,如制作計算器、打印九九乘法表等,進一步開闊學生的眼界。
經過多年的教學實踐,筆者發現在運用實力拓展法之后,學生對程序設計的學習興趣大增,不管是課堂表現還是作業完成情況都有了明顯改善,考試成績也得到了大幅度提升。通過這種教學方法,學生能夠從中學到自己需要的知識,并真正將其轉化為實際應用,設計出實用的小軟件來,對于他們將來學習其他知識和提高計算機操作水平都有很大的促進作用。
3 結束語
綜上所述,在結構化程序設計的教學中,實力拓展法對于提高教學效果,培養學生的計算機運用能力具有非常重要的作用。但是在具體的教學過程中還要從學生的實際情況出發,進行靈活地調整,才能真正激發出學生的興趣,充分發揮實例拓展法的作用。
參考文獻:
[1]武相軍,白晨希.實例拓展法在結構化程序設計教學中的應用[J].計算機教育,2013(17):47-49.
[2]傅籬.計算機結構化程序設計教學探索與實踐[J].計算機教育,2009(12):78-80.
[3]孫英,徐順瓊,李興美.C語言中循環結構程序課的教學設計與探討[J].計算機教育,2009(07):186-187.
[4]周顯春.合作探究式教學法在結構化程序設計教學中的運用[J].學習月刊,2010(30):91-92.
結構化程序設計范文2
摘要:本文結合學生的學習心理和認知規律,分析了C語言教學問題的主客觀原因,提出了“先過程,后對象”的教學理念,從教材建設、教學內容安排上闡述了教學內容的具體組織實施過程,從教學思路、教學觀念、教學手段幾方面探討了教學方法的改革。
關鍵詞:C語言;教學方案;教學組織;教學改革
中圖分類號:G642
文獻標識碼:B
C語言程序設計是一門難學、難懂、難以應用的課程,對學生越來越缺乏吸引力。傳統的C語言教材大都存在著內容陳舊、缺乏現代編程思想、過于偏重語法、難度高等缺點,難以提起學習興趣,學生有畏難情緒。
傳統的教學觀念,強調先打好基礎,然后再進行實踐、學習技能。教學實踐證明,基礎和技能的教學可以同步進行,甚至先教技能再教理論,在不斷實踐中掌握技能,在技能學習中提高基礎理論。這樣更適合學生的成長。
為此,我們以社會對學生編程和軟件開發能力的需求為依據,參照人才培養模式和專業課程體系改革,對C語言課程教學進行了探索實踐。
1 教學方法的改革
在C語言程序設計教學中,我們不再局限于單純介紹C語言基本語法,而是本著面向未來的精神,把C語言作為一種實踐工具,以程序設計方法為主線,以語法和結構為核心,以能力培養和提高學習興趣為目標,注重理論與實踐的結合、先進性與基礎性的統一,變應試為應用。
1.1先過程、后對象的教學方法
考慮到絕大部分學生今后不會去搞程序開發,所以思維能力的培養是首要的。從這一角度來說,先過程、后對象的方法更符合學生的認知規律。而過程化的程序設計方法和解決問題的思路更切合學生已有的認知結構,甚至可以說就是我們日常分析問題、解決問題思路和步驟的一種計算機的代碼化,更易于被學生接受。
1.2采用一體化教學方法,以程序案例為主教學,通過案例講解語法要點和難點
“案例驅動”教學法應用在C語言程序設計教學中,就是講解語法時不停留在理論討論上,不是教會這一語法現象是什么,而是通過實例教會學生某一語法現象如何應用。比如,算術運算符中的求余運算和整除運算是比較有特色和應用較多的運算,在講解這兩個運算符的時候,就不能只停留在寫兩個表達式讓學生計算出結果來,而應該結合實例讓學生知道這樣的語法特色用在什么地方,怎么用。如通過求1到5的倒數和這樣一個小例子使學生認識整除運算的特點及在今后級數求和運算中如何避免可能引起的誤差;通過一個求兩位整數的逆序數的小程序,學生就會明白整除運算和求余運算可以用來將一個整數的各個位數分解出來,待后續循環結構介紹完畢時,又可將問題擴展到求任意位數整數的逆序數;當介紹到函數的概念時,又可將問題引申到回文數的判別,這樣將一個對學生來說很難的算法問題分散到各個部分來處理,不僅降低了算法講解的難度,也使學生能真切地體會到學習語法知識的必要性。
教學始終貫穿一個核心實例 ―― 學生成績管理系統的開發。選擇這樣一個系統的原因是學生比較熟悉有關成績的業務和功能,同時開發學生成績管理系統將涉及到 C 語言程序設計課程的全部知識點。
1.3教學模式特色
集課堂、實驗、網絡教學于一體,教、學、研有機結合、相互促進,形成了“課內教學+課外俱樂部”、“常規教學+實驗教學+網絡教學”、“開放實驗室+自編教材+教學網站+教輔系統”、“課上現場編程互動+課后作業練習+課下實驗練兵+機上考試實戰+課外創新實踐提高”的立體化教學模式。
2 教學的組織實施
C語言課程的教學目標突出培養學生的編程能力,為實現這一目標,在教學內容上拋棄了過多的語法細節和非通用的或實際用途很少的語言特性,注意強調基礎性、實用性、先進性和系統性,兼顧教學和自學兩方面的適用性。精簡過程化部分的內容、降低其難度、銜接面向對象的方法是關鍵。主要特點如下:
(1) 以結構化程序設計為重點,面向對象的概念和編程思想為擴展,MFC編程基礎為補充,體現了先進性和系統性的統一。
(2) 淡化語法,對語法難點通過實例具體而分散地介紹,舍棄不實用和過于復雜的內容,如位運算、共用體、多繼承等概念,體現了基礎性和實用性的統一。
(3) 在內容上降低難度,淡化了過于繁雜的指針概念,簡化了字符串的處理方法,體現了基礎性和先進性的統一。
(4) 將面向對象的一些概念有機地滲透到過程化的內容中,如引用、函數重載、默認參數,這樣避免了在面向對象部分集中介紹過多的概念而使學生產生畏難心理。
(5) 強調算法的分析訓練,有利于在學時緊張的情況下學生通過自學提高分析問題、解決問題的能力。
3 教學內容安排
結構化的程序設計是本課程教學的基礎和重點。結構化程序設計強調按照一定的結構形式來設計和編寫程序,不僅可以讓學生養成良好的程序設計習慣,而且可以有效地培養學生思維的條理性和邏輯性,這正是程序設計課程的主要教學目的所在。面向對象的程序設計也是以結構化為基礎,這充分表明了結構化程序設計的基礎地位。這部分內容在講解上強調算法分析、淡化語法細節,語法內容是程序實現的手段和工具,而不是學習程序設計的目標。
通過類和對象的介紹使學生了解面向對象方法的實質是強制通過函數來對數據進行操作,從而保證數據操作的安全性,這就是數據隱藏和封裝的思想;通過介紹派生類的繼承關系,使學生深刻認識面向對象方法對代碼重用的支持;而介紹多態性的關鍵在于讓學生了解基于虛函數的多態性的實質是允許將派生類的對象當作基類的對象使用,因而不必為每一個派生類編寫功能調用,從而實現接口的復用。這部分內容強調從實用出發,著重介紹基本的、主要的概念。而對從純理論研究著眼的一些概念,如繼承關系中的私有繼承以及多繼承中的諸多概念等,對于初學者來說過于復雜,要么不做展開討論,要么就干脆舍棄。
從結構化程序設計到面向對象的方法過渡時,要解決學生思維方式的轉換和銜接的問題。由于思維慣性,學生會將面向對象方法和結構化方法的比較貫穿于所設計的程序中。授課時要從學生的認識規律出發,不必急于空泛地強調面向對象方法的好處,要讓學生清楚面向對象的程序設計和結構化程序設計一樣,只是一種程序設計方法,它是為解決程序復雜性而產生的。就解決簡單問題而言,并非一定要采取面向對象的方法,也并非面向對象方法一定比結構化方法更好。結構化程序設計是從一個個具體的局部入手,描述問題的解決過程;而面向對象的方法是從全局的角度抽象出問題所涉及對象的整體框架,再來描述各層次、各部分的內在聯系。方法雖然因著眼點不同而不同,但面向對象的方法仍然是以結構化程序設計方法作為其代碼基礎的。這樣學生既了解了它們之間的區別,又認識到了其間的聯系。
4 考核體系
課程考核評價方面,建立了全新的考核評價體系,注重過程考核、編程實踐能力考核,改革后的課程評價考核體系主要體現了考核形式多樣化、考核標準合理化以及考核試卷個性化三大特征。
5 實驗教學
C 語言特別適合編寫系統軟件,執行速度快,代碼質量高,在進行系統控制、調節、測量、硬件驅動等方面具有獨特優勢,這些優勢必須要通過實訓室中軟硬件結合的程序設計方可體現。按照“少而精”的原則,壓縮并精選實驗項目與內容,提高教學效率,從而使實驗教學與理論教學的結合更加緊密。
開放實驗室,讓學生可自主選擇實驗時間、自主選擇實驗內容,為學生提供勇于探索、敢于創新的外部環境。
建設了與課程相配套的具有我院特色的實驗環節: 課程設計、項目分析設計、科研開發等??荚嚪绞剑荷蠙C實驗和考試結合,增加機試,借助編程題自動評分系統考核學生實際編程能力;開發編程題自動評分系統,向無紙考試過渡;開發題庫系統,為機考提供支持;開發在線教學網站,拓展教學空間。
課內實驗教學兼趣味性和實用性于一體,課余通過指導學生參加科技創新活動、各種程序設計大賽、學生俱樂部的各類小型軟件開發項目,達到鞏固知識、鍛煉能力、提高素質的目的。
6 結束語
通過幾年來的實踐,我們加強教學的內容選取、組織形式、實例貫穿、上機實踐、課時安排、教學環境與利用、教學評價與考核等多個環節的改革,取得了相當不錯的教學效果。
參考文獻:
[1] 龔沛曾等. 案例教學法在"Visual Basic程序設計"課程中的應用[J]. 計算機教育,2004,(5): 62-63.
[2] (美)HM.DeitelP.J.Deitel著.C++編程金典第三版[M].北京:清華大學出版社,2005.
[3] 張春興.教育心理學[M].杭州; 浙江教育出版社,2006.
[4] 龔沛曾,楊志強主編.C/C++程序設計教程[M].北京:高等教育出版社,2004.
[5] 劉鵬,安玉潔. 微格教學的多元化架構[J]. 電化教育研究,2007,(9).
結構化程序設計范文3
[關鍵詞]軟件開發;面向對象方法;結構化方法
中圖分類號:tp311.52 文獻標識碼:a 文章編號:1009-914x(2013)07-0065-01
一、軟件系統的開發過程
軟件可劃分為智能軟件、系統軟件和應用軟件三個領域。由于不同的軟件采用的開發知識不同,從而構成各自相應的方法。盡管,智能軟件和應用軟件分屬不同的領域,但智能軟件和應用軟件都是計算機軟件。建造軟件系統的解決方案由三個關鍵的相互關聯的基本要素組成:1.軟件工程過程(sep)。2.軟件工程過程支持環境(sepse,如開發工具和建模語言等)。3.培訓、指導和咨詢服務。
二、當前主流的軟件開發方法
(一)結構化方法
1.結構化程序設計方法
20世紀60年代,圍繞是否應取消goto語句,人們展開了一場激烈的爭論。最終人們認識到,軟件開發中的問題的解決不僅僅是簡單的取消goto語句,而是應該改變傳統軟件開發思維觀念,在此基礎上創建新的程序設計方法。
圍繞goto語句爭論的結果使人們形成了新的思維觀念:編寫程序時,在正確地實現了軟件功能的前提下,必須考慮到程序的可維護性,重視程序的可讀性、清晰性和可理解性,而不能隨心所欲地去過分追求程序編寫技巧。
由于使用三種基本程序結構(順序、選擇、循環)組成的程序具有良好的可讀性、清晰性和可理解性,容易維護,所以逐漸成為主流的程序結構標準。按照這樣的新思維觀念,形成了一個新的程序設計方法—結構化程序設計方法,結構化程序設計是根據結構程序設計原理,將每個模塊的功能用相應的標準控制結構表示出來,從而實現詳細設計。
2.結構化分析方法和結構化設計方法
結構化程序設計方法的巨大成功推動了結構化分析方法和結構化設計方法的發展。結構化分析方法根據分解與抽象的原則,按照系統中數據處理的流程,用數據流圖來建立系統的功能模塊,從而完成需求分析工作。
結構化設計方法使用模塊化和自頂向下逐步細化技術,將數據流圖等結構化分析的結果轉化為軟件系統總體結構,用軟件結構圖來建立系統的物理模型,實現系統的概要設計。
結構化軟件開發有效地遏制了軟件危機的蔓延,直到現在仍在發揮作用。結構化方法簡單實用,技術成熟,應用廣泛,但難以承擔大規模的項目或特別復雜的項目,難以解決軟件重用(復用)問題,難于適應需求變化,且軟件維護依然比較復雜。
(二)面向對象方法
面向對象軟件開發方法包括面向對象分析方法(object-orientedanalysis,簡稱ooa)、面向對象設計方法(object-orienteddesign,簡稱ood)和面向對象程序設計(object-orientedpro-gramming,簡稱oop),其核心是面向對象程序設計方法。
一般認為軟件由程序和文檔組成,而程序又由數據結構和算法組成,在傳統的程序設計方法中,數據(數據結構)和施加在數據上的操作(算法)被分離成兩個獨立的部分,而程序被看作是工作在數據上的一系列過程或函數的集合,然而客觀世界的實體既有靜態的屬性(即數據),又有動態的行為(即對數據的操作),因此這兩方面內容密切相關,由于傳統的程序設計方法將這兩方面內容分離,無形中加深了問題空間與解空間之間的裂痕,增加了軟件開發的難度。
相反,面向對象方法有下列要點:客觀世界是由各種對象(object)組成的,復雜對象可以由簡單對象組成。有共同屬性和方法的一組對象抽象為一個類(class)。一個類(子類)可以繼承另外一個類(父類)的方法和屬性,這一特性稱為繼承。對象之間通過傳遞消息進行通信。
以上特點可以歸結為如下的公式:object-ori-ented=object+classification
+inheritance+commu-nicationwithmessages。在面向對象程序設計方法中,數據和施加在數據上的操作被封裝在一起,形成類和對象的概念,用對象分解取代了傳統方法的功能分解。這一思維觀念創新使得問題空間與解空間的結構基本一致,有利于軟件復用,也與人們通常認識世界的思維方式相符,
更利于加強代碼的易懂性。
在面向對象程序設計方法基礎上,許多面向對象分析和設計(ooa/ood)方法被提出,比較著名的如wirfs-brock方法、booch方法、coad/yourdon方法、對象建模技術omt(objectmodelingtechnique)、面向對象軟件工程oose(object-orientedsoftwareengineering)等。這些面向對象分析和設計方法各有各的特點,為了吸收它們各自的優點,形成統一的面向對象分析和設計方法,booch、jacobson和rambaugh三人合作,于20世紀90年代后期提出了統一建模語言uml(unifiedmodelinglanguage)。在uml基礎上形成的面向對象軟件開發方法開始得到廣泛的應用,成為20世紀90年代直到目前占主導地位的軟件開發方法,面向對象程序設計方法這一思維觀念創新可以被稱為程序設計方法的第二次飛躍。
然而,在面向對象方法中,軟件開發階段的劃分是比較模糊的,通常要在分析、設計與實現等階段間進行多次迭代。
(三)形式化方法
隨著科技的發展,計算機軟件越來越多地被用來執行那些可能會導致嚴重后果甚至危及生命的任務,例如宇宙飛船發射、鐵路安全監控和核反應堆監控等任務,這些系統的軟件復雜性遠遠超過一般軟件,如何在軟件復雜性增加的情況下仍能確保軟件執行結果安全可靠至關重要,達到這一目標的一種途徑就是使用形式化方法。
軟件工程中的形式化方法就是依靠數學模型和計算來描述和驗證一個目標軟件系統的行為和特性,包括需求規格、設計和實現等,形式化方法最根本的特征就是建立在嚴格的數學基礎上,如果一個方法有良好的數學基礎(這個基礎提供一系列精確定義的概念,如:一致性和完整性,以及定義規范的實現和正確性),那么它就是形式化的,典型的以形式化規約語言給出。
形式化方法能很好地解決在軟件開發中經常出現的二義性問題,因為形式化方法主要是符號系統,這種符號系統具有一定的數學性質。
形式化方法也有其缺點,首先是規范所使用的數學工具與模型并不能保證規范的絕對正確和安全性;其次是對于任何一種數學規范,在其基本的數學意義下,針對不同的工程背景,并不是只有一種解釋。當然,這些不是二義性問題,而是不同領域對規范的解釋和相容性問題。
三、結論
計算機和網絡技術的發展及其在企業中的應用,產生許多新的生產模式。這些新的模式對產品進行生命周期的設計和管理提出了進一步的要求。結構化方法和面向對象方法是現今主要的軟件開發過程方法。結構化方法貫徹自頂向下逐步細化的“功能分解”思想,其基于功能分解的特點,使之不足明顯。面向對象方法則是從問題域中客觀存在的事物出發來構造系統,用對象作為對這些事物的抽象表示,并以此作為系統的基本構成單位,面向對象方法和結構化方法的相比有了更大的進步。
參考文獻
結構化程序設計范文4
關鍵詞:C語言教學結構化程序設計編程
成人院校的學生多為在職職工,進修性質的學習,使得學生的學習時間相對較少,學習興趣也不甚濃厚,對于與工作相關的專業課程,還能夠投入時間、精力去學習,而與工作關聯較少的基礎課程,則往往成為被忽略的對象。C語言作為哈爾濱航空職工大學的專業基礎課,在??坪捅究贫奸_設了此門課程。
回顧十三年的C語言教學歷程,學生從全日制的大專,到函授本科生,教法也從傳統的板書,到多媒體教學,從先理論后實踐,到理論實踐相結合,授課方式不斷調整、變化,但對于成人教育的學生來說,收效甚微。于是換位思考,在提高自身教學、教法的基礎上,從學生的視角來看,如何能提高對C語言課程的興趣,怎樣才能夠增強對C程序的理解,學完C程序后能夠收獲什么?然后針對這些問題展開教學,取得不錯的效果?,F就本人在教學過程中總結出的C語言教學存在的問題及教學方式探索共同予以分享、交流。
一、成人院校中C語言教學存在的問題
(一)語言類課程,讓人望而生畏。
語言類課程,無論是對于計算機專業還是其他專業的學生,給人的感覺都是抽象、不好描述,毫無規律可循的,再加上用英文編寫程序,很容易讓人先入為主,敬而遠之。既有抵觸情緒在先,又有學習困難在后,學生往往缺乏學習興趣,望而卻步或知難而退。
(二)學生基礎薄弱,學時短。
作為附屬于哈飛公司的成人教育院校,學生多是企業在職職工,人員類型除了技校、職高就是一些職業院校的學生,學習基礎薄弱,學習興趣不足,而且作為在職職工,工學矛盾也較為突出,利用業余時間進行的學習,一是無法保證出勤率,影響聽課效果。二是學習時間短,課堂容量大,灌輸式的教學,加之學生沒有消化的時間,基本上是這次課教師講明白、學生聽明白,下次上課只有老師一個人明白的狀態。
(三)學習沒有目標,缺乏動力。
作為企業職工再進修,沒有找工作的壓力,學生沒有的學習目標,不知道學習這些課程對自身有什么用處,缺乏動力的學習,就使得學生在學習的課程一旦遇到困難,或者缺次勤,落點課,就知難而退,越不會越不學,越不學越不會,進入惡性循環的怪圈。
C語言的教學過程,學生往往是剛開始時勁頭十足,你來我往,課堂互動較多,但當知識累積的越來越多時,學生沒有時間、精力去消化、吸收,一旦需要將知識綜合運用時(自己編程時),就會遇到瓶頸,在缺乏學習動力的前提下,大多數學生都會選擇放棄,小部分學習的學生也是一知半解,似懂非懂,這時課堂互動就會消失,也就意味著后面的課程基本上就白講了。
結合多年來講授不同層次、不同專業C語言課程積累的經驗,經過對C語言教學教法的不斷探索、嘗試后,本人對C語言的教學進行了教改嘗試,經過實踐教學,效果良好。
二、C語言教學改革探索
(一)設定目標,增強學習動力。
成人院校與高校不同,學生的學習目的也不同。在進行C語言教學時,為提起學生的學習興趣,加強學生的學習動力,我首先根據學生的實際工作情況為學生設立學習目標。
1、職業生涯規劃,助力計算機考試
作為企業的一員,在職業生涯發展過程中,除需要相應的技術專業要求,計算機也往往作為考核的一部分。簡單的C程序作為計算機考試的一部分,會讀程序,分析程序,進行簡單的C程序設計,可以為學生的計算機考試錦上添花。
2、學習結構化程序設計語言,為數控加工打基礎
作為航空工業,數控加工在公司中占有較為重要的一席之地,我為學習C語言的學生設立的第二個目標是,通過學習C語言,掌握“結構化的程序設計方法”,為數控加工的編程打下基礎,從而調動學生學習的積極性。
(二)精簡課程,寧缺毋濫。
在為學生設立學習目標后,針對大多數學生的基礎,對所教授課程進行刪減,不求大而全,只求短而精,讓學生在能夠接受的范圍內,做到C語言入門級,實現課前設計的學習目標。如果有特殊需要的學生,在上機訓練的間隙,可以進行單獨交流。比如,C語言的課程,理論加上機訓練36學時,學生講到數組時,就已經摸不著頭腦。本著學即能用的原則,將課程減到結構化程序設計,讓學生能夠熟練使用三種結構化的程序設計語句。
(三)通過程序教學,細化、深化知識點。
鑒于成人院校學生的特殊性及對語言的認知程度,也通過幾年的教學摸索,發現灌輸式的理論教學已很難被學生所接受,課堂效果與知識綜合運用的效果不甚理想。
通過挑選幾個簡單的不同類型的程序,進行對比講解,找出其中的共同點,讓學生了解程序的構成,并將程序的構成模塊化,規律化。學生編程時采用“填空式”進行。比如,在學習C語言初期,摒棄掉枯燥的理論講解,通過直接對比“輸出一行信息”和“計算兩個整數的和”兩個程序,讓學生知道程序的基本構成,必須包括的部分(告訴學生這些都是固定的,編程時加上即可):主函數的形式main( ){ },主函數中必須有語句,且語句必須以;結束,在“輸出一行信息”中的語句是由輸出函數(printf函數)構成,函數之所以可以變成語句,就是因為;的存在,輸出函數的標準格式是什么樣,這樣逐層剝繭,由外而內,由粗至細,一點點講解,漸進式的添加到程序中。當學生對程序逐漸熟悉之后,在反其道行之,通過程序,逐步細化、深化需要掌握的理論知識。
在整個授課過程中,始終保持以程序案例為主線,通過程序來逐步加入新的知識點。同時讓學生上機調試程序,通過調試過程中的錯誤提示來加深對知識點的理解和運用。解決程序錯誤的過程就是知識點重復學習、加深印象的一個過程,有助于學生牢記知識點。
(四)鍛煉學生讀程序、分析程序的能力。
在C語言學習的過程中,我不急于要求學生編寫程序。而是通過編寫不同類型的小程序讓學生來讀,分析程序運行后的結果,再通過上機調試,跟蹤程序運行的方式,找出程序分析過程中出現錯誤的地方。比如:以Turbo C為例,在進行到結構化程序設計部分時,學生對于結構化程序設計理解不夠。在上機運行過程中,通過讓學生使用F7來進行選擇結構的單步跟蹤,有循環結構的時候使用F8進入循環內部跟蹤,并通過使用變量跟蹤的功能,來分析每發生一次循環變量的變化。通過這種分步跟蹤程序步驟的方式,使學生能夠清晰地跟蹤到程序的具體執行過程,有助于學生對程序的理解和分析。
(五)結合教學,將課堂搬到多媒體機房。
為了能更好地貫徹理論實踐相結合的教學方法,將課堂搬到多媒體機房進行的教學方式是最好的,在多媒體課件演示、白板板書和實際上機訓練三方面的交互配合下,學生學習的知識能夠及時得到驗證,發現的問題能夠及時得到解決,從而使學生對C程序的理解和認知程度有了較大的提高,大大地延長了學生保持學習熱情的時間。為學習目標的實現奠定基礎。
結構化程序設計范文5
關鍵詞:C語言;編譯器;教學問題;教學改革
中圖分類號:G424 文獻標識碼:A 文章編號:1009-3044(2015)06-0143-02
On the Teaching of C Language
WANG Xiao-li, HUANG Yan
(Henan Information Engineering College, Zhengzhou 450000, China)
Abstract:C Language is a good structured programming language. At present, it is an important basic and practical course on computer, information management and so on.But now as for the teaching process, the different operating results caused by the diversification of operating environment makes the students very confused. Therefore, we should emphasize the results of the calculation process in classroom teaching and practice. Thus, this paper will analyse from different operating results plus decrement problems.
Key words:C Language; compiler; teaching problem; reform in education
當前,電子信息化的時代,計算機的應用技術飛速發展,程序設計技術也從結構化程序設計技術不斷地向面向對象程序設計技術過渡,雖然,對于規模較大的應用程序,總體框架是由面向對象程序設計而搭建,但在局部實現過程還有許多仍需采用結構化程序設計技術。C語言是高級語言中的低級語言,也是一種很好的結構化程序設計語言,因此,在全國各高?!禖語言程序設計》依然占據這重要的地位,也是計算機、信息管理相關專業必修的一門基礎課程。但其豐富的功能、多樣化的運行環境,給初學者帶來了很多困惑。本文就C語言教學過程中具體遇到的問題進行分析。
1 C語言的優勢與特點
C語言是目前使用最廣泛的一種計算機高級程序設計語言,具有數據類型豐富,概念簡潔,通用性好,表達能力強等特點,而且用法靈活,可讀性好,有利于讀者培養其良好的編程習慣,是一種既適合系統程序設計,又適合應用程序設計。因此,贏得了廣大編程人員的喜愛,得以廣泛應用。由此,也成為高校中計算機及相關專業的必修課。
每一種事物得以存在和發展,都有其自身不可忽略的特點,語言也不例外,當然,C語言的發展也有著不同于甚至優于其他語言的特點。具體特征包括:
1) C語言是一種結構化語言
結構化語言就是將自然語言加上程序設計語言的控制結構就成了結構化語言,它顯著特點就是代碼和數據的分隔化,換言之,程序各部分除必要信息交流外彼此互不影響。
2) 簡潔、緊湊、靈活
C語言一共有43個關鍵字,包括通用關鍵字32個,擴充關鍵字11個;9種控制語句。程序書寫形式自由,主要用小寫字母表示。
運算符豐富。C的運算符包含的范圍很廣泛,共有34種運算符。C把括號、賦值、強制類型轉換等都作為運算符處理,從而使C的運算類型極其豐富,表達式類型多樣化。靈活使用各種運算符可以實現在其他高級語言中難以實現的運算。
3) 語法限制不嚴格
C語言語法限制不太嚴格,程序設計自由度比較大,例如對數組邊界不作檢查,整型、字符型數據可以通用等等,這些都需要由程序編寫者自行確保程序的正確性。
4) 運算符豐富
C語言共有44種運算符。C語言中把括號、賦值、強制類型轉換等等都作為了運算符處理,即可以實現其他高級語言中難以實現的運算。此外,C語言數據結構也非常豐富,基本涵蓋了各種數據類型。主要包括基本類型(字符型、整型、實型、枚舉型)、空類型(void)、構造類型(數組、結構體、共用體)和指針類型等。從而可以實現各類復雜的數據結構(如鏈表、樹、棧等)的運算。
5) 功能強大
C語言有著豐富的庫函數,強大的圖形功能及其預處理能力,與其他語言容易接口,可直接對硬件進行操作。比如PASCAL語言、匯編語言、數據庫語言等。而且,C語言還可以直接調用DOS命令。由此,當前工業計算機控制系統開發過程中,C語言成為了越來越多編程人員編寫控制軟件的首選。
由此,有人把C語言稱為“高級語言中的低級語言” ,也有人稱它為“中級語言”。它具有很多只有像匯編語言才具備的功能,比如直接訪問物理地址等。但它又具有高級語言的編寫容易,較高的可讀性特點,這就使程序員不僅減輕負擔,而且效率提高,同時,C語言編寫的程序具有更好的可移植性。
2 C語言教學問題
目前,結合C語言的特點,C語言的教學方法也越來越多樣化,而隨著教學改革,在教學過程中采用的編譯運行環境也多樣化,方便C程序的實現的同時也給教學過程帶來了相應的問題。
在某些運行問題中不同的運行環境造成的結果是截然不同的。目前常用的C語言的編譯運行環境包括Turbo C、Visual C++、Vs2008、Win-TC、C-free等,在教學過程中,運用比較多的就是Turbo C、Visual C++、C-free。但是就在這些編譯運行環境講解時問題也應然而生,尤其在自加自減運算過程中,所得結果是截然不同的,主要原因是自加自減自身運算規律和編譯過程中運算順序不同而造成,例如,現有程序:
#include
main( )
{
int i=5,j=4,p,q;
p=(i++)+(i++)+(i++); /*后置形式。*/
q=(--j)+ (--j)+(--j); /*前置形式。*/
printf(“i=%d,p=%d\n”,i,p); /*輸出i,p運行結果*/
printf(“j=%d,q=%d\n”,j,q); /*輸出j,q運行結果*/
}
針對于編譯器Turbo C而言,運行結果:
i=8,p=15
j=1,q=3
針對于VC++6.0而言,運行結果:
i=8,p=15
j=1,q=5
分析在此程序中對于Turbo C和VC++6.0兩種編譯器運行結果,可以看出,對于后置“先用后變”的規律是指在下一條語句執行前統一改變,而不是剛用完就變,相當于p=i+i+i;i=i+1, i=i+1, i=i+1; 對于前置“先變后用”的規律,執行結果就會與所用編譯器有關,針對C語言自身的編譯器Turbo C而言,先進行三次自減運算后再取j的值相加,相當于j=j-1, j=j-1, j=j-1;q=j+j+j;針對目前各類考試而使用的VC++6.0環境分析,先進行兩次自減運算,取其相加后,再進行第三次自減,取其相加得q值,等價于j=j-1, j=j-1;q=j+j; j=j-1;q=q+j;由此,學生第一時間看到課本的結果和上機實踐運行的結果就有了出入,造成了學生的困惑。此時,就應該在上課時具體分析后再讓學生進行上機實踐。
在實踐過程中要強調的是讓學生有目的地摒棄課本上已經過時的知識點,而找到目前正在盛用的知識。因此,在教學中不論是解決自加自減問題,還是空間分配問題,運行結果與編譯器有關的,我們都應該強調的是目前各類考試和實際操作所涉及的VC++6.0的運行規律及結果,而非課本中給出的Turbo C運行的規律和結果。
3 C語言教學改革
針對于C語言教學過程中出現的編譯器的差異而造成了結果不同,我們在教學過程中就不可以單一的針對課本講解,需要結合目前實際應用著手,因此,團隊合作項目驅動式實踐教學有效地改善了教學問題。
德國教育學家第斯多惠曾說:“教學的藝術不在于傳授本領,而在于激勵、呼喚?!眻F隊合作項目驅動式實踐教學主要是以現實問題為出發點,結合教學內容和進度選擇合適的項目,以教師為引導,由團隊合作完成具體任務。由此,學生可以從簡單的小程序的編寫開始了解程序基本語法和結構,并且以團隊合作形式可以互補每個學生的特點和知識點,逐漸加深知識點并達到靈活運用語言編程解決一定難度的實際問題。從而改變以教材實例為主體,減少學生死記課本知識,不會靈活應用的現象,而且激發了學生的思維和合作。并且還可以摒棄C語言講解過程中出現大量不同編譯器出現不同結果的情況出現。更實際地讓學生學以致用,利用目前最為超前的編譯器實現程序的運行。而非純理論的研究程序的運行過程。
在教學過程中,團隊合作項目驅動式實踐任務過程中,以一個實際問題為出發,由易向難過渡,貫穿整個C語言的基本知識點,從而可以使學生連貫性地掌握每一個知識點,并且團隊合作過程中每完成一個階段每個人都會體驗其中成功的喜悅,可以直接提升學生的學習興趣,并且以實踐彌補課本中古老的問題。從而全面地培養學生自主學習構建知識的能力,充分地體現了應用型教學“以能力為本位”的價值取向。
4 結論
教學改革的研究和實踐永遠是一項值得關注并且持續探索的過程,改善傳統教育中過分重視灌輸課本知識的現象是刻不容緩的,著重于學生素質能力和實踐能力的培養是目前教學的重中之重的任務,所以需要快速減少對于C語言這類課程出現的課本與實踐結論沖突的問題。因此,為了迎合目前國家的發展,滿足國家人才的需要,教師在教學中就應該及時改變不完善的傳統教學模式,不斷進行自我學習、自我探索,及時調整符合所帶課程的教學方案,逐漸提高學生分析問題、解決問題、駕馭知識的能力,培養國家真正需要的科技人才,在實踐中摒棄已經過時的知識,更新現有的知識體系。
參考文獻:
[1] 王窕珊.C語言編程教學方法探討[J].計算機光盤軟件與應用, 2011(9).
[2] 曹莎莎. C語言教學研究與思考[J]. Value Engineering, 2012,31(1).
[3] 鄧維斌,周玉敏.提高C語言實驗教學效果的探索[J].實驗室研究與探索,2006,25(3).
[4] 張學林,陳齊超,段珊,胡波.項目教學法在“C語言課程設計”中的研究與應用[J].實驗技術與管理,2011,28(2).
[5] 夏歡慶.C語言在計算機中的應用[J].電腦知識與技術, 2011,7(23).
結構化程序設計范文6
【關鍵詞】 面向過程 面向對象 開發方法 區別
在軟件開發過程中,有兩個非常成熟、經典的開發方法:面向過程方法和面向對象方法。本文就個人認識對這兩種方法的區別和聯系做出簡要闡述。
一、面向過程程序設計
面向過程程序設計基于結構化程序設計思想,強調程序結構規范為順序、選擇和循環三種基本結構,利用這三種結構的組合、嵌套,可以實現任何復雜的程序設計。遵循結構化程序設計思想設計的程序具有結構簡單、規范、易理解、易維護等特點,這給程序的設計和維護帶來了質的飛躍。
面向過程的程序設計方法,以算法為核心,把數據和處理過程作為相互獨立的部分,數據代表問題域中的實體,而程序代碼則用于處理這些數據。把數據和代碼作為分離的實體,采用計算機的觀點處理問題。計算機處理問題是分步進行的,要想讓計算機實現某種功能,必須告訴計算機詳細的解題步驟,即向計算機詳細描述求解算法。所以,面向過程程序設計就是按照計算機的要求,圍繞算法進行程序設計。
面向過程的程序設計方法,實質上是自頂向下的功能分解法,通過逐步求精的設計過程把程序分解成單一處理功能的模塊,進而通過參數傳遞調用相應模塊以實現程序的功能。系統功能的實現最終落實在相應的功能模塊上,此功能模塊可以理解為函數、過程、子程序、宏等。
以下通過C語言程序案例表述面向過程程序設計。
案例:
主功能模塊main(),通過調用子功能模塊swap(),實現兩個整型變量值的交換。
編碼實現:
#include “stdio.h”
int swap(int *p,int *q)
{int t; t=*p;*p=*q;*q=t;}
void main()
{int x,y;
scanf(“%d%d”,&x,&y);
printf(“交換前x=%d,y=%d\n",x,y);
swap(&x,&y);
printf(“交換后x=%d,y=%d\n",x,y);
}
二、面向對象程序設計
面向對象程序設計方法是盡可能模擬人類的思維方式,使得軟件的開發方法與過程盡可能接近人類認識世界、解決現實問題的方法和過程,也即使得描述問題的問題空間與問題的解決方案空間在結構上盡可能一致,把客觀世界中的實體抽象為問題域中的對象。
面向對象程序設計以對象為核心,該方法認為程序由一系列對象組成。類是對現實世界的抽象,包括表示靜態屬性的數據和對數據的操作,對象是類的實例化。對象間通過消息傳遞相互通信,來模擬現實世界中不同實體間的聯系。
在面向對象的程序設計中,對象是組成程序的基本模塊。
以下通過C++語言程序案例表述面向對象程序設計。
案例:
主功能模塊main(),通過調用swap類的對象change,實現兩個整型變量值的交換。
編碼實現:
#include “iostream.h”
class swap
{private:
int t;
public:
void exchange(int &x,int &y){t=x;x=y; y=t;}
};
void main()
{int m,n;
cin>>m>>n;
swap change;
cout
change.exchange(m,n);
cout
}
三、總結
面向對象的程序設計方法和面相過程的程序設計方法有著本質的區別。面向對象程序設計使用現實世界的概念抽象地思考問題,進而自然地解決問題,強調對現實世界的模擬而不強調算法,鼓勵項目組人員在軟件開發的過程中用應用領域的概念去思考,用對象的分解取代面向過程方法學中的功能分解,不再強調計算機解決問題的觀點,而是重視現實世界的模型創建。
參 考 文 獻