Tuesday, September 30, 2014

Making Meaning - Pattern on the Stone

   Pattern on the Stone, I found personally, to be a very interesting book. It provided me with new insight on how computers and everything works. The most interesting part of the book was the chapter over algorithms. When I graduate from K-State I want to go into a field that uses algorithms such as data analytics. With this being said, I had prior knowledge on the subject, but the book gave me a new way of thinking about it. I liked all of the chapters in the book, but if I had to select one for the least interesting it would be chapter one. I knew most of the concepts found in that chapter and I just did not find it very interesting. 
   I did not have to look up any terms, but I need do further research on the Big “O” notation that follows algorithms. I found how to calculate it, what it meant, and how to implement it with my current projects. The book helped me understand lecture six in class, which was the algorithm lecture. The book did an amazing job clarifying everything in a very unique, precise manner. On the idea of recommending this book to a friend, I am wary, because if you give it to someone that has no interest in computers they will not retain all of the information and will not find it interesting. If I were to meet someone else in the Computer Science field who has not read this book, I would tell them to read it in a heart beat. 

   Overall, Pattern on the Stone was a very good book. It provide great detail over what computers are, how they work, and things you can do with them. I wish the book was longer and contained more detail, but nonetheless, it was a great book. My favorite feature of the book was how the author described everything and taught the reader how it worked. He took a very friendly, knowledgeable tone with the book that made it very easy to follow. If this book was written with the same information, but with a different author I do not think I would have liked it as much as I did. The simplicity of the book that taught information over a very complex subject is what made the book as good as it is. This book is the perfect example of taking something very complex, and condensing it into something that someone can understand. If I had to rate this book it would get a 10/10. 

Friday, September 26, 2014

Computers In Daily Life

   The most prominent computer system that we use on a daily basis was not hard to think of. The answer is simple, it is a router. William Yeager, was the first person to create a multiprotocol router and worked at MIT and Stanford. The technology and ideas behind routers is baffling, the thought of fluently connecting everything on the internet together with ease is amazing. The system itself is above common, it is almost a necessity for any computer user. The systems have been around since 1981, but have grown vastly since then. 
   Life without routers would differ greatly to what we have now. We would not have the capabilities and the power to gather information that we do today. There would be no internet, phones would have veered in a different direction and we would be doing most of our work on paper/typewriters. We would also not have smartphones, computers, mp3 players (ipods), and other advanced technology.
   Security concerns are highly associated with routers and computers in general. With routers allowing computers to connect to the internet and even each other there is a lot of room for malicious activity. Due to the fact that anyone who has a computer will most likely want to connect to the internet, they will need to by a router. This means that every person who has a device that uses internet will also own a router. With this being said, every person is at a potential risk of their data being stolen or corrupted by someone else. If the the inventions of routers never happened, then we would not be at this risk and all malicious crimes involving stealing data would have to happen in person and would be a lot easier to track. Another thing that happens with everything being connect to the internet is countries spying on other countries. With the event that happened with Edward Snowden, we can see that the chances of “cyberwar” positively correlates with how much we rely and use the internet daily.
   As previously stated, routers have changed the way we use, think, and act with our devices. Routers have changed the direction that our future is taking and will help us further progress in the field of technology. Even with all the potential risks of data breaching, cyberwar, malicious activity, and potential harm routers will always be a stepping stone in our path to the future.  


Tuesday, September 16, 2014

Algorithms

   Thinking of something that I do everyday that could be expressed as an algorithm is not easy task. After much consideration, I decided that the most obvious algorithm that I use everyday is what to wear. Expressing the process to someone can happen in many different ways. The first way I could express this, is if I know exactly what I want to wear. If I know what I am wanting to wear the algorithm would be straight forward and the function would look like this:
   def Dress():
      put_on(pants)
      put_on(shirt)
      put_on(shoes)

In this scenario the function is easily excited and really doesn’t have a bad “Big O” input. The second scenario that could happen with my dressing algorithm is if I know what I want to wear, but I am unsure if the clothes I want are washed our not. This function when described to a person or computer would look like this:
   def Dress():
      if not is_dirty(shirt):
         put_on(shirt)
      else:
         put_on(clean_shirt)
      if not is_dirty(pants):
         put_on(pants)
      else:
         put_on(clean_pants)
      put_on(shoes)

In this scenario the function Dress() is a bit more complex, I am required to do a few extra steps to find my outcome. The final scenario is a bit longer, and would be rather spacey to type out so I will describe it. In the third scenario I would base what I am going to wear that day on if it is clean or not and if the temperature is in a certain range at that time. This function would have around twelve steps and take a lot longer based on how many inputs I have. 

   Describing all of these functions to a robot would be very easy to do, given the two examples above, a robot could easily be programed to run this. If I were to implement this algorithm with a computer, it would be very, very easy to do so. All I would need to do is write out a few more logic statements and it can easily return the outcome variable.  

   My outfit algorithm is not the fastest one, I would easily save time by preemptively sorting my clothes so I would not have to do the clean or dirty check in it. Other than that one fix, I don’t think that I could make it anymore efficient.

   If I had to share my algorithm verbally with people it would go something like this. The first step the the Dress() function is to pick out a shirt from your closet, check to see if the shirt is dirty, if it is, put it into the hamper, if not, put on the shirt. Next, pick out a pair of pants from the closet, check to see if the pants are dirty, if it is, put in into the hamper, if not, put on the pants. Finally, select a pair of shoes that you would like to wear and put them on. 


Tuesday, September 9, 2014

Historical Figure in Computing

"The best way to predict the future is to invent it.” that quote by Alan Kay may be one of the most inspirational quotes that I have read. I believe that Alan Kay is the most interesting person in Computing Science, because he was one of the fathers of the idea of object-oriented programming. If I ever met Kay, I would simply ask him how he thought of the idea of OO programming. The abstract thinking and logic behind creating object-oriented programming astonishes me every time I think about it. So I would love to know his thinking process when he was working on the idea of it. Without Kay’s influence on the world, programming would be very, very different. Everything would run less efficiently and we most likely would not be as advanced in technology as we are today. Kay worked with Apple, Atari, Walt Disney Imagineering, and many other large companies, vastly improving their programs. Kay was immediately recognized for his outstanding accomplishments. Still, to this day, Kay’s biggest accomplishment was his help in the creation of object-oriented programming.  

Alan Kay by the age of three years old was able to read fluently, he also estimates that by the time he entered first grade, that he had read around 150 books. This is just one small example of the vast knowledge that Alan Kay holds. He alone revolutionized the programming world. The first OOP that came out was worked on by Alan Kay. It was called “Smalltalk-80.” It was unlike any other language at that time. Smalltalk was a complete environment. With Smalltalk’s OOP style, many other languages such as Java and C++ were created. Smalltalk was created while Kay was working with Apple, it was commercialized with the release of the Apple’s Lisa and Macintosh computers. He created the “Dynabook" concept which defined the conceptual basics for tablets and laptops computers. This also made Kay one of the first people to research mobile technology. 

Kay is one of the few pioneers that revolutionized the way we see programming today. Without his unique thinking and input on computer languages, we would not have the programs that we have today. Advancing technology would not be as easily done and we would not have all of the convenient technology such as: phones, applications, current OS power, etc. Kay’s power to invent and think outside of the box logically on his level, amazes me every time I think about it. He without a doubt is the most interesting contributor to the Computer Science field.    

Sources:
http://en.wikipedia.org/wiki/Alan_Kay#Awards_and_honors

http://en.wikibooks.org/wiki/Object_Oriented_Programming