“That’s one small step for man, one giant leap for mankind.” this line didn’t have much significance for me earlier and I never thought it could be something interesting and that too in code universe but Richard Buckland changed my thinking totally. Coming to Armstrong what he meant was the small step he is taking on moon is going to be revolutionizing for the mankind. Now , how is that related to writing codes or figuring out algorithm well believe it or not ,it is.
The way a computer science guy looks at a problem , the steps he follow is PAPP as Richard says.
Well its kind of ironic because ‘papp’ in Hindi means sin . So, you need to commit sin to solve a problem , what to say its “necessary evil”. Pj’s apart so what are we seeing here is small steps like learning to code is like small steps that we all belonging to this community take may lead us to take the giant leap i.e to figure out simplest algorithm to find solution to the biggest problems.
Okay! so simplest algorithm , it seems to be a big word but we all follow algorithm. While taking bath, while searching for books in library, searching for DVDs but the revolutionary idea is to make the program follow algorithm , with algorithm comes complexity and stuff. Richard makes one of his student to sort DVDs and he sorts it in two different ways in two different conditions. He sorts it with insertion sort when he saw the DVDs the very first time and then he sorted them with selection sort the other , well I was amazed observing what our mind can do it figures out such complicated algorithm in such a small amount of time , the most amazing algorithms are around us they are the most obvious ones but we overlook them.
The other argument that blew my mind was why computer science is science?
To which Buckland replied in a very clever way science is anything we observe , then what do we observe in computer monitor? keyboard? naaah! we observe the beautiful concept of any programming language, we observe functions what input we take and what output its going to produce. Functions that take same input to produce same output are similar functions irrespective of the intrinsic code written, this can be explained taking example of humans , A homo sapien will be a homo sapien irrespective of his height, skin colour or the place he is born in. Taking this in consideration functions are suppose to be more liberal than human beings . Functions treat each of them equals provided they are doing the same job unlike humans. Then what decide which function is better and which function should we adopt, this statement has a lot of ambiguities, after four hours of intense discussion on scrollback we came to the conclusion that how an algorithm behaves with increasing number of input tells us how good an algorithm is.Hush!
Explanation on ‘abstraction’ well abstraction is selfishness , really! It means to concentrate on things which we want to concentrate and leave out all other things as simple as that. Most of us has this stereotypical mindset about abstraction that it means “overlooking the complexity of the process” well its partially true , its an example of abstraction.
I am also a learner , so I am sure I have made a lot of mistakes please If you come across any such mistake, you are free to criticize and help me grow. This is Farhaan BUkhsh , this was my take on Richard Bukland’s video on data structures lecture 1 and 2. Do write to me telling how you feel about it , will come back with another post till then peace out!