Part of

Software EngineeringComputer Science

  • Python

    • Use for applications such as image recognition and natural language processing.
      • Cloud computing
      • Data Manipulation
  • R Programming

    • Use for applications that place a high value on data visualization (ggplot2) and/or can take advantage of the powerful Shiny framework in combination with the RStudio Products
    • Data Manipulation
  • Julia

    • Speed
    • Used for time-critical or resource-intensive applications
    • Extensible
      • Multiple dispatch all functions and operators can be extended to work with user types arbitrarily.
      • Combined with dynamic typing
    • Cutting edge of compiler technology
    • Best libraries for differential equations, mathematical optimization, and automatic differentiation

Concepts

Memory Management

Manual Memory Management

Garbage Collection

Concurrency

Thread Creation

Parallelism

  • Amdahl’s Law

Your program can only benefit from parallelism to the extent that its tasks are parallelizable p is the fraction of the program that can be parallelized.