程適+++胡文娣 +武杰
摘 要 針對軟件工程課程在師范類學生教學過程中出現的現實問題,通過分析學生的學習情況,提出了課程的實踐教學方案。陜西師范大學軟件工程課程教學中的實踐情況和取得的效果,對于其他院校的軟件工程課程建設也有借鑒意義。
關鍵詞 軟件工程 師范類學習 課程實踐 教學探索
中圖分類號:G424 文獻標識碼:A DOI:10.16400/j.cnki.kjdkz.2017.10.052
A Study of Software Engineering Course for Pedagogic Students
CHENG Shi[1], HU Wendi[2], WU Jie[1]*
([1]School of Computer Science, Shaanxi Normal University, Xian , Shaanxi 710119;
[2] School of Liberal Arts, Nanjing University, Nanjing, Jiangsu 210023)
Abstract According to the practical problems of software engineering course for pedagogic students in School of Computer Science, Shaanxi Normal University, we have proposed a practical teaching plan based on analyses of students' learning situations. It could be benefited for the software engineering course at other Universities in the future.
Keywords Software engineering course; pedagogic study; course practice; teaching and learning study
0 引言
軟件工程的課程教學和實踐是作為計算機科學和軟件工程專業(yè)學生大學課程中第一個較為系統(tǒng)化的軟件開發(fā)方法和開發(fā)流程類課程,它對培養(yǎng)學生動手能力無疑起著非常重要的作用, 陜西師范大學計算機科學學院為計算機科學、軟件工程、信息系統(tǒng)與管理等專業(yè)的本科學生開設了軟件工程的專業(yè)必修或專業(yè)選修課。計算機專業(yè)師范類學生的就業(yè)范疇一般是中學教育,如何針對這類學生的特殊性,進行軟件工程教學是師范類大學教師亟待解決的問題。
1 軟件工程課程教學現狀分析
1.1 軟件工程課程特點
設立軟件工程課程的目的,不僅僅是讓學生掌握地軟件開發(fā)的流程,熟悉軟件開發(fā)的基本原則,還要讓學生鍛煉代碼的編程能力和解決實際問題的能力,并且盡可能地了解當前最前沿的軟件開發(fā)知識。[1,2]而這些知識的呈現形式,往往是最新的開發(fā)工具、程序開發(fā)語言。通過本課程的學習,既可以使學生掌握基礎的軟件開發(fā)方法,又鍛煉了學生的動手能力,為學生下一步的研究生學習或者工作奠定基礎,提高學生在計算機類開發(fā)工作中的競爭能力。
1.2 師范類學生的特點
師范類學生在入學時就確定了工作的方向,相對于其他專業(yè)的大學生,師范生的就業(yè)方向比較穩(wěn)定,一般為中學教師或教育局工作人員。因此,雖然學生在大學校園中完成了軟件開發(fā)的學習,但畢業(yè)后需要進行軟件開發(fā)的工作場景非常少,學生容易降低對于軟件工程類課程的興趣。
僅靠傳統(tǒng)教學手段,例如課堂幻燈片,或者教師的個人講述來進行軟件工程課程的教學,已無法滿足軟件工程類課程系統(tǒng)化、工程化的教學目標。如何調動學生的積極性,讓學生多動手,多參與到課程中是師范類大學教師必須面對的問題。在授課過程中,通過視頻或者漫畫的形式,以生動活潑的案例為導引,圖文互動,加深學生對軟件開發(fā)過程的理解,增強軟件開發(fā)的動手能力,更加主動地學習,是軟件工程課程教師需要進行教學反思的方向。
1.3 師范類學生的興趣
興趣是學生學習的最大動力,在軟件工程課程教學過程中,需要積極地調動學生的積極性,讓學生多動手,多參與到課程的教學和實踐中去。通過某一具體項目的引入課堂和現場實踐,幫助學生克服對軟件開發(fā)過程的煩躁心理,而軟件開發(fā)一步一步應用于實際問題,既加深了學生對軟件開發(fā)過程的理解,又增強了學生的興趣,如此即可形成良好的正反饋,改善教學的效果。[3,4]
1.4 軟件工程理論與編程實踐結合
軟件工程課程是一門實踐性很強的學科,在學習的過程中,學生不但要掌握基本的軟件開發(fā)原則,算法開發(fā)流程的適用范圍,還要將軟件開發(fā)應用到實際的問題中。在教學的過程中,可以通過多元化教學模式[5]和不同的教學方法,[6]根據學生的興趣和認知模式,積極地引導學生進入學習。引導學生通過對實際問題的思考,根據問題的特征,選擇適合的軟件開發(fā)模式、程序語言算法,對問題進行求解。
為了將理論與實踐相結合,提高學生編程能力和軟件開發(fā)的能力,在課程中,需要使用更加直觀更加前沿的教學手段。本課程就采用了機器車任務控制問題,作為軟件工程課程項目實踐的切入點。圖1給出了可編程機器車輛進行任務控制的簡單圖示。圖中機器車是一種簡單的可編程控制進行群組協作的程序實踐工具,具有單個機器控制簡單,群組協作功能強大的特點。通過將學生劃分為不同的小組,協同將控制算法應用于機器車的路徑控制工作,并完成特定的任務。在課堂學習的過程中,既鍛煉了學生的動手能力,又加深了學生對于軟件開發(fā)過程的理解,具有一定的趣味性和直觀性,有助于學生將興趣轉化為學習動力。endprint
2 軟件工程課程教學模式構建
2.1 軟件工程課程教學內容選擇
軟件工程課程涉及的知識點很多,如何合理選擇內容,既要使學生了解軟件工程的全貌,又要避免“蜻蜓點水”式的淺嘗輒止是一個教學難點。為了應對這一難點,在課程的設計上,課程以軟件工程的各個開發(fā)階段、各種開發(fā)模型為重點,兼顧新的開發(fā)模式和開發(fā)方法,同時對軟件開發(fā)的編程習慣和編程規(guī)則進行介紹。針對師范生的特點,本課程設置了“翻轉課堂”等多個項目來鍛煉學生的表達能力和講授能力。通過學生的講解,加深對課程的理解,教學相長,學生在教的過程中,既理解了課程的難點,又提高了教學的能力,達到課程和專業(yè)相結合的目的。
2.2 軟件工程課程教材選擇
軟件工程的發(fā)展迅速,僅僅依靠一兩本教材很難覆蓋當前的發(fā)展前沿,而過度依靠新出版的文獻又難以為學生打下堅實基礎。同時,軟件工程類課程的教材還需考慮中英文術語的不同。為此,課程采用了教材為主,同時加入新的期刊、雜志、網絡資料,以幾者并行的方式進行綜合性教學。
2.3 網絡資源的使用
隨著互聯網的發(fā)展,網絡上存在大量的軟件工程開發(fā)和軟件工程實踐的資源,這些資源包括教學視頻,算法源代碼,個人博客等。不同類型的網絡資源,也需要在教學過程中結合使用。在網站Github.com 上就存在大量的開源軟件項目。在學生的課余時間,可以通過手機、個人電腦等設備方便快捷地獲取這些信息,學習代碼的寫作規(guī)范,甚至參與到開源軟件的開發(fā)過程中。通過網絡資料自主學習的形式,學生可以對某一編程軟件或編程模式進行深入了解,適合學生的個性化發(fā)展。
3 結論
軟件開發(fā)課程是計算機類、軟件工程類學生了解軟件開發(fā)流程,鍛煉編程能力的主要課程。本課程的教學,為學生奠定了軟件開發(fā)領域的知識基礎,提高了學生的軟件開發(fā)實踐能力。通過為學生講授軟件工程課程,學生不僅可以掌握軟件開發(fā)的基本流程,還能鍛煉編程開發(fā)能力,對于學生接下來的研究或軟件開發(fā)、軟件測試類工作大有裨益。文章討論了師范類學生軟件工程課程中需要注意的問題,探討了軟件工程課程教學資源建設的注意事項,對于其他院校的軟件工程課程建設也有借鑒意義。
*通訊作者:武杰
基金項目:陜西師范大學2017年度校級全英語教學示范課程項目“智能計算”課程
參考文獻
[1] 陳長清,陳傳波,肖來元,吳濤,裴小兵.項目驅動產學結合的軟件工程系列課程構建探討[J].計算機工程與科學,2011.33(A1):178-181.
[2] 吳川.面向獨立學院的《軟件工程》課程鏈建設研究[J].科技經濟導刊,2016.32:148,153.
[3] 黃昭,徐涵.高校計算機專業(yè)全英文授課之問題與教學方法探析[J].計算機教育,2016(3):124-126.
[4] 于汪洋,黃昭,胡曦明.基于認知互換的計算機公共課教學模式探索[J].教育教學論壇,2006.13:144-145.
[5] 劉輝,馮瑩瑩,李林國,余世干,李淑敬.軟件工程課程多元化教學模式研究[J].黑河學院學報,2017.3(3):81-82.
[6] 代才.行為導向法在文科師范生的PS教學中的使用[J].教育界,2015(33):59.endprint