现代软件工程 教课心得
現實世界是最好的老師, 我們這些叫 “老師” 的人, 充其量是個助教。 但是有些助教卻不讓學生見到老師。
****************
老師都想把課教好, 學生都想把課學好. 但是我們常常看到一個學期過后, 老師, 學生都有很多抱怨 (例如:? 各種良好愿望和計劃在實施中的問題).? 看了上面的例子, 我腦海中浮現這樣的圖畫:
游泳教練認為經過各項基本訓練,? 學員在第三年的時候, 應該達到了能組隊游泳渡江的能力, 于是教練幻想這樣的畫面:
?
期望學生們綜合運用平時訓練獲得的能力, 組成團隊, 互相幫助, 自主學習, 集體渡江成功, 老師和TA 只用在小船上實施必要的救助即可.
?
但是良好的愿望碰到了尷尬的現實,這是老師在操作系統課上發現的現實:
我不知道在大江大河中游泳, “抄襲, 應試” 是怎么實現的, 所以無法類比。 放棄倒是很好類比,? 很多 “游泳健兒”到了江邊, 找各種借口 - 不游了!
大學生都有一定的閱歷和自學能力, 他們通常能很容易地掌握下圖中第一步到第四步。 ?但是社會要求往往是第五步 - “精通”。 這第四步到第五步之間有一個很大的鴻溝。 ?要跨過這個溝, 學生要學一些比較乏味而且貌似不太相干的內容, ?例如馬的骨骼結構, ?若干原理, 若干基礎實踐課程如素描等等。 老師怎么創造一種學習/實踐/反饋的環境, 讓學生能通過各種手段跨過這個溝。 (參考 卓越大學教師的建議).
在我教的課中, 絕大部分學生都下河里真正地游了好幾次,? 還完成了一次團體橫渡江河的挑戰。? 他們感覺很累, 但是也很有收獲, 算是體會到了實際做軟件是怎么回事。? 下面是我教 <現代軟件工程> 的一些心得:
Deadline - 學生生活是什么驅動的? 是對老師規定的服從, 還是對技術的熱情, 還是為中華民族第N次偉大復興? 還是deadline?? 大部分人的作業都是要等到交作業的前一天夜里搞出來的。 在軟件工程課上, 一個晚上是搞不出來可以使用的團隊項目的, 為此課程設置了很多檢查點:
?
沒有這些檢查點, 同學們會在最后演示的時候告訴你 - 我們盡力了, 搞了三天,? 這次給我們及格吧, 我們以后一定會繼續改進的!然后他們再也沒有消息了。 ?
不要盲目追求新:? 1999年, 有人問軟件工程專家 David Parnas: 將來會有什么令人興奮的軟件工程技術出現? 答: 最有用的技術不在將來,
而是已經在我們中間好些年了, 只不過我們沒好好用。軟件工程課要把那些久經考驗的原則和技術交給學生, 而不能停留在浮光掠影地介紹當前最熱門的做法。 老師要展現給學生的是, 軟件工程的原則,技術仍然能解決前軟件開發的各種挑戰 - 老師自己有這個信心和經驗么?
?
附: 教學計劃? (http://www.cnblogs.com/xinz/archive/2011/11/27/2265425.html)
教學計劃總長: 16 周 (扣除放假之后)
授課: 12 - 14 次 老師授課
輔導課: 6 - 8 次 (輔導/交流/演示) 學生主動匯報進展, 心得, 提出問題, 老師及專業人士給予輔導。
學生項目: 個人項目, 結對編程項目 (兩個), 團隊項目
| Week | Date | Lecture (授課) | Talk (輔導/交流/演示) | Project |
| 1 | 11/1 | Intro (課程簡介, 分組) I-project 個人項目介紹 | ? | i-project (個人項目) |
| 2 | 11/8 | Software Engineering (軟件工程概論),Unit Test (單元測試) | ? | ? |
| 3 | 11/15 | Personal Software Process (個人軟件流程 PSP), Code Quality (代碼質量的各種標準) | SilverLight | pair project (1) 結對項目 (1) |
| 4 | 11/22 | collaboration (兩人合作), influence (影響說服別人的多種方式) | P1 review | ? |
| 5 | 11/29 | Team-CMMI (團隊結構, 文化, 成熟度模型 CMMI)Development Process (軟件開發的各種模式) | ? | pair project (2) 結對項目 2 |
| 6 | 12/6 | Innovation (軟件業的創新)Myths of Innovation (創新的迷思),Innovator's dilemma (創新者的兩難) | P2 review | ? |
| 7 | 12/13 | NABC (項目可行性分析)Spec and PM(軟件規格說明書, 項目經理) | Book Report | Team Project Kick Off 團隊項目開始 |
| 8 | 12/20 | Testing(測試) | ? | Milestone 1 (里程碑 1) |
| 9 | 12/27 | Proj. Mgmt w/ TFS (用TFS 進行項目管理) | ? | daily scrum |
| 10 | 1/3 | Scenarios (基于場景的設計) | ? | daily scrum |
| 11 | 1/10 | Release (軟件的發布) | ? | alpha release |
| 12 | 1/17 | MSF (微軟軟件解決方案框架) | Review | Review/BugBash |
| 13 | 1/24 | Dev-History (微軟軟件開發管理的歷史) | feedback | Milestone 2 (里程碑2) |
| n/a | 1/31 | Holiday | ? | Holiday |
| n/a | 2/7 | Holiday | ? | Holiday |
| 14 | 2/14 | Risk Mgmt (軟件項目的風險管理) | Book Report | daily scrum |
| 15 | 2/21 | ? | ? | daily scrum |
| 16 | 2/28 | ? | UI/UX report | beta release |
| n/a | 3/7 | Postmortem (軟件項目的回顧與反思) | ? | ? |
| 17 | 3/14 | ? | Final Review (最終匯報, 復審) | ? |
總結
以上是生活随笔為你收集整理的现代软件工程 教课心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python根据参数判断性别准吗_根据数
- 下一篇: 商业拜访需要注意的13个小细节