theoretical foundations of machine learning course