20162314 2017-2018-1 《Program Design & Data Structures》Learning Summary Of The First Week
Summary of teaching materials
Algorithm analysis is the basic project of the computer science.
Increasing function prove that the utilization of the time and space are related with the scale of the problem.
The order of algorithm is determined by the main term of increasing function.
The order of algorithm provides an upper bound to a increasing function.
Faster CPU can not supply the ineffective of an algorithm as the scale of the problem growing.
Analysing the complexity of an algorithm often needs analysing the execution of the loop.
The execution of the inner loop and the outer loop must be considered when analysing a nested loop.
Tower of Hanoi contains the complexity of the order of index number,even though it is ineffective,the implement is elegant and concise.
Problem and solution in learning materials of teaching.
According to the chart, if the time complexity of A4 is n^4, the scale after improvement should be 1.78s4. But the answer is s4+3.3, due to the log2(10)≈3.3
so I suppose the answer could be s4+log2(10), and if so, the time complexity is 2^n. The question is solved.
Problem and solution in debugging code.
problem: In TowersOfHanoi conductor, whether the time will increase or not when the number of disk rise.
Number of disk:4.
Number of disk:5.
The answer is yes, time rises from 1s 124ms to 1s 160ms.
problem: what is the distingguish between direct recursion and indirect recursion and How to use it .
If the current location is not the bottom-right corner, we search for a solution in each of the primary directions, if necessary.
First, we look down by recursively calling the traverse method and passing in the new location.
The logic of the traverse method starts all over again using this new position. It’s as if each call
to traverse is attempting to solve a new, slightly smaller, maze.
---from the teaching materials.
Code hosting
Summary of error for last week.
Evaluate for my partner
- Advantage and problem in the blog:
- Concise and comprehensie
- Uncleary to the content
- Mould is amazing
- Advantage and problem in the code:
- Serious writing.
- Wonderful idea
- Too less
Learning situation of partner
- Learning content of partner:
- Algorithm
- Recursion
- HanoiTowers and maze
Anything else that want to say
Recently, I'm preparing for the CATTI and I thought I've never written blog in English before.Therefore, I suppose I could do it once a week as the homework weekly.
I have to say it's a hard work to start with.But it might be benefit for me if I can take this as a long run.
Academic progress check
Code line number(increasing/accumulative) | Blog number(inc/acc) | studying time(inc/acc) | progress | |
---|---|---|---|---|
target | 5000lines | 30articles | 400hours | |
First week | 180/180 | 1/1 | 20/20 | |
Second week | 300/500 | 2/4 | 18/38 | |
Third week | 500/1000 | 3/7 | 22/60 | |
Fourth week | 300/1300 | 2/9 | 30/90 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:XX小时
实际学习时间:XX小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)