摘 要:工科基礎課程往往由于數學公式多,理論推導復雜而使學生望而生畏,如何使得學生掌握學習方法,產生強烈的學習興趣,成為迫切需要解決的難題。本文提出一種“自頂向下,逐步求精”教學方法。首先采取誘導方式提出問題,使學生理解所學知識的重要性,明確學習目的;然后采取逐層推進的方法對知識點細化,了解知識點的前后聯系,強調物理意義,淡化數學公式的推導,強化數學運算技巧;最后以傅里葉變換的教學為例,具體說明這種教學方法的實際運用。
關鍵詞:工科 自頂向下 逐步求精 教學
中圖分類號:G64文獻標識碼:A文章編號:1673-9795(2012)04(a)-0111-03
Abstract:Undergraduates are often horrified at the complicated mathematical formulas and perplexing theoretical deductions,so it is a pressing task to make the college students to adopt scientific learning approaches and be interested in the study.In this paper, a teaching method based on Top-down,Stepwise Refinement idea is presented.Firstly,introductory questions are addressed for the students to make them realize the importance of the knowledge they are learning,catch on the study goal.Secondly,the course is divided into small parts step by step,the connection of main knowledge points is learned,the physical meaning of some contents is emphasized,the deduction of mathematical formulas is weakened and mathematical skills are strengthened.Thirdly and lastly,an example of the teaching of Fourier Transformation is put forward to demonstrate the practice of this teaching method.
Key words:Engineering;Top-down;Stepwise Refinement;Teaching
教學是教師依據一定的目的或目標,以傳授和掌握知識為基礎,促進學生整體素質發展的教與學相統一的教育活動[1]。隨著人類社會的逐步提升,教學內容發生了很大的變化:農業社會注重知識經驗的傳授,工業社會強調知識和技能的訓練,而當今以信息的存儲和處理為特征的信息社會,更加重視培養獲得、檢索和提取信息的能力,使學生掌握學習策略,學會學習。
當前的工科基礎專業課程教學存在一個誤區,即以知識和技能的訓練代替學習能力的提高。在教學中,將前后章節脫節,孤立地講解每一章的內容,迷戀于講解繁復的數學理論和公式,學生往往不能將課程內容進行連貫理解,迷失于浩繁的公式海洋之中,忘記課程最終學習目的。帶來的問題是,使得學生“只見樹木,不見森林”,不能從總體上把握課程的基本精神,不能了解課程解決哪些實際問題,結果學而不能致用,使學生逐漸對學習失去興趣和動力。
本文采取編程中“自頂向下,逐步求精”的基本思想,探討工科基礎課程新的教學方法,使得學生既見樹木,又見森林,從大局著眼,小處著手,激發學生的學習積極性和自學主動性,進而提高教學質量。
1 “自頂向下,逐步求精”的基本思想
結構化編程(structured programming)的概念最早是由E.W. Dijikstra于1965年提出的,是軟件發展的一個重要里程碑。1971年,圖靈獎獲得者、Pascal之父Niklaus Wirth在其著名論文[2]中提出“自頂向下,逐步求精”(top-down,stepwise refinement)的結構化編程方法,其基本思想是:程序的編寫分若干步進行,逐步求精,第一步編寫的程序抽象程度最高,第二步編寫的程序抽象程度有所降低……最后一步編寫的程序即為可執行程序。這種編程方法看起來似乎復雜,實際上優點很多,可使程序易讀、易寫、易調試、易維護,也易于保證程序的正確性及驗證其正確性(以前的編程方法容易驗證其錯誤,但不易驗證其正確性)。Wirth提出的這種“自頂向下,逐步求精”結構化編程方法,在程序設計領域引發了一場革命,成為程序開發的一個標準方法。
結構化編程包含3個基本的控制結構[3],即順序結構、選擇結構和循環結構,如圖1所示。圖中的方框表示執行動作,菱形表示判斷,箭頭表示程序的進程。結構化編程包括4條規則[4]:(1)從最簡單的流程圖開始;(2)任何一個動作可以被兩個順序動作替代;(3)任何一個動作可以被一個控制結構替代;(4)前兩條規則可以多次反復運用。這四條規則將“自頂向下,逐步求精”的思想貫穿其中,使得任務的執行由粗到細,由抽象到具體,一步一步有條不紊地進行下去。
這種“自頂向下、逐步求精”的思維方式不是計算機編程所獨有的。其實,在日常生活、學習中,我們也有意或無意地采用這種方法。例如,博士畢業論文的寫作,項目規劃的制定等,都要采取這種由粗到細,由抽象到逐漸具體的步驟。如果將一門工科基礎課程的教學比作編程的話,也可以采取這種思想方法。
2 “自頂向下,逐步求精”在教學中的運用
工科課程的特點是物理意義明顯,數學性強,內容前后聯系緊密,如果只按照順序控制結構模式教學,一竿子到底,就沒有層次感和重點,容易使理論與實際脫節。例如,曾經有學生學了一整學期的“數字信號處理”課程,當和老師談到語音信號編碼中的濾波時,卻顯得一臉茫然,不知濾波為何物。又如,學生對傅里葉變換感到十分頭痛,以致談“傅”色變,殊不知傅里葉變換是整個數字信號處理大廈的一塊最重要的基石,如果沒有傅里葉變換及其快速算法,數字時代的出現是不可想象的。三種控制結構應該靈活搭配或者嵌套運用。下面以傅里葉變換的教學為例,說明“自頂向下、逐步求精”教學方法的實際運用。
2.1 問題的引入
給學生提一個誘導性問題:你能分辨男聲和女聲嗎?相信大部分學生會響亮地回答:能!確實如此,男聲和女聲的區別很大,這時可以講解男人和女人聲帶的構造不同之處,男聲之所以低沉,女聲之所以清脆的原因。進一步提出這樣的問題:當語音不用耳朵聽,而用眼睛看,你們仍能分辨男聲和女聲嗎?將相同內容的男聲和女聲語音段用如下三種圖形對照:波形圖、頻譜圖和語譜圖[5],要求分辨男聲和女聲,同學們可能覺得很茫然。這時可以介紹時域和頻域的概念,它們是信號的兩個表現形式,各有不同用途,有時在時域處理和理解比較方便,如電容充放電的過程;有時在頻域里進行解讀更加明白,如機械的振動,人類的語音等。信號的時域描述與頻域描述,就像一枚硬幣的兩面,看起來雖然有所不同,但實際上都是同一個東西。若信號的特征主要在頻域表示的話,則相應的時域信號看起來可能雜亂無章,但在頻域卻表現得非常有規律。對于有經驗的信號處理專家,能夠從頻譜圖和語譜圖分辯男聲和女聲,但是,即使是訓練有素的學者,也很難從時域波形上進行分辨。
通過以上內容的講解,使得學生對信號的頻域表示產生濃厚的興趣,他們一定急于了解信號的頻域表示是如何得來的,這時可以順理成章地引入傅里葉變換。這部分是“頂”的部分,也是較為“粗”的部分,是“自頂向下、逐步求精”的開端。
2.2 求精過程
求精的第一步,介紹各種形式信號的傅里葉變換。
回顧高等數學里學到的傅里葉變換,是對周期信號在全區間上展開傅里葉級數的,有一定的局限性,因為實際信號不一定是周期的。通過將周期信號的周期趨于無窮大,就可以引入非周期信號的連續時間傅里葉變換的概念。組成非周期信號的正弦分量的振幅盡管是無窮小量,但是各頻率分量的能量仍按照一定比例分布,于是引入頻譜密度函數的概念。這樣就產生一個問題:周期信號采用傅里葉級數,非周期函數采用傅里葉變換,它們能不能統一起來呢?回答是肯定的,前者統一于后者。接著介紹周期信號的傅里葉變換,并與傅里葉級數進行對比。將傅里葉級數和傅里葉變換統一起來后,又產生一個問題:它們都是時間連續信號,而當今的時代是以數字信號為特征的,連續信號經過采樣、量化和編碼后,就變成數字信號,離散數字信號的頻域表示需要引入哪些變換呢?對于周期離散信號,有離散時間傅里葉級數;對非周期離散信號,有離散時間傅里葉變換。和連續周期與非周期信號統一于傅里葉變換一樣,也可以將離散周期與非周期信號統一于傅里葉變換。
接著產生如下問題:當今時代計算機廣泛應用于數字信號處理,如何將傅里葉變換應用于計算機呢?由于傅里葉變換和逆變換都要對無窮區間求積分,對于計算機來說這是不可能的,因此必須把時域和頻域的連續數據轉換為離散數據,把計算范圍由無窮區間收縮為有限區間。進行如下處理:對連續函數抽樣后截斷,并使截斷長度盡可能長些,截斷的抽樣進行傅里葉變換,得到信號的頻域表示;在頻域上采樣,進行傅里葉反變換回到時域信號。這時的時域信號為截斷信號的周期拓展。因此,將時域信號和頻域信號分別修改為周期信號后,就可以利用計算機進行傅里葉分析了,此即離散傅里葉變換(DFT)。在進行離散傅里葉變換時,又產生計算量的問題,即一個N點DFT,需要N2次復數乘法和N×(N-1)次復數加法,當N很大時,即使使用高速計算機,計算時間也太長了,對于音視頻這些實時性要求較高的業務,計算時間太長導致時延太大。采取什么措施減少運算時間呢?快速傅里葉變換(FFT)于是應運而生了,通常可以使運算速度成千上萬倍地提高。
通過以上內容的講解,幾乎將“信號與系統”和“數字信號處理”兩門課程中關于傅里葉變換的知識都涉及到了,使同學們產生強烈的求知欲。
求精的第二步,介紹各種傅里葉變換的性質,使得信號的頻域表示和時域表示關聯起來,給傅里葉變換的計算帶來很大的方便,同時許多信號處理過程,如調制、解調等都要用到這些性質。這一部分數學性比較強,必須在理解物理意義的基礎上,經過大量練習熟練掌握。
求精的第三步,復頻域分析和Z域分析的引進。為什么要對連續系統進行復頻域分析呢?因為有的信號的傅里葉變換并不存在,但是可以將信號分解為復指數信號,就可以計算信號通過線性系統的響應了,這就是拉普拉斯變換分析法。拉普拉斯變換分析擴展了輸入信號的適用范圍,而且使響應的計算更加簡便、靈活。對于離散信號和系統,將信號分解為基本信號zk之和,稱為Z域分析,它可以將離散時間信號的卷積運算變成代數運算,將離散時間系統的差分方程變成Z域的代數方程,同樣地使得響應的計算非常方便。這部分要重點理解信號分解及分解的好處。
緊接著進行第四步、第五步……逐步深入地講解信號與系統的基本概念,周期和非周期信號的頻譜特點,拉普拉斯變換及逆變換的計算技巧,Z變換及逆變換的計算技巧,FFT的原理和各種算法等。對信號與系統的理解一步步加深,以傅里葉變換為紐帶,將時域、頻域、信號分解、響應等等概念有機地連接起來。
根據結構化程序設計的原則(二)和(三),對每一步又可以采取“自頂向下,逐步求精”的方法進行精雕細刻,于是整個信號處理理論體系逐漸由粗到細,由模糊到清晰。切忌把時間和精力過多地放在公式的推導上,而要強調公式的物理意義。有的教材從純粹數學上引入卷積的概念,讓大部分學生,特別是像三峽學院的二本、三本學生很難接受。從系統在基本沖激信號激勵下零狀態響應的計算,過渡到一般信號激勵下的零狀態響應,理解其物理意義,則卷積的理解相對容易得多,也不那么枯燥了。對各種數學公式需要區別對待,有的僅需理解其意義,有的則必須爛熟于胸。對于不同層次的學生要因材施教,“求精”的深度應有所區別。有的僅要求知其然,有的不僅要知其然,還要知其所以然。
3 結語
本文將程序設計的“自頂向下,逐步求精”思想運用于工科基礎課程的教學,以傅里葉變換的教學為例,提出一種從全局到局部,從定性到定量,從粗線條到細節的逐步深入式教學方法,它既不回避繁瑣的數學公式,又避免學生陷入公式的海洋而不知所措,具有因材施教、理論聯系實際、目標明確、逐步推進等優點。
“自頂向下,逐步求精”的難點在于如何“逐步”,而重點在于“求精”。完整、科學地掌握這套教學辦法,必將促進同學們的學習積極性,從而提高工科基礎課程的教學質量。
參考文獻
[1]陳琦,劉儒德.當代教育心理學(第2版)[M],北京師范大學出版社,2007
[2]Niklaus Wirth. Program Development by Stepwise Refinement[J].Communication of the ACM,1971,14(4):221~227.
[3]H.M.Deitel,P.J.Deitel.How to Program (Second Edition) [M].Prentice Hall,1994.
[4]薛萬鵬,等[譯].C語言程序設計[M].機械工業出版社,2001.
[5]Lawrence R.Rabiner, Ronald W.Schafer.Theory and Applications of Digital Speech Processing[M].Publishing House of Electronics Industry,Beijing,2011.