標籤:步驟 瞭解 軟體 system 複雜度 工程 ext 一周 隊列
20172306 2018-2019 《Java程式設計與資料結構(下)》第一周學習總結教材學習內容總結第一章 概述
(程式=資料結構+演算法 軟體=程式+軟體工程)
- 1.1 軟體品質
- 軟體工程師一門關於高品質軟體開發的技術和理論的學科
- 軟體工程的目標:1.解決正確性問題 2.按時且在預算之內給出解決方案 3.給出高品質的解決方案 4.以合情合理的方式完成上面的事情
- 高品質軟體的特徵
- 正確性:我認為是我們所做的都是為瞭解決一個正確性問題。
- 可靠性:降低軟體的故障程度和機率
- 健壯性:可以很好地解決出現異常的情況
- 可用性:保證該軟體可以很好地使用
- 可維護性:對於軟體,是一個長期使用和改進的過程,因此,一個好的軟體需要有維護性,可以持續的維護和發展
- 可重用性:我認為是創造的軟體可以用在另一種軟體上,提高了效率也提高了利用率
- 可移植性:就是一款軟體可以在很多不同的環境中同樣適用
運行效率:一個好的軟體的運行效率也是條件之一。
- 1.2 資料結構
- 軟體開發的目的是構建軟體,而不僅僅是編寫代碼。
- 棧可用於顛倒資料集的順序;隊列可以保持其資料的順序
- 自測題
- 可靠性關注的是發生故障的頻率和環境;健壯性關注的是出現故障會發生什麼
- 結構良好、設計良好以及文檔說明良好的軟體更容易維護
第二章 演算法分析
(演算法分析是電腦科學的基礎)
教材布置問題解答
- EX2.1 下列增長函數的階次是多少?
- a.10n^2+100n+1000
解:階次就是漸進複雜度,對於該三項來說,第一項增長速度最快,主項是n^2,所以階次就是n^2.
- b.10n^3-7
解: 10n^3的增長速度最快,因此階次為n^3
- c. 2^n+100n^3
解:就這兩項而言,我們可以看前面的增長函數的比較,可以發現n^3增長速度快,所以階次為n^3.
d. n^2logn
解:階次為n^2logn.
- EX2.4請確定下面程式碼片段的增長函數和階次
for(int count = 0 ; count < n ; count++) for(int count2 = 0 ; count2 < n ; count2 = count2 + 2) { System.out.println(count,count2); }}
解:增長函數是n^2/2;階次是n^2. 因為先看裡面的,會發現內迴圈要進行n/2次,外迴圈要進行n次,根據之前學的,將內外相乘,則為n^2/2。
for(int count = 0 ; count < n ; count++) for(int count2 = 0 ; count2 < n ; count2 = count2 * 2) { System.out.println(count,count2); }}
解:增長函數是nlogn,階次為nlogn. 因為,可以先列出幾個,會發現內層迴圈次數為logn,而外層是n次,內外相乘為nlogn .
結對及互評點評模板:
點評過的同學部落格和代碼
其他(感悟、思考等,可選)
新學期開始了,又要和Java這門課鬥智鬥勇了!上學期這門課學的不咋地,這學期不知道能夠學成什麼樣。假期說起部落格的事情,我說我不愛寫部落格,我爸說,你都看書了為什麼你就不好好把部落格寫的好點呢?我一想,有點道理,所以呢,剛開學,還是要對自己有信心的,爭取這學期能保持好好寫部落格,學好這門課!!!
學習進度條
|
程式碼數(新增/累積) |
部落格量(新增/累積) |
學習時間(新增/累積) |
重要成長 |
| 目標 |
5000行 |
30篇 |
400小時 |
|
| 第一周 |
0/0 |
1/1 |
6/6 |
|
參考資料
20172306 2018-2019 《Java程式設計與資料結構》第一周學習總結