目前最著名、影響最大、應用最廣的三大操作系統windows、linux、UNIX都是用C語言編寫的。0S是壹個計算機系統(由軟件和硬件兩個子系統組成)的核心和靈魂,是最大最復雜的系統軟件。既然這麽龐大復雜的0都可以用C語言編寫,那麽狹義上有哪些系統軟件和應用軟件不能用C語言編寫呢?可以肯定的說,C語言是壹門非常優秀和重要的語言。
c編程語言是壹種過程編程語言。它的發展貫穿了計算機發展的歷程。它包含了編程的基本思想和概念,所以是理工科大學的壹門基礎課。
從市面上關於C語言的書籍和高校采用的教材來看,都有壹個* * *性格,就是脫離實際應用(都是小打小鬧的小例子),純過程化編程,沒有軟件工程思想的體現和壹定的編程風格,就是為了讓大家知道什麽是C語言。
高校開設C語言程序設計的目的是為了給學生壹個編程的入門和直觀的認識,同時也為後續的其他課程做鋪墊。但如果這是教學的唯壹目的,那麽從效果上來說,教學本身就是壹個極大的失敗。
眾所周知,在商業中,註重利潤是商業追求的目標。沒有利潤,就沒有經營的動力,結果無疑是慘敗。在C語言程序設計的教學中,教師應該把“唯壹的用處就是繪圖”作為教學的首要目標。如果拋開實際應用來進行編程教學,那就是紙上談兵,也就是“指令式”教學。印度的程序設計課程采用“事件驅動”教學,我認為中國的C語言程序設計教學應該采用“項目驅動”教學。“項目驅動”教學以項目為目標,以C語言理論教學為過程,最終可以用C語言設計項目,實現項目的要求。“項目驅動”教學的關鍵在於培養學生“怎麽做”和“能做什麽”。項目就是項目。在“項目驅動”教學中,首先要讓學生簡單了解什麽是軟件工程;其次,在C語言理論的教學過程中,要讓學生了解面向對象的編程風格;最後,要引導他們去設計項目。
(二)“項目驅動”教學應註意的問題
1.c語言程序設計的教學要幫助學生樹立工程觀。
在計算機行業,軟件是通過人的智力活動將知識和技術轉化為信息的產品。軟件設計已經用工程的概念來管理。軟件設計被視為壹個系統工程。軟件的生命周期壹般可以分為以下幾個階段:問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、運行和維護。我們不難看出,軟件工程的復雜性是很大的。理工科院校把C語言作為基礎課,也是為了給社會培養信息技術人才。眾所周知,養成壹個好習慣是非常重要的。所以,C語言程序設計作為大多數工科院校學生接觸的第壹門編程語言(部分院校講pascal),應該讓學生樹立正確的觀點。那麽現在的編程教學也必須以滿足未來軟件工程發展的實際需求為目標,讓學生在學習編程的初級階段就樹立正確的軟件工程觀。這不僅為學生今後從事計算機應用設計打下良好的基礎,也有助於培養學生分析問題的完整性和統籌兼顧、協調關系的基本素質。
2.理論教學應從單壹的“結構化程序設計”轉向“結構化和面向對象並重”
“結構化程序設計”方法是程序設計的基礎,學生必須牢固可靠地掌握。結構化程序設計的過程就是培養學生思維能力的過程,在教學中經常會發現壹些學生的思維混亂。這些都是缺乏思維訓練的結果。結構化程序設計的訓練不僅能使學生養成良好的編程習慣,還能有效培養學生思維的有序性和邏輯性。所以在教學過程中講解結構化程序設計的思想要突出兩點:(1)壹個程序的好壞首先取決於它的結構。(2)編程的基本方法是自上而下的逐步細化和模塊化。
在C程序教學過程中,學生越到後面的章節,學生設計程序的難度就會越大,這是壹個很奇怪的現象,是沒有邏輯的。按照常理來說,C語言學的越多,對編程的了解也就越多,設計程序應該會更加得心應手。那麽造成這種現象的原因是什麽呢?當然,造成這個問題的原因有很多,但最重要的壹個是,編程的理念不是基於如何處理對象,而是基於如何用好語言。受這種思想的影響,我們的編程教學大多不註重如何解題,而是講解語法規則和句子格式,這是壹種“手工”教學。這樣做的結果就是學生看到壹個程序後首先想到的是用哪個句子,而不是思考如何合理分析。要解決這個問題,首先要改變編程的觀念。“面向對象編程”的思想是目前最流行、最實用的編程方法,但讓學生直接接觸“面向對象編程”,肯定不會打下紮實的編程基礎。“結構化和面向對象”是現代計算機程序設計的發展趨勢,應該認真探索和學習,讓學生有壹個更輕松的學習過程。編程的本質是編寫和處理對象的過程,所以有機融合C和c++的教材應該是首選。在教學過程中,要從社會發展的角度進行探索和研究,將目前最流行、最實用的“面向對象程序設計”思想融入到C語言教學中。
3.c語言教學應培養學生良好的編程風格。
擁有良好的設計風格應該是程序員的基本素質。在實際項目中,程序員往往有自己的編程風格。目前95%以上的編程書籍都沒有關註編程風格的問題,導致很多學生沒有好的編程風格。在他們剛畢業進入社會的時候,如果周圍的同事沒有良好的編程風格,很難通過環境提高他們這方面的素質,即使有,也不容易全面提高。所以在學生接觸的第壹門編程語言的教學中,要培養學生良好的編程風格,讓他們壹進入工作環境就能具備這種品質。
Pascal的設計者N.Writh教授非常重視程序設計風格的發展。他堅信“教學生表達思維的語言會深深影響他們思考和發明的習慣,而正是這些語言的混亂直接影響了學生的編程風格”。他這裏指的是當時主要用於編程教學的計算機語言。對於學生來說,壹開始就要強調編程風格。良好的編程風格不僅有助於提高程序的可靠性、可理解性、可測試性、可維護性和可重用性,還能促進技術交流,提高軟件質量。所以對於初學者來說,培養良好的編程風格是非常重要的。
編程風格其實就是指編碼風格。在教學過程中,應從源程序文檔、數據解釋原理、輸入輸出方法三個方面培養學生的編碼風格,進而從編碼原理上探索提高程序可讀性和質量的途徑。
(1)文檔化源程序。編碼的目的是生成程序,而是提高程序的可維護性。源代碼需要文檔化。編寫源程序包括選擇標識符(變量和標簽)的名稱,安排註釋和標準的編寫格式。
(1)選擇標識符的命名規則。標識符包括模塊名、變量名、常量名、標簽名、子程序名等。這些名稱要能反映其所代表的實際事物,要有壹定的實際意義,這樣才能如其名。另外,在模塊名、變量名、常量名、標簽名、子程序名中使用下劃線也是壹種風格。使用這種技術的壹個眾所周知的命名規則是匈牙利命名法(變量類型由壹個或兩個字符表示,這些字符將被用作變量名的前綴)。當然,用不用匈牙利命名法也沒什麽問題。保持壹致性很重要——在整個程序中使用相同的命名規則。也就是說,如果妳是在團隊環境下編程,妳和其他團隊成員要制定壹個命名規則。並從頭到尾使用這個規則。如果有人使用其他命名規則,集成的程序將非常難以閱讀。此外,您應該與程序中使用的第三方庫(如果有)使用的樣式保持壹致。如果可能,您應該嘗試使用與第三方庫相同的命名規則,這將增強程序的可讀性和壹致性。
2條評論。程序中的註釋是程序員和程序讀者之間交流的重要手段。註釋可以幫助讀者理解程序,並為後續的測試維護提供清晰的指導信息。所以,評論很重要。大多數編程語言都提供了用自然語言編寫註釋的環境,給程序讀者帶來了極大的方便。註釋分為功能性註釋和介紹性註釋。
A.功能註釋。源程序中用函數註釋來描述下面的語句或程序段在做什麽,也就是解釋下壹步做什麽,而不是下壹步怎麽做。對於編寫功能註釋,要註意以下幾點:第壹,描述壹個程序,而不是每壹句話。其次,通過使用縮進和空行,程序可以很容易地與註釋區分開來。第三個音符要準確。
B.開場白。前言註釋通常位於每個程序模塊的開頭,對程序進行整體描述,對程序的理解起到指導作用。壹些軟件開發部門對前言註釋做了明確嚴格的規定,要求程序員壹壹列出。相關內容包括:節目標題;模塊功能和用途的描述;主算法;界面描述:包括調用形式、參數描述和子程序列表;相關數據的描述;模塊的位置(在哪個源文件或哪個軟件包中);開發簡歷:模塊設計者,復試測試,復試日期。
③使用標準的書寫格式。編寫源程序清單時,建議註意以下幾點:
A.每行只寫壹句話;
B.用層次縮進的方式顯示嵌套的結構層次,可以使程序的邏輯結構更加清晰,層次更加分明。
C.編寫表達式時,使用空格或括號作為分隔符。
d .在評論片段周圍添加邊框;
e .在評論片段和節目片段之間,以及不同節目片段之間插入文字;
(2)數據描述采用的原則。寫程序的時候要註意數據描述的風格。
如果數據描述的順序標準化,將有利於測試、調試和維護。首先,描述的順序要固定,比如用常量描述,簡單變量類型描述,用塊描述的數組描述,所有文件描述。當然,在類型描述中還可以進壹步要求,例如按照以下順序:整數數量描述、實數數量描述、字符數量描述、邏輯描述。
其次,在壹個語句中解釋多個變量名時,這些變量要按字母順序排列。
最後,對於復雜的數據結構,要用註釋來實現這種數據結構的特性。
(3)輸入/輸出方法。輸入/輸出方式和格式要盡量避免設計不當給用戶帶來的麻煩。這就要求源程序的輸入/輸出風格必須符合是否能被用戶接受的原則。因此,在設計程序時,應考慮以下原則:輸入數據時,輸入的步驟和操作應盡可能簡單,並允許自由形式的輸入;應該允許默認值;應檢查輸入數據,以確保每個數據的有效性。
㈢結束語
在教學過程中,我們要求學生設計壹個程序來模擬體育彩票的銷售和兌獎過程,取得了良好的效果。他不僅啟發和誘導學生獨立思考和積極思考的主動性,而且充分調動學生學習的自覺性和積極性,使學生全面掌握所學知識,提高分析和解決實際問題的能力。
C程序設計的教學涉及到很多因素。如果以項目驅動教學,首先要讓學生樹立面向工程的思想,然後把教學從單壹的“結構化程序設計”轉變為“結構化和面向對象並重”,最後培養學生養成良好的編碼風格,讓他們學會做什麽,那麽我們認為教學目的就達到了。