Week 7:
This week's lecture focused on writing proofs, which was similar to last weeks lecture. The first part of the lecture looked at proving by cases. From the lecture, I learnt to split my arguments into different cases and prove them independently. This enables me to cover all possibilities and I found such method to be very useful, especially when proving odd and even cases. By reviewing the proof structure learnt in the previous two lectures, I found it very easy to follow every step professor Zhang showed and I really felt my ability to prove statements improved in these few lectures. Then, we looked at proving statements involving predicates and symbols. This part of the lecture was very difficult to follow as I had trouble understanding predicates at first. To overcome the challenge, I asked professor during the break and clarified my confusion. I looked at the proof for "if n is divisible by 7, then n^2 is also divisible by 7", This time through, I was able to understand it fully.
The next part of the lecture consisted algorithm analysis and asymptotic notation. This part of the lecture was not related to the previous weeks hence I found it hard to follow the slides, in particular, the ways to separate better algorithms from good algorithms. Through the lecture, I learnt 3 important ideas/ concepts, which were "running time" means "the number of steps that are taken by the algorithm", "running time is independent of hardware" and "a good algorithm is determined by how the number of steps grows as the size of input increases". These definitions helped me understand the lecture well. Afterwards, we were introduced to the asymptotic notation O(f(n)). This notation helps computer scientists to see the order of the algorithm and how much its steps grow when data size increases. I find this part of the course very interesting as I have always been interested in making algorithms efficient and this field relates closely to my interest. Overall, I find this lecture very enjoyable.
No comments:
Post a Comment