Monday, April 17, 2017
Computing Science and Mathematics
Coming to the end of the Introduction to Computer Science course, I have learned that mathematics plays a key role in algorithms and programming. In order to major in computer science at Kansas State University, students are required to take Calculus I and II, Statistics, Matrix Theory, and Discrete Math. The reason for this is that high computing and supercomputers require the ability to use logic, graphs, probability, and other math models to perform tasks or calculate results for more complex algorithms. (https://en.wikipedia.org/wiki/Applied_mathematics) Nearly every algorithm has at least some basic addition or algebra. Others require matrices and calculus. With every project or example we do in CIS 115, we use math. Sometimes its needed in order to calculate something small such as how many different possibilities there are to sort data or to provide a user with their GPA based on how many courses they are taking and what their grade in each course is followed by multiplying the hours the class counts for by the value of the letter grade (a project in CIS 111). In other cases, the math is not as easy such as with cryptography through IP public and private keys. Public key cryptography mixes numbers by using powers, primes, and clock arithmetic to provide a secure means through which users can share data with each other without allowing those who don't have the public and private key to see. (MacCormick 56-57) This piece is probably the most interesting to me because I plan on going into cyber security / cyber crime investigation and by being able to determine a person's IP, private, and public keys, it can help convict a suspect since their "private" information such as photos or conversations can be obtained. Unfortunately, being that people can use computers and algorithms to figure out what a person or company's private and public keys are, it can be used to harm individuals by stealing their credit card information, social security number, and other personal information. Another area that interests me is error-correcting codes. A man by the name of Alan Turing once proposed a question: "Can machines think?". This question may have been the starting point for error-correcting codes because if a computer is able to think for itself then it should be able to find errors within its programs and fix them on its own. These codes are necessary when trying to program a computer to be able to adapt and evolve on its own because, as stated in the name, the computer becomes able to correct errors. Error-correcting codes would therefore play one of the largest roles in creating artificial intelligence.Some examples of error-correcting codes are the repetition trick, redundancy trick, and the checksum trick. The reason that the checksum trick is important is because computers store all information in the form of numbers which then gets translated to words or images. (MacCormick 68) This trick specifically helps determine if there is an error however it doesn't repair the error. The way it works is that all the digits of a message get added together (which is where the math piece comes in) and the last digit gets saved to compare to other possible messages that are coded in the computer. (MacCormick 69) Another instance through which math gets used in computer science is in computational geometry. Algorithms and equations for different geometric shapes are needed for robotics, graphic design, computer vision, virtual reality, and an infinite amount of other development tasks. (https://en.wikipedia.org/wiki/Theoretical_computer_science) All of the areas I have mentioned in this blog are evidence that shows how important mathematics is in programming and computer science whether its just simple addition or complex calculus based algorithms.
Subscribe to:
Posts (Atom)