The course introduces students to the principles of computational thinking. Computational thinking is a way of solving problems, designing systems, developing algorithms, and understanding human behavior that draws on concepts fundamental to computer science. This course explores making use of different levels of abstraction, decomposition, modularization, and recursion to understand and solve problems more effectively. It uses mathematical concepts such as induction, to develop algorithms and produce more efficient, fair, elegant, and secure solutions. The object-oriented language, Python, will be used to demonstrate simple programming concepts.