Monday, May 1, 2017

Making Meaning: 9 Algorithms that Changed the Future

9 Algorithms that Changed the Future by John MacCormick was the third and final book of the semester for my Introduction the Computer Science course; this book was my second favorite.
MacCormick writes more similarly to W. Daniel Hillis (author of Pattern on the Stone) than the journalistic writing approach of Andrew Blum (author of Tubes, my least favorite book in this course). I prefer a textbook or research article type of writing styles. IF you are someone who prefers journals and diaries, perhaps you might dislike this text and find that Tubes is much better. Getting away from simply the writing styles of each author, 9 Algorithms that Changed the Future has content on, as mentioned in the title, algorithms, their uses in indexing and cryptography, and other key examples of where algorithms are needed in computer programming. The one that hooked me the most was cryptography, partially because as I have previously mentioned in other blogs, had a desire to get into cyber security or cyber investigation upon graduation. Chapter 4: Public Key Cryptography discusses the purpose of using public keys to encrypt messages in order to protect private information such as social security numbers, credit card data, and addresses in order to prevent "eavesdroppers" from obtaining the information and stealing people's identities. (39) When we got to this chapter in the text, our professor showed us a video on the Enigma machine that was used by the German army to encrypt messages during WWII. The video, uploaded by numberphile can be found at https://www.youtube.com/watch?v=G2_Q9FoD-oQ and shows how the Enigma machine has different rotors that can encrypt messages in over 150 quintillion settings. Had this machine not been figured out by the allied countries, the German's might have won the war!
Breaking away from the Cryptography section, Chapter 5 relates to the topic of my group project. My group decided to research Genetic and Evolutionary Computation which requires a lot of error correcting codes for Artificial Intelligent programs. Throughout chapter 5, MacCormick shows how the Repetition Trick, Redundancy Trick, Checksum Trick, Pinpoint Trick, and the combination of error correcting techniques are used in the real world to allow programs to self adapt or detect false information for the user to correct. The Repetition Trick is the most fundamental according to MacCormick because in order to make sure the information is relayed properly without errors, a program asks for input multiple times and compares the input; should the input vary, then it is apparent that an error has occurred. (62-63) The Redundancy Trick, although similar to the Repetition Trick uses pattern recognition and prior knowledge to compare faulty input or coded input and compare for possible corrections such as the word "fiqe", if the computer is looking for English numbers and received this, it can determine that the "q" should be a "v" and can change that to output the number 5. (66)  The Checksum Trick assigns a number to each letter, number, or character that the user inputs and checks the sum of the assigned data occasionally in a table both in rows and columns. (68) A great example of this is when entering credit card information online, a program can detect when a number is wrong if it doesn't match up to the possible checksums provided by VISA or Mastercard. Lastly, the Pinpoint Trick is the actual table method of the Checksum trick. For example, if you have 16 characters or digits, arrange them in a 4x4. Add up each of the rows and the columns then compare the sums. whichever row and column is wrong will pinpoint the singular digit that is incorrect. (74) Each of these methods is beneficial and key to improving technology or encryption. Overall, MacCormick's book 9 Algorithms that Changed the Future is a great read that helps the reader prepare for possible encryption, problem solving, or computer related courses and careers.

No comments:

Post a Comment