袁嵩 莊子健

摘? 要: 在新工科背景下,為了培養能夠適應軟件產業發展需求的高素質應用型人才,分析了當下軟件工程專業教學模式中填鴨式教學和一錘定音的考核形式的弊端及問題,提出采用研討課、電腦課堂、階段性測試等新型的教學模式,以及模仿學習高質量代碼、提高團隊協作能力、在競爭中開拓創新思維、雙線齊下的企業項目實訓等措施,來提高學生的實踐動手能力和創新能力,為我國軟件產業的發展提供智力和人才支撐。
關鍵詞: 新工科; 軟件工程; 教學模式; 動手能力
中圖分類號:G642? ? ? ? ? 文獻標識碼:A? ? 文章編號:1006-8228(2020)02-95-03
Research on the teaching mode of software engineering specialty in the
background of new engineering
Yuan Song, Zhuang Zijian
(College of Computer Science and Technology, Wuhan University of Science and Technology, Wuhan, Hubei 430065, China)
Abstract: In the background of new engineering, in order to cultivate the high-quality applied talents who can meet the needs of software industry development, the disadvantages of the current teaching mode for software engineering specialty, such as spoon-feeding teaching and one-stroke assessment, are analyzed, new teaching modes such as seminar, “computer classroom” and periodical achievement test are proposed with the measures such as learning high-quality code by imitating it, improving teamwork ability, developing innovative thinking in competition, and double-line enterprise project training etc., to improve students' practical ability and innovation ability, so as to provide the intellectual and talent support for the development of China's software industry.
Key words: new engineering; software engineering; teaching mode; hands-on ability
0 引言
現如今,世界范圍內新一輪科技革命和產業變革加速進行。人工智能、大數據、云計算……已經逐漸成為了科技的代名詞。2017年形成的“復旦共識”、“天大行動”和“北京指南”構成了新工科建設的“三部曲”,奏響了人才培養主旋律,開拓了工程教育改革新路徑[1]。同時,對高等工程教育提出了新要求、新思路。
經過10多年發展,軟件工程專業成為新技術、新產業、新經濟的基石,被譽為“新工科的探路者”。培養能夠適應軟件產業需求發展的高素質應用型人才,強化學生的實踐動手能力已成為目前的主要任務。面對當前軟件工程專業教學模式日益凸顯的缺點和短板,必須做出相應的調整與創新。
1 現有的軟件工程專業教學模式存在的問題
1.1 “填鴨式”教學易導致同質化
目前大部分高校課堂采取的仍是傳統的“填鴨式”教學模式,教師在講臺上以灌輸的形式給學生講述知識。“灌輸”很大程度上是單向“做功”,容易導致師生之間缺乏交流,教師難以收集到學生反饋回來的不同思想,個性化的培養也就無從談起。長此以往,“填鴨式”教學培育出來的學生幾乎都是一個模子刻出來的,同質化現象十分嚴重。
1.2 “一錘定音”的考核模式導致學習具有“目的性”
目前高校的考核制度大多是以期末閉卷筆試的形式進行,在這種形式下,考試重點就成了學生學習知識的“方向標”,一些考試沒有涉及到的,但是同樣重要的知識點就會被選擇性地忽視掉,造成知識體系的不完整。并且,為了應對考試,學生在鞏固知識點的時候會局限于紙面上的題目,而忽視實際中對知識點的運用。如此惡性循環,就會導致畢業之后只會“紙上談兵”但是實際動手能力較差。
1.3 缺乏工程實踐經驗
對大部分人來說,大學畢業意味著步入社會。因此,在大學期間的社會預熱是很重要的。但是目前軟件工程專業的教學模式存在工程性缺失的現象,實踐環節較為薄弱,致使學生在校期間過于注重理論知識,忽視了實踐的重要性,缺乏工程實踐經驗,不了解企業的項目開發流程。這些畢業生融入社會的過程中就會經歷很多挫折,最終出現“學生找不到工作,企業招不到人才”的怪象。
2 軟件工程專業課程教學創新
2.1 研討課模式
2018年11月教育部在《關于政協十三屆全國委員會第一次會議第4004號(教育類380號)提案答復的函》中指出高??赏ㄟ^研討課模式培養學生分析和解決問題的能力、表達溝通能力、終身學習能力、道德反思能力和全球化視野[2]。為響應國家政策,現就軟件工程專業實踐動手能力要求較高的課程,嘗試開展研討課模式。
在研討課之前,教師可將學生進行分組,對一個大的課程設計進行模式或者功能的分工。在研討課上,小組通過報告或是PPT的形式對自己開發的部分進行功能展示以及細節描述,包括數據結構的選擇,算法設計實現遇到的困難。教師和其他小組的同學可就任意的疑難點隨時與發言者進行討論。等所有的小組都展示完畢后,教師可對表現優秀的小組進行肯定,對不足的地方提出改進意見。學生在聽取其他小組的功能報告后,對自己未實現的部分也有了一個大致的了解,再去實現時,就能夠以此為借鑒去探索更加優化的開發途徑。
這種以學生為主體的研討課模式,學生即老師,老師即學生。學生可以聽取別人的想法,并將自己的想法糅合進去,開發出有自己創意的課程設計;教師在指正的同時也在不斷吸收學生所提供的新思想,以便歸納總結并傳播,從而形成一個互利雙贏的局面。
2.2 “電腦課堂”
軟件工程專業相關課程對學生的動手能力要求很高,無論是在學習一門編程語言(C、C++、Java等),核心課程(數據結構、操作系統等),還是網站開發(.NET架構、Java EE等),都需要大量的動手操作。
在學校條件允許或是學生可自備電腦的情況下,設計“電腦課堂”的構想。在課前,教師將編程任務布置給學生(如給出算法的思想或偽碼要求學生編程實現或是將一個完整程序中的某一小塊核心代碼挖去后由學生補充);在課堂上,教師先統計調試成功的人數,然后選出質量最好的代碼進行課堂講解。在解決調試中遇到的問題時,教師可以利用電腦投屏軟件,讓所有出現的錯誤在全班面前呈現出來;在糾正報錯時,可先由調試成功的同學進行解答,如果遇到的問題比較經典或是重要,則由教師負責講解。通過這種“電腦課堂”的形式進行授課,一方面能夠更全面地見識問題,以至于更快地發現問題并解決問題,同時能夠調動學生在課堂上的積極性并提高學生的編程能力。
2.3 新增階段性測試,“4+3+3”式考核
突擊應對期末考核是造成學生基礎不扎實、應用能力弱、實踐能力差的主要原因[3]。為了提高編程能力需要平時多加練習,因此提出“階段性測試”的考核方式,主要包括:①日常算法設計:教師可在部分章節學習完畢后,根據所學內容提出一定的需求,旨在運用課本理論知識解決實際問題,要求學生自行設計算法(需給出詳細注釋以及算法設計思路)并規定提交時間;②在線編程測試:教師通過在線測試網站,在限定時間范圍內指定若干道編程題讓學生進行在線編程。評定時,前者根據算法合理性、代碼規范化、功能及擴展情況進行評分;后者根據系統上提交成功并調試通過的題目數量進行評分。最終將兩部分的分數綜合,作為階段性測試的成績,占比40%。根據平時的出勤以及作業完成的認真度計算平時成績,占比30%。最終通過期末考試,對全書的知識點進行統一考查,占比30%。三個部分加起來,構成該門課的最終成績。課程成績構成如圖1所示。通過這種階段性的考核模式,能有效提高學生對知識的掌握程度以及應用能力。
3 軟件工程專業學生動手能力的加強措施
3.1 學會模仿
閱讀和維護高質量的開源軟件。剛開始動手編程時,很多學生面臨著無從下手的窘境。此時可以在網上尋找一些高質量且具有一定規模的開源代碼,根據對開源軟件的理解進行代碼標注、代碼質量分析,并對其進行維護,完善其功能,糾正其缺陷[4]。通過學習別人編寫的高質量代碼以及代碼風格,就會對編碼規范和軟件設計模式有一個大體的認識,從而可以模仿著寫出類似的代碼。通過不斷地模仿,摸索其中的經驗并總結在維護中遇到的問題,對以后的編程生涯會有很大幫助。
3.2 貼近企業化開發,從團隊協作開始
一個復雜的軟件系統往往是由一個分工明確、高度協作的軟件團隊按照工程化的方法共同完成的。團隊協作能力是貫穿整個大學生活以及職業生涯的主旋律。教師可通過布置團隊合作項目,或是指導學生組建團隊參加大學生課外科技活動競賽,采用企業化項目管理模式,實施團隊分工協作,培養學生的團隊協作能力、集體工作或項目的領導和參與能力(包括參與討論、提出自己的觀點、參與執行),并且遵循軟件開發編程規范及原則,按照軟件開發流程,提高軟件開發、運營和維護的效率。
3.3 形成競爭氛圍,在競爭中開拓學生的創新思維
競爭氛圍是一種催化劑,往往能激發學生的創新思維。在學生掌握了一定的基礎理論知識以后,教師可布置課程設計任務,例如給出一個軟件APP的部分需求或雛形,要求學生自由組隊、討論、設計、分工,最終實現。期間教師可抽查小組的工作進度,可參與討論或給予適當的引導。最終選出最有創意,設計最完善的作品進行展示,并對其他作品的特色之處進行點評。一旦形成競爭氛圍,學生就不會僅僅滿足于實現基本功能,往往會別出心裁,出奇制勝。
3.4 “雙線齊下”開展企業項目實訓
校企共同制訂培養計劃,研討實訓內容,采用“雙線齊下”的方式對學生進行工程實踐指導和疑難解答。線上,企業將項目內容以文檔的形式呈現出來,內含程序框架、組成模塊、開發環境、部分核心代碼的偽碼以及程序運行效果圖。在學生對項目基本了解之后,再通過企業提供的項目開發視頻,聽取企業項目工程師對部分項目內容的開發講解,學習他們的開發經驗,最后自己動手實現項目。線下,安排企業教師就學生在開發項目過程中遇到的問題進行答疑解惑,可就學生遇到的普遍性問題進行重點講解。
通過線上與線下交叉進行的方式引導學生進行項目開發,讓學生更深層地了解企業項目開發流程,適應企業的開發強度,對學生將來步入社會有很大的幫助。
4 結束語
在新工科背景下,軟件工程專業需要通過教學模式改革來培養滿足未來軟件產業需要的高素質應用型人才。堅持以學生為中心的教學理念,問學生志趣變方法[5],采用新型的課程教學模式,提高學生課堂參與度,調動學生的積極性。增加階段性測試,強化日常編程訓練。加強團隊協作、形成競爭氣氛、積極開展企業實訓,最終提高學生的實踐動手能力,為我國軟件產業發展提供智力和人才支撐。以新工科建設為重要抓手,持續深化工程教育改革,是目前高等工程教育發展的必然趨勢,基于新工科理念的教學模式仍需要不斷的探索和完善。
參考文獻(References):
[1] 新工科建設指南(“北京指南”)[J].高等工程教育研究,2017.4:20-21
[2] 教育部印發《關于政協十三屆全國委員會第一次會議第4004號(教育類380號)提案答復的函》[EB/OL]http://www.moe.gov.cn/jyb_xxgk/xxgk_jyta/jyta_jyfzyjzx/201901/t20190122_367767.html,2018-11-1
[3] 張其文,張秋余,顧群.面向新工科的軟件工程應用型人才培養模式研究[J].西部素質教育,2018.4(15):159-160
[4] 毛新軍,尹剛,尹良澤,張春元,毛曉光.新工科背景下的軟件工程課程實踐教學建設:思考與探索[J].計算機教育,2018.7:5-8,13
[5] “新工科”建設行動路線(“天大行動”)[J].高等工程教育研究,2017.2:24-25