Introduction to Programming, Machine Learning and Simulations