- Thinking concurrently: designing programs that can run multiple processes at the same time
- Concurrent computing: allows multiple processes/tasks to run on a single processor by giving each process a fraction of time and control over the processor before swapping to another process
- Parallel computing: where multiple processes are run at the same time over multiple processor cores to enable faster computations
- Dependencies: tasks that rely on other tasks in order to either start or complete
- Batch programming: executing a series of computer programs or tasks without requiring user interaction during their execution
- Pipelined: overlapping the execution of multiple instructions