公務員期刊網(wǎng) 論文中心 正文

軟件工程C語言程序設計初探

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程C語言程序設計初探范文,希望能給你帶來靈感和參考,敬請閱讀。

軟件工程C語言程序設計初探

1教學中的問題

1.1教學只注重課程的講解,不注重教學過程的質量控制

傳統(tǒng)的教學以課程內容的講解為主,通過講解變量、循環(huán)、數(shù)組、指針等內容,并結合一定的教學案例來推進教學過程的實施。這種傳統(tǒng)的教學方法沒有考慮到本階段學生的特點,往往造成教學效果差,教學質量難以控制。C語言程序設計課程在大一新生中開設,許多學生缺乏程序的思維和一定的動手能力,學生難以跟上教學進度,造成一定數(shù)量的學生對學習語言失去興趣,從而影響整個專業(yè)課程的學習。

1.2教學過程缺乏有效的互動

C語言程序設計的教學過程中主要使用PPT來講解,案例程序也通過PPT展示,甚至包括程序運行結果也以截圖的形式在PPT中顯示。雖然在PPT中可以添加很多的動作,動態(tài)地標注、顯示程序的運行過程,但這種方法以投影為中心,缺少與學生交流的環(huán)節(jié),加上程序類課程相對枯燥,以致學生難以集中精力做到全程聽課。

1.3代碼編寫規(guī)范強調不夠

編碼規(guī)范是軟件專業(yè)學生必須要牢記并遵守的,良好的編碼規(guī)范不僅能體現(xiàn)軟件從業(yè)人員的素質,而且使代碼有更好的可讀性,更容易被別人所理解和交流。該課程的講解主要以編寫簡單邏輯來解決一些日常問題、數(shù)學問題,編程的環(huán)節(jié)側重于算法的實現(xiàn),往往忽略了編碼規(guī)范

。1.4考試以筆試為主,難以檢驗學生的動手能力

傳統(tǒng)的C語言程序設計課程考試以筆試為主,考查學生對C語言基本的語法、簡單邏輯編寫的掌握情況。這種考試機制脫離了程序語言的實現(xiàn)介質,即計算機。雖然在試卷中也可以用編程題目來考查學生的編程能力,但在紙上寫程序與在計算機上寫程序有本質的不同。在紙上寫程序只需要寫出大致的邏輯即可,而在計算機上寫程序不僅要寫出正確的代碼,而且需要調試和跟蹤代碼,最終保證程序的正確執(zhí)行。因此,筆試并不能很好地檢驗學生的動手實踐能力。

2教學改革措施

2.1加強教學過程的質量控制

C語言程序設計課程是一門實踐性強的課程,僅通過做一些常規(guī)練習無法達到教學質量監(jiān)控的目的。為了更好地控制教學質量,需要從學生語法規(guī)則的掌握到動手編程這一系列環(huán)節(jié)進行掌握和跟蹤。為此,我們開發(fā)了一套在線作業(yè)系統(tǒng)用于教學質量的控制。⑴作業(yè)題庫的建設C語言程序設計的任課教師根據(jù)自己的經(jīng)驗和理解來搜集和設計C語言題目,包括基礎知識的題目和編程實踐的題目?;A知識的題目主要用于C語言知識點的訓練,包括填空題、選擇題、判斷題和程序閱讀題;編程實踐的題目主要用于編程能力的訓練,這類題目需要學生對問題進行正確分析、設計算法、編程并運行,最終得到結果。教師在給出題目時,需要提供測試數(shù)據(jù)和對應的結果。⑵作業(yè)的布置與批改教師可以根據(jù)每次課的教學大綱、課程內容,從作業(yè)題庫中選擇一些填空題、選擇題、程序閱讀題、編程題來建立課程作業(yè)供學生在課外完成。學生在規(guī)定的時間之內完成作業(yè)后提交作業(yè),系統(tǒng)根據(jù)教師預先設定的答案進行自動批改,形成每個學生的作業(yè)記錄。如果學生在規(guī)定的時間之內沒有完成作業(yè)并提交則失去本次作業(yè)的記錄。教師通過查閱部分學生的解答來掌握學生對相關知識的掌握情況,特別是需要整理學生所犯的共性問題,并有針對性的開設習題課進行解答。⑶配套政策為了使學生重視平時作業(yè)的完成,課程的期末成績將考查平時作業(yè)的情況。如果學生沒有提交作業(yè)的次數(shù)在30%以上,則平時成績計0分,其他情況按照提交作業(yè)次數(shù)和作業(yè)得分根據(jù)一定的公式進行計算得到學生的平時成績。這種策略的主要目的在于督促學生跟著教學進度進行學習和訓練,不至于嚴重滯后于教學進度而失去學習的興趣,可有力地保證教學質量。

2.2加強教學過程中的互動

課堂教學應該在一定程度上脫離PPT的教學,這樣才可以調動學生的積極性。加強師生之間的互動可以結合本課程特點進行。在講解課程知識點后,配以適合的案例進行教學,這些案例都是需要編寫C語言程序來實現(xiàn)的。此時,編程實現(xiàn)的環(huán)節(jié)不要通過PPT展示,而要在教師的計算機上動手編寫并運行得到結果,這樣可以改變教學節(jié)奏,吸引學生的注意力。C語言課程案例程序的一大特點是代碼量少,一般在20~30行之間,適宜在課堂上完成。教師在編寫程序的過程中,可以向學生展示編程中需要注意的問題,同時,進一步講解C語言的語法和基本知識點。教師在編寫程序的過程中難免會犯小錯誤,或者是有針對性的故意犯一些學生經(jīng)常犯的錯誤,在編程后的編譯運行時會有錯誤報出,這時對于提高師生交互是很好的機會。從學生的角度來說,他們的編程往往會有很多錯誤,編譯時會出現(xiàn)大量的錯誤提示。此時,學生可能就比較迷茫,不知道如何定位并解決錯誤。因此,當老師也出現(xiàn)錯誤,而且是學生經(jīng)常遇到的錯誤時,學生往往是比較興奮的,希望能知道老師是如何處理錯誤的。從老師的角度來說,真實地反映程序編寫、編譯的過程,展示程序錯誤的發(fā)現(xiàn)、定位、解決的方法,能夠更快地提高學生的動手實踐能力。面對錯誤,教師還可以引導學生參與程序錯誤的解決,消除學生對程序錯誤的恐懼感。在解決程序錯誤時可以參考以下步驟。首先,教師要把所有錯誤信息讀出來給學生聽,因為一般編譯出來的錯誤是用英文寫的,而且有些單詞學生不熟悉,因此,老師需要指出錯誤是變量重定義、變量沒有定義、還是其他錯誤;然后,指出核心錯誤的位置,教師要告訴學生程序報出很多錯誤信息往往是由一個小錯誤導致的,因此,老師要指導學生學會確定引起其他錯誤的核心錯誤;最后,在源程序中找到錯誤的位置,修改錯誤并重新編譯,得出運算結果。這個錯誤處理過程是針對簡單語法錯誤的處理方法,如果程序中出現(xiàn)了邏輯錯誤,即程序編譯正確,但運行結果不是預期結果,此時,錯誤的處理方法更為復雜,可能需要重新檢查程序邏輯,并使用編譯環(huán)境進行程序中可疑變量的監(jiān)視,通過觀察變量中的數(shù)值在程序運行過程的變化來確定錯誤。通過實地編寫程序并調試,發(fā)現(xiàn)和解決程序錯誤,最終得到正確的計算結果,不僅能使同學更好地掌握程序編寫的方法,而且還能更好地與學生進行互動,提高教學效果。

2.3強調代碼規(guī)范

有些老師在教學的過程中特別是演示程序時,注重于解決問題而忽視代碼規(guī)范,甚至是自己寫程序也是這樣,沒有代碼規(guī)范。雖然遵守代碼規(guī)范并不能改善程序的性能,但遵守代碼規(guī)范能夠使程序具有更好的可讀性、可維護性,是軟件代碼實施過程中軟件從業(yè)人員良好素質的重要體現(xiàn)。改善代碼規(guī)范可以從以下幾個方面進行。⑴適當?shù)目s進每一行代碼不要頂格書寫,而要根據(jù)情況縮進。具有良好縮進格式的代碼不僅能少犯語法錯誤,還能夠使閱讀者快速掌握程序內容。⑵適當?shù)目招泻瘮?shù)與函數(shù)之間增加必要的空行,使得程序構成一目了然。⑶適當增加代碼注釋程序中函數(shù)的開頭最好加上注釋說明該函數(shù)的作用、參數(shù)的意義,在函數(shù)中重要邏輯的部分加入注釋說明該邏輯的主要思路、算法。⑷代碼塊要用花括號界定代碼塊盡量使用花括號來界定代碼范圍,即使代碼塊里只有一行代碼,這樣可以提高代碼的可閱讀性,防止閱讀者誤解程序。⑸變量和函數(shù)的命名盡量使用多個字母來命名變量和函數(shù),使得程序閱讀者通過名稱即可大致了解變量的意義、函數(shù)的作用,提高程序的可讀性。通過編碼規(guī)范的強調和實施,使學生認識到軟件開發(fā)的專業(yè)素質,對于提高學生的專業(yè)素養(yǎng)具有潛移默化的作用。

2.4上機考試

上機考試采用在線考試的方式進行,考試環(huán)節(jié)包括如下幾個部分。⑴試題庫的建設C語言程序設計的任課教師負責組建上機試題庫,試題庫中的題目都是編程的題目,用于考核學生的編程能力。教師在組建試題庫時,標明每個試題的知識點和大致難度,并提供測試案例和對應的答案。題庫負責人負責查看、重新編輯每個題目,從題庫整體的角度更新每個試題的難度。⑵上機考試的實施為單次考試準備7個知識點和1個綜合知識點的題目,教師在考試之前為每個知識點選定難度相當?shù)?個題目。每個學生登錄系統(tǒng)后,系統(tǒng)自動建立考卷,具體策略是從為每個知識點準備的5個題目中隨機選擇1題組成一個考卷,因此,該考卷包含8個題目,這8個考題要求學生在4小時內完成編程??荚嚂r間一般定為上午8:00至中午12:00點。學生根據(jù)隨機組成的考卷題目進行解答,為每道題目編程求解,并在學生機上利用示例測試用例檢驗代碼的正確性。如果在本地沒有通過檢測,則進行邏輯檢查,修改程序;如果本地通過測試,學生需要將代碼提交到服務器。服務器接收到代碼后,自動調用教師提供的更多的測試用例來檢測程序運行結果是否與預先設置的結果匹配,進行代碼邏輯黑盒測試。如果全部通過,則說明學生的編程邏輯是正確的,此時將學生成績記錄中對應的題目標為通過,并回顯“通過”給學生,學生繼續(xù)做下一道題目;如果其中有的用例運行結果不正確,則返回“錯誤”給學生,學生可以接著做本道題目,也可以選做另外一道題目,同時,在學生成績記錄中對應的題目標為錯誤。教師在考試現(xiàn)場調取并查看所有學生成績記錄信息,如果發(fā)現(xiàn)異常信息,如在很短的時間內完成了過多的題目,則可能學生在作弊。此時,根據(jù)異常學生信息中的IP地址找到該學生,進行現(xiàn)場查證,如果確認為作弊則立即處理。如果學生正確完成了8道題中的5道題,則學生通過上機測試,否則,學生沒有通過上機測試。為了減輕學生的壓力,上機考試可以分兩次進行,如果第一次沒有通過上機考試,還可以組織學生進行第二次考試,取這兩次考試的較高分作為學生成績。

3結束語

C語言程序設計是軟件工程專業(yè)的一門重要的基礎課程,其教學效果直接影響后續(xù)語言類課程的教學效果。傳統(tǒng)的C語言程序設計在教學過程難以進行質量控制;師生之間缺少良好的交互,沒有強調編碼規(guī)范,沒有進行機試測試,導致教學效果難以保證。為此,本文提出了一系列改革措施,這些措施包括:利用在線練習系統(tǒng)來保障學生的課程作業(yè)得到及時的完成;通過課程程序的現(xiàn)場編寫、編譯等措施,加強與學生的互動交流;強調編碼規(guī)范提高學生的專業(yè)素養(yǎng);通過在線考試提高學生的程序思維能力和動手實踐能力。通過這些措施,學生學習C語言的進度基本能夠得以保證。由于學生平時就被要求在作業(yè)系統(tǒng)中進行程序的編寫并在線評判,從而具有了良好的編程能力,而且所編寫程序有較好的編碼風格,最終大多數(shù)學生能夠通過機試考試。實踐表明,本文所提出的改革措施提高了本專業(yè)學生的專業(yè)素養(yǎng)和動手實踐能力,有力地保證了后續(xù)語言課程的教學質量。

作者:鄧澤林 單位:長沙理工大學計算機與通信工程學院