20172304 2018-2019 "Java software architecture and data Structure" chapter I chapter II Summary of learning contents
Chapter I. Overview
1.1 Software Quality:
Several features of high-quality software:
Correctness: To what extent the software meets its specific needs
Reliability: Frequency and degree of risk of software failures
Robustness: The extent to which an error can be handled appropriately
Usability: How easy it is for users to learn and perform tasks
Maintainability: How easy it is to make changes to the software
Reusability: The ease with which software components can be reused for the development of other software systems
Portability: How easy it is for software components to be used in multiple computer environments
Operational efficiency: the degree to which the software accomplishes its objectives without wasting resources
1.2 Data structures (how computers store and organize data)
program = data structure + algorithm
Software = Program Plus software engineering
Chapter Two algorithm analysis
2.1 Algorithm Efficiency analysis
Algorithmic efficiency is typically expressed by CPU usage time
Algorithm analysis is the analysis of the algorithm from the angle of efficiency
Algorithmic analysis is the foundation of computer Science
2.2 Growth function and Big O notation
Growth function: Represents the relationship between the size of the problem (n) and the value we want to optimize the function represents the time complexity of the algorithm (CPU usage time) and space complexity (memory space)
The asymptotic complexity of the algorithm (the general nature of the growth function as n grows)
Focus on the main item of the function (that is, the fastest growing one)
Progressive complexity is called the Order of the algorithm
Comparison between the items of the growth function
the number of plates |
15N2 |
15n |
15n2+45n |
1 |
15 |
45 |
60 |
2 |
60 |
90 |
150 |
5 |
375 |
225 |
600 |
10 |
1500 |
450 |
1950 |
100 |
150 000 |
4500 |
154500 |
1000 |
15 000 000 |
45000 |
15045000 |
10 000 |
1 500 000) 000 000 |
450 000 |
1 5000 450 000 |
100 000 |
150 000 000 000 |
4 500 000 |
150 004 500 000 |
1 000 000 |
15 000 000) 000 000 |
15 000 000 |
15 000 045) 000 000 |
10 000 000 |
1 500 000 000 000 000 |
450 000 000 |
1 500 000 450 000 000 |
Some growth functions and their asymptotic complexity
| Growth Function | order | mark
|t (n) =17| O (1) | Constant Type |
|t (n) =3log n| O (log n) |
|t (n) =20n-4| O (n) | linear |
|t (n) =12n log n+100n| O (n log n) |n log n|
|t (n) =3n2+5n-2| Square type |
|t (n) = 8n^3+3n2| O (n^3) | cubic type |
|t (n) =2^n+18n2+3n| O (2^n) | O (2^n) | index type |
If two algorithms complete the same task with different growth functions, such as O (N2), then the two are largely equal in terms of operational efficiency.
2.3 Comparison of growth functions
Problems in teaching materials learning and the solving process
- Question 1:xxxxxx
- Issue 1 Solution: XXXXXX
- Question 2:xxxxxx
- Issue 2 Solution: XXXXXX
- ...
Problems in code debugging and the resolution process
- Question 1:xxxxxx
- Issue 1 Solution: XXXXXX
- Question 2:xxxxxx
- Issue 2 Solution: XXXXXX
- ...
Code Hosting
(run result of statistics.sh script)
Last week's summary of the wrong quiz
- Wrong question 1 and reason, understand the situation
- Wrong question 2 and reason, understand the situation
- ...
Reviews Template:
- Blogs that are worth learning or questions:
- Something worth learning or doing in your code:
- Based on the scoring criteria, I scored this blog: xx points. The score is as follows: XXX
reviewed the classmates blog and code
- This week's study of the knot
- 20172310
- Pairs of learning content
- Last week's blog comments on the situation
- Study No. 1
- Study No. 2
- Study No. 3
- Study No. 4
...
Other (sentiment, thinking, etc., optional)
Xxx
Learning progress Bar
Xx
|
lines of code (new/cumulative) |
Blog Volume (Add/accumulate) |
Learning Time (new/cumulative) |
Important Growth |
Goal |
5000 rows |
30 Articles |
400 hours |
|
First week |
075/200 |
1/1 |
05/20 |
|
Second week |
560/500 |
1/2 |
13/38 |
|
Third week |
972/1000 |
1/4 |
21/60 |
|
Week Four |
694/1666 |
1/5 |
21/90 |
|
Week Five |
1544/3095 |
1/6 |
30/90 |
|
Week Six |
600/3627 |
1/7 |
30/120 |
|
Resources
1.
2.
3.
4.
20172304 2018-2019 "Java software architecture and data Structure" chapter I chapter II study summary