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