The Development and Use of Computer Algorithms

The term algorithm is a highfalutin word to describe the calculations that take place for a function. Even when students in elementary school solve simple math calculations, they are in fact using algorithms to solve the problem. In the computer world, they are fundamental to how all computers process their information. A real algorithm can either be a program that ends eventually or a program that ends prior to a given number of calculation sequences.

The Math and Logic Behind Algorithms

The math and logic behind any algorithm is that a group of rules, when performed properly, will always solve a calculation problem in the correct fashion. The basic principle behind any algorithm is that it repeats a sequence of calculations over and over; an example of such algorithms is carrying and borrowing algorithms as well as division and long multiplication algorithms. Students in elementary schools have been learning math in the form of algorithms for the longest time, as this has been the basis of many math programs.

  • Math and the Algorithms Behind it: Explanation on algorithms and how they are the basis of math calculations.

  • PageRank Math Explained: Primer on how Google’s PageRank algorithm does its calculating.

  • All about the RSA Cipher Algorithm: Engrossing explanation on the algorithm at the center of the RSA Cipher.

  • Musical Algorithms A succinct overview of the relationship between math and algorithms.

  • Basic Logic of an Algorithm: Explanation of the working logic behind the algorithm instruction.

A Brief History of their Application in Computer Programming

The history of computer programming and algorithms, in brief, goes back to the 1950s when Fortran I was created by IBM, especially for the scientific community. Many in the computing world see this as the first real algorithm application in computer programming, yet this is not without contention by those who view Alick E. Glennie’s compiler for the Autocode on Mark I as the first real algorithm. In any case, the late 1950s would see Algol 58, which was a more broad and universal form of algorithm.

  • Computer Programming Algorithm History: A detailed look at the history of the term and its first use in programming history.

  • Turing Machine Explanation: Write-up on the Turing Machine, which is seen as the start of making algorithms for computer programming possible.

  • Brief History of Algorithms in Computers: Key points in history when algorithms started to make an impact on computing.

  • History on Graphics in Computers: Key occurrences in computer graphics history that also featured key algorithms that enabled new leaps forward.

  • Programming Languages and their History in Computer Programming: A timeline with clickable links on the history of algorithms’ application in programming.

Notation and Language

A computer algorithm may be expressed in quite a few ways of notation, which include natural languages, flowcharts, pseudocode, control tables, and programming languages. Algorithms expressed in natural languages are ambiguous, and therefore natural languages are hardly used for complicated algorithms. Control tables, flowcharts, and pseudocode, conversely, are more orderly means of expressing algorithms; they are also free of much of the ambiguity that plagues natural language-ways of expressing algorithms. Programming languages are mostly employed for expressing algorithms in means that can be expressed by a computer.

  • Introduction to PlusCal: Web page that is all about the PlusCal algorithm language.

  • What is the +Cal Algorithm Language?: Brief explanation on this kind of algorithm language.

  • Algorithm Programming Language in C: Website that explains all there is to know about the C programming language.

  • Algorithm Language Algol 60 Review: Extensive summary of the international algorithm language called Algol 60.

  • All Experts: Writing Algorithms in C Language: Answer from expert on how to write algorithm in C programming language.

Legal Issues

The legal issues surrounding algorithms involves the fact that they mostly cannot be issued a patent, though there have been exceptions. The reasoning for this is that a manipulation of abstract signals, concepts and numbers does not rise to something that can be deemed “processes,” according at least to one legal case. When patents have been successfully issued for algorithms, such as the data compression algorithm for Unisys Corporations’ LZW patent, there has commonly been a high level of criticism that followed.

  • Legal Issues Behind Computer Program: Information on the legal problems with a type of encryption and decryption computer program.

  • LZW and its Legal Issues: Explanation on the legal issues behind LZW, a compression algorithm.

  • Patent Legal Problems: Write-up on the licensing disputes surrounding LZW, the compression algorithm.

  • Software Patents and their Pertinence to Legality: Essay that explores whether software patents are ethical or not.

  • Algorithms and the Software Patent Question: In-depth examination on the legal issues of algorithms and software patents.

Practical Examples: Google

Google is well-known for using algorithms in their multi-billion dollar corporation, and one solid example is their utilization of PageRank. PageRank is best defined as a link analysis algorithm, which works by assigning numerical weighting to every element of documents that has been hyperlinked. The purpose of the weighting is to quantify the relative significance of the elements in the set.

  • The Anatomy of Google PageRank: Paper that, in part, goes into detail in explaining Google’s PageRank algorithm.

  • A Case Study About PageRank: A detailed inspection of the metrics used in Google’s PageRank.

  • Google PageRank: Needle in a Haystack: In-depth, informative article on the aspects of Google’s PageRank algorithm.

  • The Code Behind Google PageRank: A list of the different code and datasets behind Google’s PageRank algorithm.

  • Explanation of Google PageRank: A specifics-rich walkthrough of Google’s PageRank link analysis algorithm.

Practical Examples: Stock Markets

Traders and brokers who work in stock markets utilize forecasting algorithms in order to determine when the best possible time is to execute a successful trade. Algorithms in the stock market come in a few varieties. There are some that try to predict market trends in order to judge what the best entry point would be for a buy or a sell. Others attempt to remove human emotion by deciding what the best time is to execute a buy or a sell; this may lead to better success in making money because the trades are performed more objectively. Algorithms may either be on a small scale, as when they are provided to individual traders at home on their PCs, or on larger scales, such as the big networks that employ aggressive algorithm programs and use many supercomputers to calculate high volumes of stock transactions in just a few seconds.

  • Wall Street’s New Algorithms for Trading: Article that discusses increasing popularity of trading algorithms.

  • Primer on Algorithmic Trading: An explanation on what is involved in using algorithms to analyze stock portfolios.

  • The Range of Algorithmic Trading: An article on the limits and possibilities of algorithmic stock trading.

  • Fishy Algorithms in Stock Markets: Article that tries to highlight what it calls the nefarious algorithms that abound in the nation’s stock markets.

  • Beating Stock Market Algorithms: Article about two people who were convicted for cheating trading algorithms.

Competitions

Competitions involving algorithm calculations are an acquired taste, but they have found popularity in a small circle of teenagers who compete in tournaments like the International Olympiad in Informatics. Each competitor first picks an algorithm and then begin to code it; the winner is based on who gets this done in the quickest time with the correct answers. Such competitions are quite popular on a global level with a particular demographic of high- and middle-school students.

  • Teens at the Algorithm Olympics: Article that takes a look at teens who compete in algorithm competitions.

  • Netflix Algorithm Contest: Article that explores an algorithm contest where participants have to improve Netflix’s recommendation engine.

  • NIST Algorithm Competition: Press release on a public competition that seeks to create a new cryptographic hash algorithm.

  • Deadline Looms in Algorithm Contest: Article on an algorithm competition for due submissions for a US government-sponsored competition.

  • Announcement of Algorithm Competition for Segmentation: A notice that is searching for submissions of algorithms in foreground and background segmentation.