This class is for students who like to solve problems and want to learn advanced programming techniques. The instructor will start with a brief review of Python basics and then dive into more advanced aspects of the programming language like recursion, Database and GUI programming using Tkinter. Fundamentals of machine learning using python and programs using some common python libraries used in machine learning. Students should already have intermediate-level knowledge of Python programming. The course will conclude with a project.