This course prepares students for programming in the real world. It explains fundamental concepts and algorithmic techniques and program structures. This approach gives students a solid foundation for writing useful, maintainable, and efficient code to solve a problem. The course teaches problem solving techniques by practicing in Python language which is one of the most widely used languages.