前言:想要寫出一篇引人入勝的文章?我們特意為您整理了計算機課程實驗設(shè)計探討范文,希望能給你帶來靈感和參考,敬請閱讀。
1建立專業(yè)的程序編寫習慣
程序是邏輯的組合,其本質(zhì)是代表人的邏輯模型思想。如何讓計算機讀懂我們的思想,在學習中最直接的方法就是編碼,通過程序編碼、編譯、連接后成為計算機能夠進行邏輯運行的指令,利用計算機的快速反應(yīng),較高的存儲效率,完成某個邏輯模型的解答。邏輯是解決問題的方法,那么,讓學生編寫出,清晰明了、簡潔高效的代碼,讓其表現(xiàn)出業(yè)務(wù)邏輯思想,是高校教師應(yīng)該考慮的教學問題。下面兩組代碼:要求用for循環(huán)實現(xiàn),如果用戶輸入數(shù)據(jù)為100,返回100以內(nèi)所以正整數(shù)之和,否則返回用戶的輸入數(shù)據(jù)。從代碼的比較來看,學生在程序編寫的過程中,暴露出了以下幾點問題:
(1)代碼編寫的可讀性差可以看出,學生在編寫代碼實踐過程中,其中的變量都用字母x,a,i等。而且代碼的布局沒有層次感,比如for循環(huán)后面,直接就寫了“a+=i”。反觀后者,局部變量命名有含義,而且各語句之間層次清晰、明了、可讀性強。
(2)代碼編寫,不注重編寫程序的技巧性代碼的技巧性不足,前者寫的邏輯判斷語句if(x==100),后者所寫的為if(100==nInputData)。雖然二者寫法都表示了當客戶輸入100后的邏輯,但是如果在編寫中,將“==”寫成了“=”,那么if(x=100)就是個“賦值恒真”邏輯。而if(100=nInputData)就是“賦值語法錯誤代碼”,在編譯階段,后者就會報錯;而前者就將成為程序的邏輯錯誤。
(3)程序運算的冗余性前者for(inti=0;i<100;++i),后者,for(intnIdx=1;nIdx<100;++nIdx),顯然,前者比后者多一次循環(huán),雖然不影響最后的結(jié)果,但是程序運算出現(xiàn)了冗余,顯得不夠?qū)I(yè)。造成上述的根源有兩方面的原因,學生對程序的認識不足,編寫代碼隨心所欲。其次是老師在計算機實驗教學中,不注重學生編寫程序的實踐練習,沒有對學生的日常作業(yè)或者實驗練習進行規(guī)范性要求。在計算機實驗過程中,需要編寫編碼規(guī)約,讓學生遵守編碼規(guī)則,讓其通過在編碼規(guī)約中去體會代碼編寫的要點。在掌握計算機語言的同時,編寫出簡潔、干凈的代碼程序。因為編寫程序也是一門藝術(shù)。雖然在開始實施有些困難,但是千里之行,始于足下,萬丈高樓起于累土,只有通過規(guī)范性的程序編碼,才能出現(xiàn)干凈、簡潔的程序代碼,以此來提升學生的實踐動手能力,也可以通過代碼規(guī)范,來規(guī)避一些在編寫程序中出現(xiàn)的技術(shù)問題,比如C++程序中,由于編程者用new申請對象,而不用delete釋放內(nèi)存的計算機資源管理問題。在計算機實驗教學中,通過建立規(guī)范程序編寫規(guī)約,幫助學生建立專業(yè)的程序編寫習慣,是提升學生掌握計算機語言的有效途徑。
2化自身專業(yè)素質(zhì)
軟件程序是邏輯思想的集合。邏輯思想的冗余會直接影響到程序運行的效率。比如數(shù)據(jù)存儲冗余,影響運行速度。對于學生而言,在上學期間,還無法接觸到對海量數(shù)據(jù)的處理。在計算機課程實驗中,經(jīng)常編寫的程序只有10幾行。處理的數(shù)據(jù)量最多也是在kb的數(shù)量級上。所以當學生編寫完應(yīng)用程序后,基本上不考慮程序的運行效率,因為無論用什么邏輯算法,處理結(jié)果都基本相同,計算機都會在2s內(nèi)完成邏輯運算。這就麻痹了學生對程序邏輯運行性能的認識,從而對程序邏輯算法無法擁有一個清楚的認知能力。這就出現(xiàn)了為什么軟件程序員多,但是高級軟件人才匱乏的原因之所在??v觀程序處理,抽象其本質(zhì),主要為排序、查找、存儲,相關(guān)業(yè)務(wù)的數(shù)學運算。這些都是課堂教學的基礎(chǔ),而這些往往也是我們學生容易忽略的地方。為何會忽略?因為他們在校學習期間,缺乏實際工作的實踐,缺乏對基礎(chǔ)知識的認識,重視度不夠高,最后參加工作后,往往做不到“信手拈來”。對于某些行業(yè),對程序的性能要求比較高,在這樣的業(yè)務(wù)下,可能會要求學生重構(gòu)哈希表、堆存儲等算法,才能夠解決業(yè)務(wù)上的性能要求。計算機實驗是對課堂知識的實踐,所以在實驗課程設(shè)計中,應(yīng)該突出基礎(chǔ)知識的差異性,以及其在工作中的實踐性。能夠結(jié)合實踐讓學生對課題知識擁有一個清楚的認識。比如在學習完成數(shù)據(jù)排序后,學習了冒泡排序、二分排序、快速排序等排序邏輯。針對上述內(nèi)容的課程實驗,通過實驗是讓學生能夠掌握上述算法思想,在課程實驗中讓學生實踐課堂上所學的專業(yè)知識,編寫相關(guān)算法程序,幫助學生強化自身專業(yè)素質(zhì)。在課程實驗中,經(jīng)常會看到這樣的一個題目“教師給予學生100以內(nèi)的20個隨機數(shù),讓學生分別應(yīng)用冒泡排序,二分排序依據(jù)快速排序?qū)ζ溥M行數(shù)據(jù)排序"。這樣的實驗內(nèi)容無可厚非,讓學生進行編程實踐掌握上述排序算法。但是這樣就會出現(xiàn)一個問題,哪就是無論是選擇用什么排序方法,計算機完成排序后所用的時間基本相同,完全無法體現(xiàn)出各種算法的優(yōu)越性。課程實驗設(shè)計應(yīng)該結(jié)合實踐工作,教師在計算機課程實驗的實踐過程中,可以結(jié)合對外軟件企業(yè),抽取部分相關(guān)業(yè)務(wù),讓學生進行課題練習。就以上述排序為例。以1G的企業(yè)財務(wù)文本文件數(shù)據(jù),讓學生對其中的某一財務(wù)數(shù)據(jù)為依托,讓其對文本文件內(nèi)的數(shù)據(jù)進行數(shù)據(jù)排序,并且輸出前200位數(shù)據(jù),輸出到另外的文件中。至于排序的算法,由學生自己選擇。大多數(shù)的學生在看到該題目后,在上機實驗中,大多數(shù)都選擇了冒泡排序算法,實現(xiàn)對該文本的排序,結(jié)果可想而知,由于數(shù)據(jù)量大,等學生完成了排序過程,啟動運行后,20分鐘內(nèi),都無法完成排序。而有的同學選擇了快速排序算法,3分鐘內(nèi),完成了該排序事務(wù)。顯然對于學生而言,這樣的課程實驗才是有效的,通過這樣的實驗,才能夠讓學生體會到邏輯的本質(zhì),對各種算法擁有清楚的認識。通過計算機課程實驗教學,提升學生的專業(yè)素養(yǎng)。
3結(jié)語
提升學生的程序語言認識是一個循序漸進的過程。計算機課程實驗教學主要注重學生動手實踐。需從作業(yè)準則、編碼規(guī)范,以及邏輯算法出發(fā),規(guī)范化實驗教學,通過專業(yè)化的知識培養(yǎng)與實踐,方可提升計算機課程實驗教學品質(zhì),提升計算機課程教學水平。
作者:董芳 單位:集寧師范學院計算機系