淺談卓越工程師培養軟件工程的優秀論文
1、傳統教學方法存在的問題
1.1教學目標不明確
“C”是很多高校普遍開設的一門課程,大部分學校教學方法大同小異:課堂講授+上機實驗,教學目標也集中于讓學生掌握C的各種重難點,比如數組、函數、指針等。其實不同專業人才培養目標中本課程的作用差異較大,采用模式化的教學方法和雷同的教學目標是不合理的。此外很多教學方法忽略了編程思想鍛煉,局限于講授語言本身,變成了教“語言”而不是“程序設計”。
1.2學生動手應用能力較弱
多年來,大部分學生學習完本課程后,仍難以針對一個簡單應用編制程序,此問題十分普遍。一般C語言教材,都是先介紹程序設計基礎知識,然后介紹各種數據類型和輸入輸出等語句,由于內容枯燥,因此學生逐漸喪失了學習興趣,甚至不愿上機,浪費了寶貴的實驗機會。此外各種例題、習題也是數學性較強或者演示性質較強,比如牛頓迭代、水仙花數、10整數排序等,這些內容和實際應用關系相去甚遠。
1.3未體現卓越工程師培養特色
如前所述,卓越工程師培養的不僅是一個程序員,更重要的是培養學生具有扎實的理論基礎和創新能力,為進一步從事設計、架構規劃打基礎。由于課時所限,計算機專業的一些理論課程如自動機、組合數學等一般未納入軟件工程的培養方案,但對于卓越工程師而言,初步學習這些內容是必要的。此時如果在相關課程中融合部分上述知識將大有益處。
1.4沒有為后續課程打下良好基礎
一方面由于例題和習題所限,在學習“C語言”時學生未能充分理解軟件工程的一些重要思想如模塊化等,導致編程時思路混亂、僵硬。另外由于課時所限,結構、文件等章節經常被略講甚至不講,導致學生在后續課程學習時基礎薄弱。
2、教學改革措施
針對上述問題,結合軟件工程卓越工程師培養目標,在近年來的教學實踐中我們采取了如下教學改革措施:
2.1實驗室授課
對于程序設計課程,學生在課堂聽講時,是一種靜態的信息接收過程。當講到各種知識點時,如果能夠即時編程驗證,將成倍地提高學生對信息的吸收消化效果。基于此,近年來我們努力實現了全程在實驗室機房授課,學生可以實時動手分析,教師也可以從講臺主機遠程指導、控制學生設備,效果良好。
2.2采用國外教材及引入軟件工程思想
“C”的國內教材大都偏向初學者,存在細節被過度簡化的問題,不利于實現培養面向實踐的工程師的目標。為此我們采用國外知名教材進行授課。該教材的最大特色是面向應用,對C語言的應用特征、程序設計的`特色描述詳盡,例題及習題應用性很強,并且可結合軟件工程的基本思想進行講解,例如商品條碼校驗位計算、撲克牌發放及手牌比較、零件數據管理等。學生學習后,在后續應用性課程中能夠很快上手并進行拓展。
2.3編程思維訓練
我院“C”課程開設在大一上期,其目的是引導學生進入編程領域。因此在教學時,我們避免拘泥于C本身的語法細節,而是淡化其語言色彩,偏重講述如何利用程序語言來處理問題。在此列舉一例:很多C課程都會講授如何編程打印一個由星號組成的菱形。某些教材上給出的解法是將菱形分為上半部和下半部分,用兩個循環來打印,這種方法對學生思維訓練無太大幫助。筆者在授課時,采用了如下思路:將菱形放入一個二維坐標系(原點在左上角),畫出菱形所在區域邊界,由此寫出區域的解析表達式|x-3|+|y+3|≤3,從而得到程序循環中的核心判斷語句.
2.4有機引入計算機理論課程知識
如前所述,軟件工程專業一般不開設有限狀態機等理論課程,但是作為卓越工程師,掌握這些知識是必要的。為此我們在課程中有意識地引入了這方面的知識,給學生提供初步認知,為有意自學者提供基礎。例如,一直以來學生在學習“計算一個句子中單詞個數”這一經典程序時,總是不明所以。為此我們另辟蹊徑,采用如下方法講授。首先抽取問題核心:把句子看成是由字母序列和空格序列(單詞間可能有多個空格)交替組成的一個字符串。程序處理的方式,是對句子中的所有字符進行逐一掃描,然后在這個過程中判定單詞的出現,如出現則把計數變量加1。其次將問題抽象化:用有限狀態機來描述上述過程。其中“1”代表當前掃描字符“位于字母串中”這一狀態,“0”代表當前掃描字符“位于空格串中”這一狀態。當“掃描到字母”事件或者“掃描到空格”事件發生時,掃描器的狀會被改變,如圖箭頭所示。我們關心的是當處于狀態0時,“掃描到字母”事件發生的情況。此時意味著之前掃描到的是空格,現在是字母,即到了一個單詞起始處,故此時計數變量加1。然后引導學生將問題轉化為表格描述,(第一行表示事件,第一列表示狀態,中間單元格表示某事件發生后,應進行的狀態轉換及其他操作),進一步地可以精煉為(b)。由此可得到示流程圖。在此基礎上學生很容易寫出程序。這種教學法十分透徹,為學生今后自學相關知識打開了一扇大門。
2.5作業批改及考試規范化
為了避免傳統教學中學生作業及考試批改過程低效,分析困難,且難以發現問題的缺陷的情況,我們開發了一套C語言作業及考試批改系統,該系統通過代碼分析及用例執行等方式,客觀地對學生程序進行判定,一方面提高了教學效率,另一方面更重要的是促使學生養成良好的編程習慣,改變了以往在紙面上寫代碼的隨意性,從而培養起作為一個軟件工程卓越工程師必備的素質。
3、結語
培養合格的軟件工程卓越工程師是一個系統工程,而專業基礎課建設是其中的基石之一。就“C”課程而言,目前我們的課程改革和建設已經取得了初步成果。未來我們將在加強編程基礎培育,設計更靈活和細粒度的自動程序評分系統,以及多課程聯合教學等方面做出進一步嘗試和努力。
【淺談卓越工程師培養軟件工程的優秀論文】相關文章:
淺談面向卓越工程師培養的課程建設論文04-03
培養卓越機械工程師的論文05-20
卓越工程師培養橋梁工程論文04-03
淺談卓越工程師培養模式的機械制造裝備教學改革探索論文09-07
環境科學與卓越工程師培養探討論文04-03
淺談青年教師在卓越工程師計劃中的實踐12-24
關于卓越教師培養計劃03-22
軟件工程專業優秀論文04-01