# Required computer science/ software engineering background

Better explanations coming soon! Please consider contributing through a pull request or send edits or suggestions to Andrew

## Programming Fundamentals

### Basics

Arrays, loops, functions, reading/writing data, objects, vectors, lists, variables, expressions, factors

Udacity’s Intro to Computer Science and Programming Foundations with Python are great resources to both learn programming and python. You can view and learn the course material for free or you can take the course and get extra help.

# Data structures

Specifically focus on understanding graphs, trees (binary trees), hash functions, algorithm complexity & big O notation

TODO: find good resource

# Algorithms

Searching and manupilating graphs and trees, sorting Algorithms, and searching algorithms.

TODO: find good free resource

## Numerical methods

Understand how rounding errors affect calculations.

## Next Steps

Once you think you have the required programming background, go can go back to the required background and complete the rest of the modules.