李響 呂勇 李月強
【摘 要】本文以Matlab為切入點,利用其易于上手、語法簡單、各專業工具箱豐富等優勢,將Matlab貫穿整個編程能力培養課程體系的構建,同時在教學方式和方法上也針對其特性進行了改革,試圖探索一條結合Matlab進行專業教育同時提高其編程能力的改革之路,并在實踐中取得了一定的成果。
【關鍵詞】教學改革 課程設置 編程能力 Matlab
【中圖分類號】G642 【文獻標識碼】A 【文章編號】1674-4810(2015)05-0009-02
計算機基礎教育主要是面向大學中非計算機專業學生的計算機教育,這部分學生約占全體大學生的95%以上。雖然對大部分非計算機專業學生進行計算機教育的目的是培養大批能使用計算機的人才,以及計算機應用人才。但對信息類專業(如計算機科學與技術、網絡工程、電子信息工程、通信工程、物聯網工程等)非計算機科學與技術專業的本科生來說,能編寫規范的程序代碼仍然是最基本的專業能力。從社會的需求來看,信息類非計算機專業人才僅具備良好的編程能力還遠遠不夠,還應具有軟件系統開發等各方面的能力。高校信息類專業課程體系中,程序設計類的課程占有相當的比重。常見的專業課有C語言程序設計、計算機軟件技術基礎、面向對象程序設計、匯編語言程序設計、網絡程序設計等。由于信息類專業的應用領域非常強調技術實現,普通高校學生必須具備較強的編程能力,才能滿足社會對人才的要求。
計算機技術和網絡技術的飛速發展,不僅促進了現代教育技術的不斷發展,也對經典數學課程的教學內容、教學方法以至教學思想產生影響。因此,根據面向21世紀人才培養的需要,有必要對工科數學課程的教學內容和教學手段進行適當的改革。更新教學理念,探索一種以計算機為輔助教學工具展開工科數學教學,并同時提高學生編程能力的全新的教學模式受到了國內外同行的普遍關注。在國外多所知名高校已開始利用計算機進行數學教學的實踐,并取得了不錯的教學成果。在國內也有部分院校正在積極地進行數學實驗課的教學研究,這已成為當前工科數學教學改革的熱點。依據人才培育要適應國家和社會發展需求的要求,提升非計算機專業學生編程技能的教改實踐已迫在眉睫。筆者所在學院針對信息科學類非計算機科學與技術專業的本科生,試圖探索一條結合Matlab進行專業教育同時提高其編程能力的改革之路。
一 存在的問題
1.課時不足
隨著高校課程體系的全面改進,為了寬口徑接入社會地培養學生,以便學生將來能有更廣闊的就業領域,信息類的各個專業被加入了越來越多的課程,所有課程均面臨著課時緊縮的問題,而程序設計類課程所受的影響尤其明顯。一方面要保證理論課的講授與教學,另一方面要保證學生動手編程能力的提高。理論課程的時間顯得非常緊張,必須在有限的時間內盡可能把該語言中各種各樣的知識點傳授給學生,還要保證他們能有足夠的課時在實訓課環節完成相關的實訓內容,為此在時間和教學上就要合理安排。
信息類非計算機專業的教學過程中,讓學生擁有更多的自主學習和操作時間,成為有效教學的必然要求,為了更好地滿足這一要求,需要對存在的客觀矛盾進行優化和解決。如隨著計算機技術的廣泛應用,在專業課學習的同時,要通過與計算機使用的交叉與融合,提升計算機教學內容的使用次數和頻度。這樣所增加的專業學科學習與計算機知識的學習能有效結合,在不斷應用計算機知識的過程中,學生的計算機水平得到了有效的提升。
2.學生自身水平影響
對類似我校的非重點高校的學生,學生的數學基礎普遍較弱,而編程相關知識抽象程度卻很高。學生的數學入學成績往往不夠理想,入學后對于數學類課程的學習沒有給予足夠的重視,造成學生的數學基礎不夠,使得學生對編程的學習與能力的提高非常困難。而如數據結構、算法設計與分析等與編程直接相關的課程比較抽象,對于缺乏數學思維的學生來說,難以得心應手地加以運用。同時由于我國計算機基礎教育開展的不均衡性,使學生在入校時計算機基礎水平存在著較大的差異。一部分學生可能因為前期教育等原因,基本沒有接觸過計算機,而一些條件好的學生則可能有著非常熟練的計算機操作和應用能力。因此,在非計算機專業計算機編程教學過程中,要客觀分析這種學生計算機基礎的差異,并就差異的類型和程度,做出一個客觀的分析,在此基礎上,提升信息類非計算機專業計算機編程教學的針對性和有效性,以更好地促進信息類計算機教學的開展效果。學生的基本水平與計算機專業素質千差萬別,特別是對于地方性普通本科院校,學生的理論基礎還不夠,編程能力更是有待提高。
除去基礎之外,學生的興趣也影響著編程能力的提高,大部分學生缺乏學習興趣,也沒有形成好的學習習慣。學生的自學能力與主動學習的意識相對不高,很多學生除了上課聽一些以外,很少在課下主動練習。另外,由于編程比較枯燥,沒有一定興趣是很難堅持下去的,而如何激發學生對編程的興趣,在目前教學過程中,又顯得手段薄弱。
二 Matlab切入的優勢
選擇Matlab作為切入點,以提高信息類非計算機專業大學生的編程能力,具有得天獨厚的優勢。
1.Matlab的特色
Matlab是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括Matlab和Simulink兩大部分。Matlab應用非常廣泛。它在數學類科技應用軟件中在數值計算方面首屈一指。它具有高效的數值計算及符號
——————————————————————————
* 促進人才培養綜合改革項目階段性研究成果(PXM2014_014224_000091)
計算功能,能使用戶從繁雜的數學運算分析中解脫出來,并以其完備的圖形處理功能,實現計算結果和編程的可視化。Matlab為學生提供了友好的用戶界面及接近數學表達式的自然化語言,使本科學生易于學習和掌握。Matlab是一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對象編程的特點。Matlab語言是基于最為流行的C++語言基礎上的,因此語法特征與C++語言極為相似,而且更加簡單,更加符合信息類學生對數學表達式的書寫格式,學生在精通后可以更方便地遷徙到其他語言。
2.Matlab與其他學科的關聯
Matlab的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用Matlab來解算問題要比用C、Fortran等語言完成相同的事情簡捷得多,并且Matlab也吸收了Maple等軟件的優點,使Matlab成為一個強大的數學軟件。Matlab可以進行矩陣運算、繪制函數和數據、實現算法、創建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通信、圖像處理、信號檢測、金融建模設計與分析等領域。同時具備對C,Fortran、C++、JAVA的支持,可以直接調用。其內嵌功能豐富的應用工具箱(如信號處理工具箱、通信工具箱等),為學生提供了大量方便實用的處理工具,可以輕松解決各種專業課程中遇到的問題。學生也可以將自己編寫的實用程序導入到Matlab函數庫方便自己以后調用。而且這種語言可移植性好、可拓展性極強,這也是Matlab能深入到科學研究及工程計算各個領域的重要原因。
三 具體措施
1.理論課程體系的構建
多年的教學實踐使我們認識到大學生編程能力的提高是一個循序漸進的教育過程,要著眼于學生信息素養和信息能力的培養,畢業后一段時間內期望他們達到既具有本專業知識,又掌握計算機技術,跨學科的知識面寬,富有創造精神。
《計算機基礎教育白皮書》詳細闡述了非計算機專業學生的計算機專業知識結構要求,概括起來主要是:掌握計算機軟硬件基礎知識;具備使用計算機實用工具處理日常事務的基本能力;具備通過網絡獲取信息、分析信息、利用信息以及與他人交流的能力;利用計算機硬件及接口技術解決本專業領域中問題的基本能力;具備使用典型的專業軟件和工具來解決本專業領域中問題的能力;具備利用數據庫技術對信息進行管理、加工和利用的意識與能力;掌握計算機硬件的基本技術與分析方法,具備專業領域中計算機應用系統的集成與開發能力和程序設計基礎等。
按照培養要求,課程應是成系列的,是有利于各種專業能力逐漸形成的漸進系統。以我校光信息科學與技術專業為例,設置了一系列編程能力培養的課程,此類課程側重于培養學生掌握本學科要求的計算思維方法、算法設計策略和技術,而后引導學生能熟練應用Matlab語言,形成良好的代碼編寫習慣,此外還要具備面向對象的思維能力。在此基礎之上而采用工程的概念、原理、技術和方法來開發與維護軟件。這一系列課程形成一個漸進系統,幫助學生完成由編程能力到軟件開發能力的提升。與此同時,所有專業課程中涉及實際問題的教學案例中,均利用Matlab進行解決。
2.教學方法的改革
在編程能力培養的教學中,要繼續堅持以教師為主導、學生為主體的教學理念,注重發揮學生在各個教學活動中的主體作用,注重采用多種教學形式培養學生解決問題的能力和綜合素質。首先,應加強課堂教學效果,根據各門課程特點發揮集體的智慧和經驗制作優質的電子教案和多媒體輔助教學課件,將Matlab編程內容貫穿在各課程具體內容中,并充分利用多媒體設備和多媒體軟件進行生動、形象、直觀的教學,使得介紹理論概念時不生硬、不枯燥,同時利用Matlab所具備的仿真、動畫等特性,實時演示實際操作時具有直觀性和動態性并保持有趣性。其次,為解決學時不足問題,同時由于Matlab的簡單易學,所以可以引導學生課下分散自主學習。為了培養學生的自學意識和編程能力的提高,在教學中要繼續有意識地引導學生自學,把專業課程中的部分有趣且相對簡單的章節留作為自修內容,要求學生利用Matlab對此類章節涉及的問題進行解決,以論文、小結、調查報告等形式匯報解決過程和結果,強調基本操作方法的靈活運用,注重培養學生的實際操作能力和創新學習意識。由于課時的限制和學生的實際情況,部分理論知識無法詳盡地介紹,如我校光信息科學與技術專業針對大二學生開設的計算機軟件技術基礎課程中,數據庫基礎、多媒體技術基礎等部分內容,在教學中可以通過Matlab自帶的Demo實際案例驅動教學,在較少的學時下使學生通過實例既理解和掌握了繁多的基本概念,同時又可調動學生學習的興趣,引發其進一步學習的意識,以取得較好的教學效果。
3.編程邏輯的訓練
從初學者看待編程,往往注重語句和語法,并認為照搬教材例子就可以編出程序。一旦要求用程序去實現新類型的題目時,往往無從下手,沒有任何思路,或仍舊照搬那些早已不合時宜的例子。其真正原因還是沒有把邏輯架構和編程解題思路放在學習的重點上,不具備編程的抽象思維能力。程序設計是邏輯思維比較縝密的一門學科,需要勤加思考,只讀別人的程序或沒有自己的分析都是不可取的,通常建議新生在做編程練習時暫時擺脫教材,獨立思考。由于Matlab語言的簡單易學,可以使學生克服畏難情緒,加之其語法簡單,便更容易讓學生忽略對語法的關注,而將重心放在程序結構與邏輯之上。此外,程序設計是一門涉及知識領域比較寬泛的學科,信息類非計算機專業學生更應從工程的角度來看待一個軟件的設計和生產過程。教師在教學過程中應不斷灌輸這種思想。
四 結束語
經過多年的努力鉆研和在我校光信息科學與技術專業的本科生教學中實踐,大學信息類非計算機專業的計算機教育取得了一定的成績,經過4年本科學習,學生的編程能力、自學能力、終身學習能力都有大幅提升。教學成果得到了學校專家、領導的肯定,同時所培養的學生也受到了各用人單位的歡迎。課程設置和建設是一個系統工程,涉及方方面面的問題,我們所做的工作和將要進行的改革無論是課程設置、課程內容更新,還是教學方法的改革等,目標都是明確的,那就是為了提高我校計算機基礎教學的教學質量、教學效果,最終使學生受益。
參考文獻
[1]楊殿生、韓世芳主編.計算機文化基礎教程[M].北京:電子工業出版社,2008
[2]閃四清、王靜.經管類專業計算機軟件技術基礎課程教學內容和方法研究[J].中國科技博覽,2009(34):32~34
[3]汪昌健.關于計算機軟件技術基礎教育的一些思考[J].計算機工程與科學,2006(Z1):28~30
〔責任編輯:林勁〕