Chapter 1

Cards (31)

  • Donald E. Knuth: 'Computer Science is the study of algorithms'
  • Algorithm

    The conceptual center of computer science
  • Abu Ja'far Mohammad ibn Musaal-Khowarizmi was a 9th century Persian Muslim mathematician who wrote a textbook in Arabic about adding, multiplying, dividing numbers, and extracting square roots and computing π
  • Algorism
    Referred only to the rules of performing arithmetic using Hindu-Arabic numerals
  • Algorithm
    Evolved via European Latin translation of Al-Khwarizmi's name to include all definite procedures for solving problems or performing tasks
  • Euclid's algorithm was developed in ancient Greece to find the greatest common divisor of two numbers
  • Euclidean algorithm
    • An ancient algorithm for finding the greatest common divisor (GCD) of two integers
  • Euclidean algorithm
    1. Initialize x and y with a and b
    2. Divide x by y, let remainder be r
    3. If r is 0, y is the GCD and stop
    4. Otherwise, set x to y, y to r, and repeat
  • The Euclidean algorithm is a powerful tool for solving problems related to integers and their divisors
  • Oblivious algorithm

    • An algorithm whose complexity is independent of the input structure, so the best-case, worst-case and average complexity are all the same
  • Artificial Intelligence (AI)

    • As AI systems become more powerful and sophisticated, they will be able to automate more complex tasks and provide insights and predictions that were previously impossible
  • Quantum Computing
    • Quantum computers are able to perform certain types of calculations much faster than classical computers, which could enable new applications and insights in areas such as cryptography, optimization, and simulation
  • Quantum algorithms
    • Shor's Algorithm-factoring large numbers
    • Grover's algorithm-searching large databases
    • Quantum simulation algorithms
    • Quantum error correction algorithms
  • Ethics and Bias in algorithms
    • As algorithms become more powerful and pervasive, concerns around their ethical implications and potential biases are likely to grow. There will be increasing pressure to ensure that algorithms are transparent, fair, and accountable, and that they do not perpetuate existing inequalities.
  • Edge Computing
    • Involves processing data closer to where it is generated, rather than in a centralized location. This can help reduce latency and improve privacy, but it also presents new challenges for algorithm development, as algorithms will need to be designed to work efficiently on smaller devices with limited processing power.
  • Edge computing algorithm
    1. Collect data from edge devices
    2. Preprocess data at the edge
    3. Send preprocessed data to cloud or central processing
  • Edge Computing
    • Provides real-time data processing and analysis at the edge of the network, where the data is generated, rather than sending all data to a central processing location
    • Can help reduce latency and improve privacy
    • Presents new challenges for algorithm development as algorithms will need to be designed to work efficiently on smaller devices with limited processing power
  • Edge Computing Algorithm
    1. Collect data from edge devices
    2. Preprocess data at the edge
    3. Analyze data at the edge
    4. Send results to the cloud
  • Blockchain Technology

    A decentralized, distributed ledger that is used to record transactions in a secure and immutable way
  • Algorithms used in Blockchain
    • Hashing
    • Encryption
    • Smart Contracts
  • Hashing Algorithms

    Used to create digital signatures for data added to the blockchain to verify authenticity and integrity
  • Encryption Algorithms
    Used to protect the privacy and security of data transmitted across the blockchain network
  • Smart Contracts
    Self-executing contracts stored on the blockchain, programmed using algorithms to automate transactions, enforce rules, and ensure all parties fulfill their obligations
  • Algorithms play a critical role in ensuring the security, privacy, and reliability of blockchain technology
  • Algorithm
    A tool for solving a well-specified computational problem, a sequence of computational steps that transform the input into the output
  • An algorithm is a procedure that consists of a finite set of instructions which given an input enables us to obtain an output
  • Properties of Algorithms
    • Produce one or more outputs and may have zero or more inputs
    • Finite
    • Definite
    • General
  • Each operation in an algorithm must be definite, meaning it must be perfectly clear what should be done
  • An algorithm applies to a set of inputs and works on all inputs of the desired form
  • Pseudocode
    An informal method of developing an algorithm, using simple language to represent the functionalities that the specific lines of code would do
  • The most significant difference between an algorithm and a pseudocode is that an algorithm is a step-by-step method for solving a problem, whereas a pseudocode is an informal language to write algorithms