After big O proof questions, the focus of course shifted from math oriented to programming oriented. We started to learn to determine whether a piece of code would halt or not and I found that pretty hard. Since the code will be in paper in the exam or assignment, we have to use our own imagination instead of debugger and it's quite abstract. I let the program run in my head and count the number of steps and often end up forgetting where I was and restart it again. Guess I will try to keep track of steps in paper.
Additionally, I have learned python for almost a year, but I still don't have a profound understanding. For example, Prof.Heap mentioned what would happen if we write a def inside of a def; also, what about a parameter of a function is the function itself? I couldn't answer those questions because I never even think about it. The way I learn programming is to copy what professors did in lecture. So for some algorithms, if they never show me, I won't think about it at all. Apparently, copying is not the proper way to study computer science. Since things in real life change very fast, only using the algorithm that was shown in lectures would certainly prevent me from being creative.
No comments:
Post a Comment