李穎?徐秀娟
【摘 要】針對當前數(shù)學(xué)類專業(yè)的計算機課程專業(yè)特點不突出的問題,提出以面向數(shù)學(xué)與計算機課程相結(jié)合的系列課程改革,并以數(shù)學(xué)方法編程課程為例,從教學(xué)內(nèi)容、教學(xué)模式和考核手段等多方面進行闡述。經(jīng)過近四年的教學(xué)實踐驗證,此次教學(xué)改革在提高學(xué)生的數(shù)學(xué)算法實現(xiàn)能力方面是比較成功的培養(yǎng)模式。
【關(guān)鍵詞】教學(xué)改革 算法編程 案例驅(qū)動
1.背景
計算機科學(xué)的飛速發(fā)展和廣泛應(yīng)用給數(shù)學(xué)與工程技術(shù)、社會科學(xué)及管理科學(xué)的結(jié)合提出了很多新課題。數(shù)學(xué)類專業(yè)就是解決此類課題的新型理工結(jié)合式的專業(yè),由應(yīng)用數(shù)學(xué)、信息與計算科學(xué)等學(xué)科組成。其主干學(xué)科是科學(xué)計算和計算機科學(xué)與技術(shù)。這次教改之前,我校的數(shù)學(xué)類專業(yè)學(xué)生主要學(xué)習(xí)數(shù)學(xué)類和計算機類(C語言、操作系統(tǒng)、軟件工程等)課程。
2.課程改革
以往我校的數(shù)學(xué)類專業(yè)的語言課程教授限于學(xué)時要求,只是介紹了基本語法和可視化控件的應(yīng)用。的確,任何一個編程者也許能利用可視化組件拼湊出“看起來還不錯”的應(yīng)用程序。但這樣的程序卻將帶來高昂的擴展和維護成本。所以應(yīng)該進一步深入學(xué)習(xí)C#的核心編程思想——面向?qū)ο缶幊?,它涉及人類思維(抽象)模式、建模符號體系、面向?qū)ο蠓椒▽W(xué)等諸多方面。把需求從自然語言翻譯成對象模型,再把對象模型翻譯成特定語言代碼,這在數(shù)學(xué)方法編程課程中得到了實現(xiàn)。
3.教學(xué)實踐
美國高校本科新教學(xué)改革主要包括強調(diào)主動學(xué)習(xí)、協(xié)作學(xué)習(xí)與學(xué)術(shù)挑戰(zhàn)以及推進服務(wù)學(xué)習(xí)和國際教育體驗等內(nèi)容。通過這些教改,美國大學(xué)出現(xiàn)了一種以主動學(xué)習(xí)和加強社會聯(lián)系為特征的新教學(xué)模式。本科課堂開始呈現(xiàn)更靈活、更開放和結(jié)構(gòu)多元的教學(xué)態(tài)勢;高校以教師講授為主的教學(xué)所占比重大幅下降,而小組討論式的學(xué)習(xí)大為增加。一些主動學(xué)習(xí)方法如大量閱讀、案例分析、課堂討論、合作項目研究、學(xué)科論文寫作等已經(jīng)成為美國高校本科教學(xué)中常見的教學(xué)手段。據(jù)此以數(shù)學(xué)方法編程課程為例,談一下我校的教學(xué)改革實踐方案。
(1)教學(xué)內(nèi)容。數(shù)學(xué)方法編程課程以數(shù)學(xué)分析、高等代數(shù)和概率論與數(shù)理統(tǒng)計的典型算法為例,利用C#語言在winform環(huán)境下開發(fā)實現(xiàn)。這樣做我們既可以讓學(xué)生復(fù)習(xí)已學(xué)數(shù)學(xué)課程的算法,更加深刻理解算法及算法間的聯(lián)系,又可以讓學(xué)生練習(xí)winform編程,提升數(shù)學(xué)算法的編程能力。
比如設(shè)計一個利用梯形法計算定積分,考慮到梯形法是計算定積分的基本方法,其他方法是它的改進,我們可以把梯形法作為一個類來設(shè)計。為了使被積函數(shù)的使用范圍廣,我們仿照MATLAB程序設(shè)計界面,按五種基本函數(shù)類型設(shè)計輸入模式,這時在梯形公式中使用的被積函數(shù)是不同的,為了提高程序的可擴展性,我們根據(jù)輸入函數(shù)類型利用委托讓被積函數(shù)指向不同的函數(shù)類型。在接下來的課程中用Romberg積分法計算函數(shù)的定積分,我們采用繼承梯形法中的基類,派生出Romberg積分法的類,這也有助于學(xué)生理解兩種積分方法的關(guān)系,為了配合Romberg積分法,我們定義了動態(tài)數(shù)組存儲中間結(jié)果,這有利于學(xué)生復(fù)習(xí)動態(tài)數(shù)組用法。
(2)教學(xué)模式。為了培養(yǎng)學(xué)生的學(xué)習(xí)興趣、提升學(xué)生的自學(xué)能力,我們采用讓學(xué)生主動學(xué)習(xí)和加強復(fù)雜算法實現(xiàn)的新型教學(xué)模式。傳統(tǒng)的“教師講,學(xué)生聽”課堂灌輸式教育通常會造成學(xué)生眼高手低,缺乏學(xué)習(xí)興趣,動手能力較弱等缺點。我們可以采用發(fā)現(xiàn)/啟發(fā)式教學(xué)模式,首先觀察數(shù)學(xué)軟件的實現(xiàn)模式,然后照此設(shè)計界面和程序。比如仿照SPSS的單因素方差分析算法,我們采用文件的形式對數(shù)據(jù)進行導(dǎo)入和結(jié)果導(dǎo)出。然后以此為例,讓學(xué)生實現(xiàn)雙因素等重復(fù)試驗的方差分析的算法實現(xiàn)。教師幫助學(xué)生分析問題,提醒學(xué)生數(shù)據(jù)的存儲結(jié)構(gòu)需要改變,而具體的實現(xiàn)方法又讓學(xué)生自己選擇,以啟發(fā)式和項目驅(qū)動方式培養(yǎng)學(xué)生的自學(xué)能力和動手能力,提高學(xué)生的學(xué)習(xí)興趣。
(3)教學(xué)手段。對于計算機類的課程,最有效地提高編程能力的方法就是多上機實踐。所以本課程采用在機房授課的方式,實例演示直接在編程環(huán)境中逐語句鍵盤鍵入,讓學(xué)生更全面地了解編程過程。在教學(xué)過程中更多地教授學(xué)生獲取幫助的方法,遇到問題能夠自己通過“幫助”“調(diào)試”“轉(zhuǎn)到定義”等路徑解決,使學(xué)生更了解C#編程的編輯環(huán)境。教師不可能把所有知識全部交給學(xué)生,但若是更多交給學(xué)生解決問題的方法,會讓學(xué)生解決實際問題的能力大幅提升。
(4)考核方式。因為C#的編程環(huán)境帶有智能下拉列表,每當鍵入類或關(guān)鍵字的時候總會有輸入提示,所以不需要編程人員記住所有的命令、屬性和方法的全稱,對于同一方法允許多種參數(shù)類型等,這些特征使得筆試和上機考試的差別較大。本課程就根據(jù)此特點采用上機考試,教師通過網(wǎng)絡(luò)把試題發(fā)給學(xué)生,學(xué)生進行程序?qū)崿F(xiàn)后,發(fā)回源代碼作為答案。平時留作業(yè)也是發(fā)回源代碼,真正做到學(xué)生為主體,能力為本位,營造項目式驅(qū)動的學(xué)習(xí)考試環(huán)境。
4.結(jié)束語
本文針對當前數(shù)學(xué)類專業(yè)的計算機類課程存在的問題,從課程設(shè)置、教學(xué)方法、考核手段等方面出發(fā),以數(shù)學(xué)方法編程課程為例,提出了一個應(yīng)用型為主體的教學(xué)課程,以確保學(xué)校的人才培養(yǎng)目標與社會需求的一致。經(jīng)過了三年的教學(xué)實踐,發(fā)現(xiàn)相對傳統(tǒng)教學(xué)方式,學(xué)生更加熟悉編程環(huán)境,動手能力更強,在參加數(shù)學(xué)建模競賽和做畢業(yè)設(shè)計時更加得心應(yīng)手。
【參考文獻】
[1]邱勁等.《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革與實踐探索[J].西南師范大學(xué)學(xué)報(自然科學(xué)版),2013,38(1).
[2]林菁.多級項目驅(qū)動教學(xué)在數(shù)據(jù)庫系列課程中的應(yīng)用[J].計算機教育,2013(16).
[3]游柱然等.近年來中美高校本科教學(xué)改革的比較與反思[J].江蘇高教,2013(3).endprint