- 相關(guān)推薦
軟件工程C語言程序設(shè)計初探的論文
1教學(xué)中的問題
1.1教學(xué)只注重課程的講解,不注重教學(xué)過程的質(zhì)量控制
傳統(tǒng)的教學(xué)以課程內(nèi)容的講解為主,通過講解變量、循環(huán)、數(shù)組、指針等內(nèi)容,并結(jié)合一定的教學(xué)案例來推進教學(xué)過程的實施。這種傳統(tǒng)的教學(xué)方法沒有考慮到本階段學(xué)生的特點,往往造成教學(xué)效果差,教學(xué)質(zhì)量難以控制。C語言程序設(shè)計課程在大一新生中開設(shè),許多學(xué)生缺乏程序的思維和一定的動手能力,學(xué)生難以跟上教學(xué)進度,造成一定數(shù)量的學(xué)生對學(xué)習(xí)語言失去興趣,從而影響整個專業(yè)課程的學(xué)習(xí)。
1.2教學(xué)過程缺乏有效的互動
C語言程序設(shè)計的教學(xué)過程中主要使用PPT來講解,案例程序也通過PPT展示,甚至包括程序運行結(jié)果也以截圖的形式在PPT中顯示。雖然在PPT中可以添加很多的動作,動態(tài)地標(biāo)注、顯示程序的運行過程,但這種方法以投影為中心,缺少與學(xué)生交流的環(huán)節(jié),加上程序類課程相對枯燥,以致學(xué)生難以集中精力做到全程聽課。
1.3代碼編寫規(guī)范強調(diào)不夠
編碼規(guī)范是軟件專業(yè)學(xué)生必須要牢記并遵守的,良好的編碼規(guī)范不僅能體現(xiàn)軟件從業(yè)人員的素質(zhì),而且使代碼有更好的可讀性,更容易被別人所理解和交流。該課程的講解主要以編寫簡單邏輯來解決一些日常問題、數(shù)學(xué)問題,編程的環(huán)節(jié)側(cè)重于算法的實現(xiàn),往往忽略了編碼規(guī)范
。1.4考試以筆試為主,難以檢驗學(xué)生的動手能力
傳統(tǒng)的C語言程序設(shè)計課程考試以筆試為主,考查學(xué)生對C語言基本的語法、簡單邏輯編寫的掌握情況。這種考試機制脫離了程序語言的實現(xiàn)介質(zhì),即計算機。雖然在試卷中也可以用編程題目來考查學(xué)生的編程能力,但在紙上寫程序與在計算機上寫程序有本質(zhì)的不同。在紙上寫程序只需要寫出大致的邏輯即可,而在計算機上寫程序不僅要寫出正確的代碼,而且需要調(diào)試和跟蹤代碼,最終保證程序的正確執(zhí)行。因此,筆試并不能很好地檢驗學(xué)生的動手實踐能力。
2教學(xué)改革措施
2.1加強教學(xué)過程的質(zhì)量控制
C語言程序設(shè)計課程是一門實踐性強的課程,僅通過做一些常規(guī)練習(xí)無法達(dá)到教學(xué)質(zhì)量監(jiān)控的目的。為了更好地控制教學(xué)質(zhì)量,需要從學(xué)生語法規(guī)則的掌握到動手編程這一系列環(huán)節(jié)進行掌握和跟蹤。為此,我們開發(fā)了一套在線作業(yè)系統(tǒng)用于教學(xué)質(zhì)量的控制。⑴作業(yè)題庫的建設(shè)C語言程序設(shè)計的任課教師根據(jù)自己的經(jīng)驗和理解來搜集和設(shè)計C語言題目,包括基礎(chǔ)知識的題目和編程實踐的題目;A(chǔ)知識的題目主要用于C語言知識點的訓(xùn)練,包括填空題、選擇題、判斷題和程序閱讀題;編程實踐的題目主要用于編程能力的訓(xùn)練,這類題目需要學(xué)生對問題進行正確分析、設(shè)計算法、編程并運行,最終得到結(jié)果。教師在給出題目時,需要提供測試數(shù)據(jù)和對應(yīng)的結(jié)果。⑵作業(yè)的布置與批改教師可以根據(jù)每次課的教學(xué)大綱、課程內(nèi)容,從作業(yè)題庫中選擇一些填空題、選擇題、程序閱讀題、編程題來建立課程作業(yè)供學(xué)生在課外完成。學(xué)生在規(guī)定的時間之內(nèi)完成作業(yè)后提交作業(yè),系統(tǒng)根據(jù)教師預(yù)先設(shè)定的答案進行自動批改,形成每個學(xué)生的作業(yè)記錄。如果學(xué)生在規(guī)定的時間之內(nèi)沒有完成作業(yè)并提交則失去本次作業(yè)的記錄。教師通過查閱部分學(xué)生的解答來掌握學(xué)生對相關(guān)知識的掌握情況,特別是需要整理學(xué)生所犯的共性問題,并有針對性的開設(shè)習(xí)題課進行解答。⑶配套政策為了使學(xué)生重視平時作業(yè)的完成,課程的期末成績將考查平時作業(yè)的情況。如果學(xué)生沒有提交作業(yè)的次數(shù)在30%以上,則平時成績計0分,其他情況按照提交作業(yè)次數(shù)和作業(yè)得分根據(jù)一定的公式進行計算得到學(xué)生的平時成績。這種策略的主要目的在于督促學(xué)生跟著教學(xué)進度進行學(xué)習(xí)和訓(xùn)練,不至于嚴(yán)重滯后于教學(xué)進度而失去學(xué)習(xí)的興趣,可有力地保證教學(xué)質(zhì)量。
2.2加強教學(xué)過程中的互動
課堂教學(xué)應(yīng)該在一定程度上脫離PPT的教學(xué),這樣才可以調(diào)動學(xué)生的積極性。加強師生之間的互動可以結(jié)合本課程特點進行。在講解課程知識點后,配以適合的案例進行教學(xué),這些案例都是需要編寫C語言程序來實現(xiàn)的。此時,編程實現(xiàn)的環(huán)節(jié)不要通過PPT展示,而要在教師的計算機上動手編寫并運行得到結(jié)果,這樣可以改變教學(xué)節(jié)奏,吸引學(xué)生的注意力。C語言課程案例程序的一大特點是代碼量少,一般在20~30行之間,適宜在課堂上完成。教師在編寫程序的過程中,可以向?qū)W生展示編程中需要注意的問題,同時,進一步講解C語言的語法和基本知識點。教師在編寫程序的過程中難免會犯小錯誤,或者是有針對性的故意犯一些學(xué)生經(jīng)常犯的錯誤,在編程后的編譯運行時會有錯誤報出,這時對于提高師生交互是很好的機會。從學(xué)生的角度來說,他們的編程往往會有很多錯誤,編譯時會出現(xiàn)大量的錯誤提示。此時,學(xué)生可能就比較迷茫,不知道如何定位并解決錯誤。因此,當(dāng)老師也出現(xiàn)錯誤,而且是學(xué)生經(jīng)常遇到的錯誤時,學(xué)生往往是比較興奮的,希望能知道老師是如何處理錯誤的。從老師的角度來說,真實地反映程序編寫、編譯的過程,展示程序錯誤的發(fā)現(xiàn)、定位、解決的方法,能夠更快地提高學(xué)生的動手實踐能力。面對錯誤,教師還可以引導(dǎo)學(xué)生參與程序錯誤的解決,消除學(xué)生對程序錯誤的恐懼感。在解決程序錯誤時可以參考以下步驟。首先,教師要把所有錯誤信息讀出來給學(xué)生聽,因為一般編譯出來的錯誤是用英文寫的,而且有些單詞學(xué)生不熟悉,因此,老師需要指出錯誤是變量重定義、變量沒有定義、還是其他錯誤;然后,指出核心錯誤的位置,教師要告訴學(xué)生程序報出很多錯誤信息往往是由一個小錯誤導(dǎo)致的,因此,老師要指導(dǎo)學(xué)生學(xué)會確定引起其他錯誤的核心錯誤;最后,在源程序中找到錯誤的位置,修改錯誤并重新編譯,得出運算結(jié)果。這個錯誤處理過程是針對簡單語法錯誤的處理方法,如果程序中出現(xiàn)了邏輯錯誤,即程序編譯正確,但運行結(jié)果不是預(yù)期結(jié)果,此時,錯誤的處理方法更為復(fù)雜,可能需要重新檢查程序邏輯,并使用編譯環(huán)境進行程序中可疑變量的監(jiān)視,通過觀察變量中的數(shù)值在程序運行過程的變化來確定錯誤。通過實地編寫程序并調(diào)試,發(fā)現(xiàn)和解決程序錯誤,最終得到正確的計算結(jié)果,不僅能使同學(xué)更好地掌握程序編寫的方法,而且還能更好地與學(xué)生進行互動,提高教學(xué)效果。
2.3強調(diào)代碼規(guī)范
有些老師在教學(xué)的過程中特別是演示程序時,注重于解決問題而忽視代碼規(guī)范,甚至是自己寫程序也是這樣,沒有代碼規(guī)范。雖然遵守代碼規(guī)范并不能改善程序的性能,但遵守代碼規(guī)范能夠使程序具有更好的可讀性、可維護性,是軟件代碼實施過程中軟件從業(yè)人員良好素質(zhì)的重要體現(xiàn)。改善代碼規(guī)范可以從以下幾個方面進行。⑴適當(dāng)?shù)目s進每一行代碼不要頂格書寫,而要根據(jù)情況縮進。具有良好縮進格式的代碼不僅能少犯語法錯誤,還能夠使閱讀者快速掌握程序內(nèi)容。⑵適當(dāng)?shù)目招泻瘮?shù)與函數(shù)之間增加必要的空行,使得程序構(gòu)成一目了然。⑶適當(dāng)增加代碼注釋程序中函數(shù)的開頭最好加上注釋說明該函數(shù)的作用、參數(shù)的意義,在函數(shù)中重要邏輯的部分加入注釋說明該邏輯的主要思路、算法。⑷代碼塊要用花括號界定代碼塊盡量使用花括號來界定代碼范圍,即使代碼塊里只有一行代碼,這樣可以提高代碼的可閱讀性,防止閱讀者誤解程序。⑸變量和函數(shù)的命名盡量使用多個字母來命名變量和函數(shù),使得程序閱讀者通過名稱即可大致了解變量的意義、函數(shù)的作用,提高程序的可讀性。通過編碼規(guī)范的強調(diào)和實施,使學(xué)生認(rèn)識到軟件開發(fā)的專業(yè)素質(zhì),對于提高學(xué)生的專業(yè)素養(yǎng)具有潛移默化的作用。
2.4上機考試
上機考試采用在線考試的方式進行,考試環(huán)節(jié)包括如下幾個部分。⑴試題庫的建設(shè)C語言程序設(shè)計的任課教師負(fù)責(zé)組建上機試題庫,試題庫中的題目都是編程的題目,用于考核學(xué)生的編程能力。教師在組建試題庫時,標(biāo)明每個試題的知識點和大致難度,并提供測試案例和對應(yīng)的答案。題庫負(fù)責(zé)人負(fù)責(zé)查看、重新編輯每個題目,從題庫整體的角度更新每個試題的難度。⑵上機考試的實施為單次考試準(zhǔn)備7個知識點和1個綜合知識點的題目,教師在考試之前為每個知識點選定難度相當(dāng)?shù)?個題目。每個學(xué)生登錄系統(tǒng)后,系統(tǒng)自動建立考卷,具體策略是從為每個知識點準(zhǔn)備的5個題目中隨機選擇1題組成一個考卷,因此,該考卷包含8個題目,這8個考題要求學(xué)生在4小時內(nèi)完成編程?荚嚂r間一般定為上午8:00至中午12:00點。學(xué)生根據(jù)隨機組成的考卷題目進行解答,為每道題目編程求解,并在學(xué)生機上利用示例測試用例檢驗代碼的正確性。如果在本地沒有通過檢測,則進行邏輯檢查,修改程序;如果本地通過測試,學(xué)生需要將代碼提交到服務(wù)器。服務(wù)器接收到代碼后,自動調(diào)用教師提供的更多的測試用例來檢測程序運行結(jié)果是否與預(yù)先設(shè)置的結(jié)果匹配,進行代碼邏輯黑盒測試。如果全部通過,則說明學(xué)生的編程邏輯是正確的,此時將學(xué)生成績記錄中對應(yīng)的題目標(biāo)為通過,并回顯“通過”給學(xué)生,學(xué)生繼續(xù)做下一道題目;如果其中有的用例運行結(jié)果不正確,則返回“錯誤”給學(xué)生,學(xué)生可以接著做本道題目,也可以選做另外一道題目,同時,在學(xué)生成績記錄中對應(yīng)的題目標(biāo)為錯誤。教師在考試現(xiàn)場調(diào)取并查看所有學(xué)生成績記錄信息,如果發(fā)現(xiàn)異常信息,如在很短的時間內(nèi)完成了過多的題目,則可能學(xué)生在作弊。此時,根據(jù)異常學(xué)生信息中的IP地址找到該學(xué)生,進行現(xiàn)場查證,如果確認(rèn)為作弊則立即處理。如果學(xué)生正確完成了8道題中的5道題,則學(xué)生通過上機測試,否則,學(xué)生沒有通過上機測試。為了減輕學(xué)生的壓力,上機考試可以分兩次進行,如果第一次沒有通過上機考試,還可以組織學(xué)生進行第二次考試,取這兩次考試的較高分作為學(xué)生成績。
3結(jié)束語
C語言程序設(shè)計是軟件工程專業(yè)的一門重要的基礎(chǔ)課程,其教學(xué)效果直接影響后續(xù)語言類課程的教學(xué)效果。傳統(tǒng)的C語言程序設(shè)計在教學(xué)過程難以進行質(zhì)量控制;師生之間缺少良好的交互,沒有強調(diào)編碼規(guī)范,沒有進行機試測試,導(dǎo)致教學(xué)效果難以保證。為此,本文提出了一系列改革措施,這些措施包括:利用在線練習(xí)系統(tǒng)來保障學(xué)生的課程作業(yè)得到及時的完成;通過課程程序的現(xiàn)場編寫、編譯等措施,加強與學(xué)生的互動交流;強調(diào)編碼規(guī)范提高學(xué)生的專業(yè)素養(yǎng);通過在線考試提高學(xué)生的程序思維能力和動手實踐能力。通過這些措施,學(xué)生學(xué)習(xí)C語言的進度基本能夠得以保證。由于學(xué)生平時就被要求在作業(yè)系統(tǒng)中進行程序的編寫并在線評判,從而具有了良好的編程能力,而且所編寫程序有較好的編碼風(fēng)格,最終大多數(shù)學(xué)生能夠通過機試考試。實踐表明,本文所提出的改革措施提高了本專業(yè)學(xué)生的專業(yè)素養(yǎng)和動手實踐能力,有力地保證了后續(xù)語言課程的教學(xué)質(zhì)量。
【軟件工程C語言程序設(shè)計初探的論文】相關(guān)文章:
《C語言程序設(shè)計》課程教學(xué)探索04-29
C語言論文05-01
51單片機C語言程序設(shè)計經(jīng)典案例05-01
初學(xué)C語言程序設(shè)計的基本方法和技巧04-28
C語言論文致謝04-29
關(guān)于C語言程序設(shè)計教學(xué)的一些思考04-29