• An Introductory Guide to Programming
  • 1 Introduction
    • 1.1 Background
    • 1.2 Business Environment
    • 1.3 Advantages of Programming
    • 1.4 Outline of the guide
  • 2 Environment set up
    • 2.1 Notepad
    • 2.2 Text editors
      • 2.2.1 Tabbed browsing
      • 2.2.2 Interactive code input
      • 2.2.3 Code mapping
      • 2.2.4 Additional tools
    • 2.3 Running Code
    • 2.4 Integrated Development Environment (IDE)
      • 2.4.1 Text Editor
      • 2.4.2 Console
      • 2.4.3 Project Pane
      • 2.4.4 Environment
      • 2.4.5 Debugging
    • 2.5 Notebooks
  • 3 Fundamentals I
    • 3.1 Comments
    • 3.2 Assignment
    • 3.3 Reserved words
    • 3.4 Line breaks
    • 3.5 White space
    • 3.6 Arithmetic operators
    • 3.7 Variable types
      • 3.7.1 Boolean
      • 3.7.2 Numeric
      • 3.7.3 String
      • 3.7.4 Arrays
      • 3.7.5 Coercion
    • 3.8 Logical operators
  • 4 Fundamentals II
    • 4.1 Control Structures
      • 4.1.1 If statements
      • 4.1.2 Switch statements
      • 4.1.3 For loop
      • 4.1.4 While loop
    • 4.2 Functions
    • 4.3 Import statement
    • 4.4 Function operators
  • 5 Programming work flows
    • 5.1 Structured Programming
    • 5.2 Object-oriented Programming (OOP)
    • 5.3 Functional Programming (FP)
      • 5.3.1 Recursive Functions
      • 5.3.2 Anonymous Functions (aka Lambda Expressions)
      • 5.3.3 Functionals
      • 5.3.4 Closures
  • 6 Algorithms
    • 6.1 Big O notation
    • 6.2 Examples
      • 6.2.1 Sorting
      • 6.2.2 Searching
      • 6.2.3 Random Sampling and Monte Carlo
    • 6.3 Data structures
  • 7 Version control
    • 7.1 Git
    • 7.2 Initial set up
    • 7.3 The three states of version control
    • 7.4 Making changes
    • 7.5 Branching
    • 7.6 Remotes
    • 7.7 Graphical User Interfaces
  • 8 Data Vizualisation
    • 8.1 Extract, Transform and Load
      • 8.1.1 Extract
      • 8.1.2 Transform
      • 8.1.3 Load
    • 8.2 One dimensional plots
      • 8.2.1 Distribution graph
      • 8.2.2 Proportional graph
    • 8.3 Bidimensional plots
      • 8.3.1 X-Y plots
      • 8.3.2 Time evolution charts
    • 8.4 Network diagrams
  • 9 Modelling
    • 9.1 Plots
    • 9.2 Linear regression
    • 9.3 Generalised Linear models
    • 9.4 K-means clustering
  • 10 Epilogue
  • 11 Contributors
  • 12 References
    • 12.1 Introduction
    • 12.2 Fundamentals
    • 12.3 Workflows
    • 12.4 Algorithms
    • 12.5 Version Control
    • 12.6 Data Visualtisation
    • 12.7 Modelling