I'm Scott Rixner, welcome to our Python Programming Essentials class. >> And I'm Joe Warren, this is the first course in our specialization on scripting in Python. In this course we're going to teach you the essential building blocks of Python programming. We're going to start right from the beginning, so don't worry if you've never programmed before at all, this is the course for you. >> In this for course specialization we're gong to work our way up from beginning programming concepts, all the way to being able to write programs that process large amounts of data and visually display interesting information about that data. Joe and I have vast amounts of experience in teaching introductory students. We both teach very popular freshman courses in computer science at Rice University, and our online courses have also reached countless students and have been very well regarded. So while it may seem daunting to go from knowing almost nothing to writing complex, and interesting, and useful programs, you're in good hands. We will work with you along the way and make sure that we teach the foundational skills that you need to succeed. >> Now you may be familiar with our other specialization on Coursera that also uses Python, there are are a few key differences between the two specializations. Our other specialization really focuses on the fundamentals of computing and serves as an introduction to the discipline of computer science. We started out by teaching how to build fun computer games, which many of the students found to be highly motivating. Our ultimate objective with that specialization, though, was to help you to learn to think like a computer scientist. >> In contrast, this specialization focuses more heavily on Python programming, rather than incorporating the underlying mathematical and problem solving skills that we teach in the Fundamentals of Computing. I want to stress, though, that these are complementary skills, knowing one will help you to be better at the other. So it would still be valuable for you to take both specializations, you'll learn things here that are not taught there and vice versa. Now if you're an absolute beginner, we would recommend that you take this specialization first, but you don't actually need that advice, right, since you're already here. >> In this specialization we're going to focus on teaching you scripting in Python, in my view scripting is really about making effective use of the tools that you have available to you. In other words, you want to learn not just how to program but also learn how to effectively use Python's extensive libraries. So to become an effective scripter our goal for you is to learn how to locate, install, and use Python packages that have been created by others. >> In this course and throughout the specialization we're going to be using Python 3. Python is in the middle of a very long transition period from Python version 2 to Python version 3, in many ways the two versions are the same, if you learned one it's relatively easy to learn the other. Python 3 is obviously, though, the future of the language, so that's what we're going to teach. Be aware that if you're searching the web for help with Python, though, you'll probably find just as much information about Python 2 as Python 3, however usually tips and techniques you find for Python 2 will be just as valid for Python 3. >> Furthermore, Python is a good language to learn, it's a very popular scripting language. Once you become proficient at Python you'll be able to sit down and automate many tasks using Python relatively quickly. Python is also designed to be relatively easy to learn and use, or as Scott likes to say if Joe can program in Python you can too. >> [LAUGH] In this course we're going to focus on the essential aspects of Python programing. We will start by teaching you how to write simple arithmetic expressions in Python and how to store the resulting values and variables. >> Then we'll teach you how to write and use functions, which are the basic building blocks of all programs. A function takes some inputs, performs computation with these inputs, and then returns a result. You can define such functions once and then call them as many times as you need throughout your programming, this allows you to easily reuse common code throughout your programs. >> We will also teach you about logic and conditionals. It is rare that you always want your program to do exactly the same thing every time, instead you want it to be able to react to data that is input by the user in some way. Conditionals allow your programs to do different things based upon the data within it. >> And finally, we'll teach you how to use Python modules. Python comes with a very large set of builtin modules, these modules provide a wide array of different functionality that you can use in your programs. By taking advantage of these modules you can write more complex programs easily since you'll be using code that had been written for you. >> Now Joe and I love our jobs and we want to share that passion with you. When first starting out, though, many people find programming to be a very difficult task, are we claiming that it's not? No, but instead we want you to realize that this will be challenging, also though, this means that it'll be that much more rewarding when you master it. >> Now not many people know that President John F Kennedy delivered his famous speech about the United States going to the moon right here at Rice University. One of the more famous lines of that speech was we choose to go to the moon in this decade, not because it's easy, but because it is hard. We think that his point also has relevance to this specialization, I would paraphrase it as this you should learn to program not because it's easy because it is hard. >> It's often the difficult things that are worth doing, because they are the things that allow you to accomplish your goals and achieve new heights, and get paid well while you do it. [LAUGH] >> Welcome to our specialization, we look forward to helping you learn.