Monday, November 14, 2016

Blog 6 - Computing Science & Mathematics

Mathematical concepts is the building block of all code. Anything you want to do must be done through some sort of math. Even if your goal output isn't numbers you still use math to compute that output. All statements in code are combined through operators such as addition, subtraction, or Boolean operators like and or or. Because of this math something every computer scientist must understand, and be able to apply to their code. Part of this understanding is knowing about theoretical computer science.
Theoretical computer science is a division or subset of general computer science and mathematics that focuses on abstract or mathematical aspects of computing, according to Wikipedia. This is basically all of the theoretical applications of math that can be used in computer science. Things from algorithms to Quantum computation fall under this subject. One instance of this that I find very intriguing is cryptography. This is the practice of secure information in the presences of enemies. I think it is really interesting all of the different methods that can be used to encrypt a message. And on top of that how easy it could be in the future to break the code that we have right now. We learned in class how we encrypt things online using a system that is very easy to break if you have enough time, but messages can take weeks to decode with even the worlds most powerful computers. So even if your enemy might decode your message it will probably be obsolete by the time that they do. One downside in the future to this which I found fascinating was how a quantum computer could break every kind of encryption we have right now almost immediately.
What makes quantum computing so different from what we have right now is that instead of being based on 1's and 0's like we have right now. Where our computers exists by combining those 1's and 0's to get an output. A quantum computer would store qubits instead of bits. These are bits that are superimposed. Where instead of existing in one state or another, off or on, they instead exist in both at once. The answer obtained from a quantum computer would be provide a solution with a certain probability of being right. An example of this is the Turing test which was proposed in 1985 by David Deutsch. Theoretically Quantum computers could solve problems much faster than our current computers because of their ability to work on multiple things at once. Currently no Quantum computers exists but scientists are getting closer to figuring it out. Once that happens there is fear that our modern encryption techniques could become obsolete quickly because of how quickly a quantum computer cloud decode them without a key.
One person who was big in the development of computer science in relation to mathematics was Charles Babbage. He is considered by many to be the father of the computer. More importantly he was the first person to design a machine that could be programmed. His computers that he designed weren't even electric they were completely mechanical. And he did all of this in 19th century. In 1822 he began working on his first computer called the difference engine. A prototype of this was finished in 1823 but it soon fell through because of a lack of funding. Babbage then set off to work on his next machine which was the analytical engine. Although it was never completed during his life it is considered the first designed programmable machine. The major development from the analytical machine was the invention of the punch card which would go on to be the basis for many computers in the future. The reason why Babbage's invention was so important is because it is what sparked the evolution of the modern day computer.

No comments:

Post a Comment