在這幾年推廣《構建之法》軟件工程教學的過程當中,我看到不少老師在講軟件工程的時候,雖然講了不少年,可是手頭沒有任何項目,學生或者現想(獲得一些大而無當,沒法在一學期內完成一個可用版本的項目), 或者抄襲一些經典模板題目(圖書館管理...) 。沒有好的實踐素材,教學質量也不能提升。html
爲什麼不能從身邊獲取需求,解決自身的痛點呢?咱們舉一個例子:算法
對於大學生來講, 英語學習,經過考試是一個剛需。 一我的的英語詞彙量有多少,是一個不少大學生都關心的問題。 服務器
如今的英語學習App 都很完美了麼? 未必,咱們的學生作過屢次調查,發現各類App 都有不少提升空間。網絡
這個「軟件」 作出來,很容易鑑別質量麼?固然,全部大學生都能判斷這個App 的好壞; 有實際用戶麼?有。 做爲對比,同窗們作的 「圖書館管理系統」 有人能實地使用呢? 能借書出來麼?學習
這個「軟件」 的可行性如何? 能作出來麼? 網上有一些數據:測試
①大部分單詞的出現頻率;htm
②公開的英語詞彙解釋。 blog
利用這些數據,就能夠作一個小的詞典App。基本功能有:查詞,顯示詞彙的解釋。開發
擴展功能:get
- 各類專業詞彙、特別詞彙表 (四級、六級)的支持
- 服務器/客戶端的擴展,支持動態下載文件
- 能夠作簡單的「單詞本」, 「背單詞」 功能。
- 能夠考慮在不一樣設備同步單詞本,這就要考慮用戶的管理,網絡模塊
- 再深刻下去, 就能夠作 「詞彙量」 功能。 若是咱們讓一個用戶回答單詞單詞的釋義, 大約20 個左右, 根據用戶回答的正誤和所選單詞的頻率數據, 就能大概推算出這個用戶的詞彙量是多少。 若是算法好了, 就能夠和UI結合, 咱們能夠給用戶屢次測試 (每次 20 個單詞), 測得越多,算法就越準。
- 「詞彙量」 算法還可讓學不斷改進。
咱們能夠展示他在全部用戶中的排名。
用戶不會的單詞就能夠放到用戶的單詞本中。
作到這個程度, 這樣的App 就會有一些用戶了, 那麼下面就能夠根據用戶的反饋,考慮進一步的功能/服務。 例如,用戶學習單詞是一個手段,他們的目的是什麼呢?是閱讀高質量的英語文章,仍是經過某種考試? 仍是別的? 這就開始了下一輪的用戶調查和開發流程。