陸金鈺,秦慶東,盧瑞華,郭恒寧,徐 照
(東南大學 土木工程學院,江蘇 南京 210096)
面向土木專業人才培養的《計算機程序設計》課程改革實踐與探索
陸金鈺,秦慶東,盧瑞華,郭恒寧,徐 照
(東南大學 土木工程學院,江蘇 南京 210096)
本文在總結已有的《計算機程序設計》成功教學經驗的基礎上,緊密結合土木工程專業背景知識,以《C語言程序設計》課程為例,分別從教學內容、教學手段與方法以及教學資源建設等方面實施改革,提出一套體現專業特色的教學創新策略。教學實踐表明,激發了土木工程專業學生學習的興趣與動力,可有效訓練其運用程序設計語言解決本專業相關問題的能力。
C語言程序設計;土木工程;專業特色
隨著科學技術的不斷發展,同時掌握專業技能及計算機編程能力的復合型人才越來越受到青睞。為適應社會發展的需要,將學生培養成為既熟悉本專業知識又能把計算機技術同本專業領域緊密結合的人才將成為未來教育改革的趨勢[1]。土木工程,作為一個工科專業,掌握將計算機程序設計語言靈活地運用于科學計算及分析中,以解決專業理論及工程實際問題的能力是至關重要的。目前教師在非計算機專業的程序設計課程教學中往往脫離本專業的背景,單純地從程序設計的理論出發,枯燥的理論將使學生覺得學習程序設計課程沒有用,或對此課程的重要性認識不足[2,3]。如何讓土木專業的學生更好地掌握這門課程,儲備本專業研究型科研人才,將對我們的日常教學提出了新的要求。近年來,在全面總結已有的《計算機程序設計》成功教學經驗的基礎上,以復合型研究型人才的培養為目標,緊密結合土木專業背景,提出有針對性的教學策略,通過教學實踐不斷地探索,積累了一定經驗。
1.學習目的不明確。非計算機專業學生往往對程序設計語言課程的學習目的不明確[4]。土木工程專業學生認為所學內容應該是如何設計建筑結構、橋梁隧道,如何分析梁板柱、地基等,而不是計算機專業才需要學習的程序設計,對計算機編程不感興趣,認為設置此課程為多余。學生對程序設計語言課程認識的不足直接導致其在學習過程中缺乏主動性和積極性,學習更加缺乏信心,對計算機程序產生畏懼心理。
2.教學內容與專業背景脫節。教師在教授程序設計課程過于注重語法、語句、基本概念等細節,忽視培養在算法設計、程序編寫以及邏輯思維等方面的能力,沒有讓學生意識到學習程序語言的最終目的是為了解決土木工程領域相關實際問題的。教授過程及內容過于脫離專業背景,在授課例題、實驗例題,特別是計算機綜合設計大作業方面,沒有專業特色。
3.缺乏綜合能力的培養?!队嬎銠C程序設計》是一門實踐性很強的課程。教師往往不注意學生綜合能力培養,包括邏輯思維能力、動手能力、甚至英語閱讀能力。部分學生反映上課時能聽懂,可上機時卻腦子一片空白,不知從何下手,無法動手編程,出現“聽得懂,編不出”現象,導致對學習失去信心;有學生英語基礎不好,對編譯器的語法錯誤提示看不懂,難以找出程序中的語法錯誤,當然更難找出邏輯錯誤。這也導致他們在實踐過程中過分依賴指導老師,有任何問題就找老師,自己缺乏必要的思考。
程序設計語言的選擇對于非計算機專業學生而言至關重要。目前,面向對象程序設計語言C++及MFC技術因其功能豐富、表達能力強、使用方便靈活、界面友好、人機互動能力強等特點[5],已成為當前程序設計的主流,為計算機專業工作者和計算機應用開發人員所喜愛。然而此編程語言涉及的概念比較復雜、程序設計規則繁多卻自由靈活、容易出錯,實踐表明,土木工程專業本科生在學習過程中出現不同程度的畏難心理。在眾多高級語言中,結構化程序設計語言C遵循自頂向下、逐步細化、模塊化設計、結構化編碼,較為實用并非常適合科學計算,對于土木工程專業的學生今后進行科研實踐過程中編程能力是不可或缺的,并對今后學習其他編程工具(如matlab、autolisp等)具有十分重要的意義。另外,通過對國內同濟大學、清華大學、哈爾濱工業大學、浙江大學、大連理工大學等土木強校進行前期調研發現,大多數高校針對土木工程本科專業的培養計劃中《計算機程序設計》課程為C語言或FORTRAN語言。因此最終選擇《C語言程序設計》,旨在讓學生掌握這門高級語言及相關編譯環境,掌握結構化程序設計思想及方法,利用C語言解決一般應用問題,為后續的專業課程奠定程序設計基礎,尤其是利用所學語言編程解決土木工程專業實際問題。對愿進一步深入學習的學生,擬在高年級開設C++語言,使學生掌握編制大型軟件程序技能(包括運用MFC技術編制人機可視化交流界面),適合今后立志于從事土木工程專業軟件開發的學生。這種分層次的教學手段,更有利于教學改革的實施和推進。
從專業化教學內容、教學實踐運用、綜合能力培養、專業化題庫建設四個方面實施。方案實施前,進行學生情況及土木工程專業相關兄弟院校調研,掌握普遍存在的問題,針對性進行改革。
1.各環節中強調與土木專業的緊密性。在教案、課件PPT、上機實驗甚至考試等方面有針對性地引入土木工程
專業背景知識,合理地分配程序設計理論知識及專業應用課時的分配及相關教學計劃。任課教師尤其要上好第一節課,需強調學習程序設計課程的用途、重要性,以及與將來學習的土木工程專業課程的緊密性。列舉計算機編程在專業學習以及應用中的重要性,展示相關案例,讓學生理解學習該課程的目的并明確課程的意義。比如可對ANSYS、SAP2000、Opensees等有限元軟件進行二次開發等。在平時講授過程中,可適時提出土木工程前沿問題及其與計算機的關聯程度,列舉利用計算機編程解決土木工程專業問題的案例,著重訓練學生學以致用的能力。比如講解到二維數組時,可聯系結構力學中的矩陣位移法,告之學生可利用C語言編制程序解決結構靜力分析;運用函數及一維數組等知識點則可以解決施工組織設計、試驗數據處理、管網水利分析等專業問題。
2.開發專業化教學的手段與方法。在教學過程中,運用多媒體動畫技術輔助教學,結合MFC可視化編程技術和有土木工程專業特色的高質量教學課件,形象地體現教學內容,化抽象為直觀,使原本較枯燥抽象的教學內容通過合適的載體向學生體現,激發學生的學習興趣,強化教學效果,發展學生的主觀思維能力。課堂教學應注重編程演示以及分組討論、交流,力求理論知識形象化。注重上機實踐能力,做好實驗課的答疑。課后通過電子郵件、網站等現代化網絡信息平臺解答學生的疑問,并及時進行交流,接收掌握學生的負反饋。實現教與學融合、師生互動。
3.培養學生的綜合運用能力。在課堂講授及試題訓練中突出算法設計環節,教學重點從語法向程序設計改變,培養學生算法分析的能力。通過專業化課件、例題、案例的運用,培養學生解決土木工程專業實際問題的能力。平時適時傳授相關英語詞匯,試點選用“The C programming Language”等英文原版教材,增強學生編譯調試程序的能力。
通過短學期計算機綜合設計任務的鍛煉,提高學生編制大程序、綜合應用創新能力,并通過分工合作手段,提升學生團隊協作能力。
4.建立專業化的程序設計試題庫。土木工程中力學分析計算、工程預決算都離不開工程軟件的支持,土木工程專業背景與計算機編程兩者的結合將激發本專業學生對程序設計學習的興趣、提高學生的學習效率,并打好扎實的工程計算編程能力,使其能學以致用。如何切實地在《計算機程序設計》課程的教學過程中有機地植入土木工程專業知識、體現本專業特色是教學實踐的關鍵。首先可通過搜集資料,篩選適合植入程序設計試題的結構工程、防災減災、巖土工程、橋隧工程、工程管理、結構實驗等學科專業知識,并分別針對授課用案例、習題、上機實驗的特點,進行分類。并對“計算機綜合課程設計”,編制土木工程專業性強的課程設計任務書。其次,教師進行試題試做,按難度分類,方便學生選擇,形成初步的題庫。最后,在教學過程中不斷完善、改進,擴充并優化題庫。但需要指出的是,學習《C語言程序設計》的一般均為大一新生,他們并未開始學習結構力學等專業課程。因此,設計的案例應遵循以下原則:需給出土木專業背景知識;學生無需具備專業知識也能解題;不宜過于復雜。
如在考核學生在數組及函數方面的掌握程度時,可根據結構力學中整體剛度矩陣的集成、剛度矩陣的高斯消去法等知識點設計試題。以下為一案例。

圖1 結構模型
請寫出以下程序執行后的輸出結果。本題背景:運用矩陣位移法編制C語言程序可計算圖1所示結構在荷載P作用下節點C位移及各構件內力(假定構件軸向剛度EA=1,抗彎剛度EI=1)。本程序為結構分析重要環節,用于轉化剛度矩陣,設數組stiffnessM為結構剛度矩陣。

本題實質是對圖1所示結構的整體剛度矩陣進行高斯消去法,將總剛轉化后成為上三角矩陣,便于后續的節點位移計算。雖然無需專業知識,學生通過閱讀程序也可寫出結果,但整個求解過程卻讓他感受到切實解決了一個專業問題,這樣不僅激發了學生學習程序設計的熱情,而且等到他接觸結構力學中的矩陣位移法時,也將有意識地嘗試用編程來解決其他相關問題。
以復合型人才教學研究為目標,緊密結合土木工程專業背景,提出有針對性的教學策略。將土木專業背景知識有機地引入到程序設計課程的教學過程各個環節中,選取理論聯系實踐的教學方法,輔以可視化編程技術,極大激發本專業學生學習的積極性;緊密結合課堂教學、上機實踐及綜合課程設計三大環節,開發適用于計算程序設計課程專業化教學的手段與方法,形成具有土木工程專業特色的試題庫;對學生的多方面能力進行鍛煉,為復合型創新人才的培養打下堅實基礎。將改變目前土木工程專業程序設計課程難教也難學的現象,對于促進高校非計算機專業程序設計課程教學的發展、培養高素質土木工程專業人才、推進高校教學改革的研究與實踐有較大的促進作用和現實意義。
[1]楊秀平,許勁,陳翔.非計算機專業計算機公共課程教學改革的思考與探索[J].長沙大學學報,2003,17(2):89-91.
[2]謝步瀛,王祎.與土木工程專業相結合的VB教學[J].高等建筑教育,2007,16(3):120-123.
[3]陳麗花.非計算機專業《計算機程序設計基礎》課程教學改革研究[J].學理論,2010,(3):175-176. [4]教傳艷.淺談機械專業C語言課程教改方法之實踐[J].科技創新導報,2009,(27):131.
[5]劉樹新,李革.面向對象程序設計在材料力學教學改革中的應用[J].石家莊鐵道學院學報,2006,19(Supp):190-191(226).
G642.0
A
1674-9324(2014)04-0213-03
東南大學教學改革項目(2010-018),江蘇省高校優勢學科建設項目。
陸金鈺(1981-),男,博士,副教授,主要研究方向為空間結構、鋼結構。