Saturday, 31 January 2015

Hooray! Finished assignment 1!

After days of brainstorming and contemplation over what we need to do and what we need to code, whether the design is efficient,  and whether it satisfies what the instructors could possibly be looking for with their open ended assignment instructions, I have finally got it over with to satisfaction and hopefully, excellency.  The assignment itself was tricky in many regards, requiring the stimulation of my imagination and , somewhat philosophical, consideration of what is needed to be done.  When I wrote code for the Game Strategy, it was incredibly time consuming to figure out all of the necessary ingredients that are considered general to all game strategies.  It was like trying to answer a riddle.  Ultimately, I settled with a few attributes.  The attributes were related to who gets to start the game, isolate the good moves from the bad ones, and choosing the move out of the available moves.  The last two attributes would be made tailored to the specific strategy chosen.
It feels good now that I have finished the assignment, and I feel that I have learned a lot from the assignment, including the ability to plan, organize, and tackle problems in a different light.  When I first started the assignment, I felt entirely overwhelmed because they asked for generic code, something I had no clue what was meant, but looking back, it seems pretty obvious, and I can see how useful designing generic codes can be in real life.  It is like making a toolbox so that other mechanics can use it to work their own projects out of.

Now that test 1 is coming up, I will definitely need to go over the lecture notes, understand the design concepts, and read read read !  

Much of the material I understand, but hopefully the test will not be testing us on something similar to a1, as then it would be too intimidating.

Saturday, 24 January 2015

Why Geeks Should Know How to Write

The art of writing predates computers for thousands of years.  It is used to record history, express ideas, teach, and inspire human beings.  Geeks, aka computer scientists, need to know how to write for three important reasons.  To record works and discoveries that have been done during research, to communicate with other scholars form other disciplines, and to promote computer science to the general public.  For anyone who is undertaking a project, something which computer scientists absolutely must do, they need to record the past stuff that they have done or discovered, and record it well, so that in the future they can understand what they have done or thoughts that they had had before, in case they forget it.  It is extremely useful for their peers and students as well to understand what they have done, and this requires good writing, no ambiguity, so that their peers and students can continue their work and coordinate with what they are doing.  Beyond their peers and students, computer scientists need to interact with other scholars as well, in fields ranging from mathematics, life sciences, and possibly even social sciences.  Some of the most incredible breakthroughs in human history have been achieved via the collaboration of scholars from a variety of subjects.   Computers, for example, were made possible by scientists who managed to sequence the human genomes, and through the interactions between mathematicians, scientists, and engineers, humans come up with a system of 0101010 codes. Writing then, is absolutely essential, as one cannot expect scholars from different background to understand computer scientists' lexicon.  In continuation of the tradition of scholarly exchanges, one must know how to write.  If computer scientists cannot write well, then they might endanger the entire field of computer science to simply something niche.  There exists many misconceptions about what computer science is and what computer scientists do.  No, they do not fix computers, and their work goes beyond simply making video games.  These misconceptions can simply be solved if the 'geeks' of computer scientists learned how to write, to communicate with the public what they really do, to inspire people and to change their views of the subject, so as to continue and enhance the field of computer science, given a more diverse pool of students with different ideas -- but this can only start if the 'geeks' of computer science know how to write, persuasively, clearly, and informatively.