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