Tuesday, December 3, 2013

On sorting efficiency.

Sorting comes as an intuition to us human beings: we see a randomized list of objects, and we feel this innate urge for order, whether it be putting it in alphabetical order, in size... whatever the case may be. It's what keeps us sane in this mess of a world. We keep objects in organized groups, such that anything and everything can be at our beck and call.

Humans look at a group of objects, and can tell relatively quickly which objects are bigger than others. Computers, however, do not look at it in such a holistic point of view. Instead they opt for a more analytic algorithm with comparisons between two objects at a time. Humans also possess that capability, though they reserve it for ordering of objects with small differences between them.

The human mind is complex, and our sorting algorithms in computer science currently cannot hope to match it in power; instead, they rely on their rate of calculation to beat us at our own game. We still should aim to increase the power of these sorting algorithms, as a good sorting algorithm can greatly reduce the time to sort a certain amount of objects without needing a new processor. We learnt about a few of the sorting algorithms in class (selection sort, merge sort, etc.), and I think the key to the future is the decision making between such algorithms. It's been proven in class that certain algorithms work better in certain situations, and I believe the human mind also uses different algorithms in different situations. The mind knows when to use which algorithm for the best sort, and I believe the key to increasing the power of computers in the future is to find a decision making algorithm that can know which sorting algorithm to use given a certain set of data.

Wednesday, October 30, 2013

Bootstrap =)

Today I went to my first meeting at the University of Toronto Web Development Club.

The content today was basic web content layout, and introduction to Twitter Bootstrap.

Bootstrap was created by Twitter as an attempt to standardize internal tools that their web developers used. In 2011, they released it on Github, providing a reliable framework for web developers to build their websites upon.

This framework actually helps me immensely in my side projects, as I have been struggling with the immense amounts of internal tools I would have to develop myself. Now that I have such a powerful framework, I can now "stand on the shoulders of giants," and design a better website in a shorter amount of time.

Friday, October 25, 2013

Recently, as a joke, I've started describing real life situations in code in casual conversation. It usually results in them staring at me stupidly with the words, "w-wha?" coming out of their mouths.

Tuesday, October 15, 2013

I wonder....

practice midterm Q3 March 2011...

def cheat_count(object):
    return str(object).count('[')


full marks, yes? =D

Monday, October 14, 2013

Welcome to my humble blog.

Hey everyone,

As I smash this bottle of port against the bow, I wish HMS Coffeed Code smooth sailings, and blessings upon her and all who author her. (Me?)

Partaking in computer science has been a long and arduous task, and I wish to share here some of my various thoughts and feelings =)

Object Oriented Programming is an efficient way to ensure that code is in modulated bits. As programs begin to grow in length, using a traditional (non-OOP) way of coding would result in many parts of the program having to be rewritten, and editing code would involve obscene amounts of usage from the find+replace function.

The most important aspect of OOP I feel, however, is the cognitive change of the programmer. It helps the programmer organize his/her thoughts in complete concepts a la mindmap all inside the code itself. Any subordinate classes or objects that are spawned from the parent class inherits the traits of that class (unless otherwise specified), decreasing the chance of forgetting certain traits.

OOP also introduces the concept of recursion. Recursion is an entirely new concept that isn't really used outside of the computer science world, but it is an immensely powerful concept, able to solve complicated problems with just a few lines of code. The concept, however, is one that requires a clear and analytical mind, and the ability to break big problems up into subproblems with the same format, and accurately express that in a computer language is a hard one to come by.