Concepts you need to know for programming