雖然已經2年沒有教授軟件工程課程,可是當年在教學過程當中遇到的問題與困難仍是歷歷在目:html
1)教學內容以瀑布模型爲主,內容陳舊,互聯網和移動App開發經常使用的敏捷方法內容很是少;git
2)教學方法以講授爲主,實驗課也是寫文檔,代碼量不多,教師和學生都不喜歡;github
3)教學考覈筆試形式,學生主要靠背,有些像思政類的課程。編程
做爲教師,我也在尋找軟件工程課程的有效教學方法,也進行了一些嘗試。網絡
2019年7月25日-28日,有幸在北京參加北京航空航天大學羅傑老師團隊舉辦的「2019年暑期軟件工程基礎課程教學培訓班」。在4天的軟件工程課程培訓中,我徹底將本身的身份轉換爲上課的學生,接受北航軟件工程課程的學習,但願從中最大程度的學習到北航軟工教學成功經驗。app
通過培訓,有所得,特寫總結,以備之後查閱,也算標誌本次培訓工做的結束。工具
在此,特感謝羅傑老師,鄒欣老師和周筠老師。學習
2019年07月初,接到周筠老師贈送的《構建之法(第三版)》一書,在此表示感謝,也感謝組委會對本次暑期培訓的精心準備與付出。測試
在正式培訓以前,羅傑老師安排預培訓做業。其實,這點着實然我感到意外,這說明本次培訓其實在7月中間就已經開始了,1體現了組委會認真負責的態度和無私的付出。編碼
預培訓做業有兩個:
1)快速閱讀《構建之法》並提問。
做業連接以下:
https://edu.cnblogs.com/campus/buaa/2019BUAASummerSETraining/homework/3398
個人做業提交:
https://www.cnblogs.com/Teacher-Li/p/11184693.html
2)程序開發。
項目是一個解決地鐵線路的程序開發問題,連接以下:
https://edu.cnblogs.com/campus/buaa/2019BUAASummerSETraining/homework/3407
個人做業提交:
https://www.cnblogs.com/Teacher-Li/p/11193949.html
https://www.cnblogs.com/Teacher-Li/p/11197583.html
https://www.cnblogs.com/Teacher-Li/p/11217338.html
個人代碼Github
https://github.com/TeacherWLee/BUAA-Subway-Project
2019年07月25日-28日期間,日程安排以下表。
第1天:羅傑老師分享北航軟件工程課程經驗,並開始結對編程,最後鄒欣老師分享教學經驗。
羅老師將北航軟件工程課程實施具體流程和課程經驗就行分享。
結對編程對象是廖雪花老師,咱們一塊兒完成結對編程任務。
結對編程做業要求:
https://edu.cnblogs.com/campus/buaa/2019BUAASummerSETraining/homework/3415
結對編程做業提交:
https://www.cnblogs.com/Teacher-Li/p/11246575.html
結對編程代碼:
https://github.com/TeacherWLee/BUAA-Subway-Project
第2-3天:開始團隊項目的第一輪和第二輪迭代,鄒欣老師分享AI課程教學經驗與資料。
團隊共4位成員,包括:四川師範大學李巍、四川師範大學廖雪花、西南民族大學周緒川、桂林航天工業學院劉建華。
團隊項目是七彩社團管理,墨刀原型演示以下:
https://org.modao.cc/app/icenmfeovgjywqdijksdm71of0el
第4天:上午完成第二輪迭代,並進行總結。
這次培訓最大收穫是北航大學計算機學院課程整體規劃方式和軟件工程課程教學方法。
1)北航計算機學院從大二開始,每一個學期設置一門硬核課程,這門課程不只僅是教學生相關知識那麼簡單,更重要的是,很是強調學生的實際能力鍛鍊。
例如,計算機組成原理課程的要求是學生設計並製做出一塊CPU、編譯原理課程的要求是學生開發一個編譯器、軟件工程課程要求是學生使用敏捷過程開發出一個可用的軟件做品。
2)北航軟件工程課程內容包括我的項目、結對項目和團隊項目,任務難度逐步增長,是很是好的學習曲線。此外,在項目進行過程當中,很是注重開發團隊間的交流和過程管理,學生要寫博客、要有Git的提交痕跡。
咱們團隊須要在2天時間內,開發出一個大學生社團管理系統的原型系統,並且要進行兩輪迭代,時間緊任務重。團隊共4位成員,包括:四川師範大學李巍、四川師範大學廖雪花、西南民族大學周緒川、桂林航天工業學院劉建華。
在團隊項目開發過程當中,我對團隊項目開發有了新的認識:
1)在團隊項目進行過程當中,咱們使用了標準的Scrum流程,使用了白板、燃盡圖、頭腦風暴等工具。原本覺得對Scrum已經很是瞭解,可是在實際項目進行過程當中,仍是出現了一些意外狀況,例如某位成員電腦不能聯網致使墨刀協做不能進行等。
所以,軟件工程具備社會屬性,實際開發過程與理論開發過程每每是不一樣的,這也讓我對敏捷項目管理有了新的認識。
2)團隊溝通管理的重要性和困難性。在團隊項目進行過程當中,咱們團隊4個成員在一塊兒進行工做,這多是團隊協做最理想的方式,溝通成本最低的方式。在這種模式下,咱們進行了頭腦風暴和站立會議等方式進行有效溝通。不少解決方案都是在團隊溝經過程中得出的,所以在軟件開發過程當中,必定不能自覺得理所固然的作判斷,必定要團隊多進行有效溝通。
3)敏捷估算。項目時間和成本的估算,每每跟實際開發狀況存在差別,並且每每比估算值要高不少。在每輪迭代過程當中,咱們進行了詳細的計劃安排,可是在實際過程當中,因爲一些不可預見問題(好比網絡中斷)和一些估算不足問題(好比爲博客書寫預留較短期),實際進度與估算進度不相符,每每實際進度要更長一些。
在培訓過程當中,存在一些遺憾的事情,若是培訓能再來一次,我能夠作的更好。
1)時間不足
在培訓過程當中,培訓任務是很繁重的,不少老師也都有很累很忙的感受。因爲時間不足,我在此次培訓過程當中,有不少地方作的很差。例如,測試用例只寫了3個、部分博客總結寫的比較簡短等。若是時間再長一些,或者培訓過程再來一次,我會調整時間安排,作的更好。
2)有些工具與方法未實踐
在培訓過程當中,軟件做品使用墨刀快速原型的方法展示,團隊4人沒有編碼工做,所以一些配置管理和團隊管理工具和方法(例如Git等)沒有實踐。咱們也沒有使用Scrum管理工具,在任務分配等方面存在問題,沒有在實踐中發現,燃盡圖、白板等數據也存在問題。
結對編程
頭腦風暴與技術討論
每日站會
團隊答辯
培訓班老師、學生和助教合影
咱們使用思惟導圖工具對課程主要內容和咱們主要工做進行了記錄。
導圖地址:
http://naotu.baidu.com/file/2132493785095534772dfa945755de5c?token=3fa8edbf18a00fac