When you have completed this course, you will be able to systematically design small programs using the Python programming language. You will be able to take a problem from an academic discipline of your choice, appropriately represent the domain information as data in your program, and design functions that successfully solve your problem. You will learn how to break down a large problem into well-structured sub-problems, each of which will be solved systematically. You will understand how programs work which will help you better understand the computer-based world that you interact with every day. You will be better able to communicate with computer scientists in your future workplace. This course is designed for students who are not computer science majors. There are no prerequisites.