• Course Introduction

        • Time: 36 hours
        • Free Certificate
        This course is an introduction to fundamental programming concepts by way of the Python 3 programming language. Python 3 is a high-level interpreted language that has many benefits, including easy-to-read and easy-to-write syntax and powerful libraries that provide additional functionality. Even though Python 3 is a great programming language for beginners, it is also used extensively for practical applications in engineering and data science. This course is intended for people with no or very little prior programming experience. It covers a range of topics, such as data types, control flow, functions, file operations, and object-oriented programming. When you finish this course, you will be able to create Python programs for a variety of applications.

        • Course Syllabus

          First, read the course syllabus. Then, enroll in the course by clicking "Enroll me". Click Unit 1 to read its introduction and learning outcomes. You will then see the learning materials and instructions on how to use them.

        • Unit 1: Introduction to Python 3

          This unit will introduce you to the Python 3 programming language and cover how to use a platform-independent web-based programming environment to begin writing basic Python scripts. We will introduce basic Python data types, the assignment operator, and how to output data to the screen.

          Completing this unit should take you approximately 3 hours.

        • Unit 2: Operators

          This unit introduces Python operators. Using the variable types introduced in Unit 1, this unit will allow us to begin computing using arithmetic, relational, and logical operators. We will also introduce operator precedence and discuss what happens when several operators are applied within a single instruction

          Completing this unit should take you approximately 4 hours.

        • Unit 3: Input and Flow Control Statements

          If you have mastered the previous units, you now have the ability to put together a series of sequential Python instructions capable of performing some basic calculations. You also have the ability to format those results and output them to the screen. This unit covers "program flow control", which is necessary for programs to make decisions based upon a set of logical conditions. Your knowledge of relational and logical operators will be pivotal for applying a new set of Python commands that will enable you to control your program's flow. We will also introduce the "input" command so that the keyboard can be used to input data into a program.

          Completing this unit should take you approximately 4 hours.

        • Unit 4: Data Structures I – Lists and Strings

          Most of the programming concepts presented so far can be found in any programming language. Constructs such as variable definitions, operators, basic input and output, and control flow via conditional statements and loops are fundamental to what it means to compute. In this unit, we begin studying how data is structured within Python so we can program efficiently. Specifically, you will be introduced to lists and also immersed more deeply in the subject of strings. Upcoming units will introduce even more powerful data structures.

          Completing this unit should take you approximately 6 hours.

        • Unit 5: Functions

          The understanding of variable definitions and control statements is fundamental to any programming language. Furthermore, the syntax of basic data structures such as lists and strings is foundational to mastering the Python language. In this unit, we take another step to improve upon our program organization skills by introducing functions. When a given task is performed many times throughout a program, it is usually wrapped within a function so that it can be used or "called" whenever needed. This notion of creating a specific function or "procedure" to achieve a given task is part of a programming methodology known as "procedural programming". We will also briefly contrast this approach with the use of methods that are used in "object-oriented programming". We will discuss these in greater detail in Unit 10.

          Completing this unit should take you approximately 4 hours.

        • Unit 6: Basic Data Structures II – Tuples, Sets and Dictionaries

          Python's power lies not only in the vast set of modules and libraries available (such as matplotlib, random, math, numpy, etc.), but also in the data structures that are fundamental to the language. This unit introduces three more ways of structuring data that must be mastered: tuples, sets, and dictionaries. We will also revisit the concepts of mutability and immutability, as we saw for lists and strings.

          Completing this unit should take you approximately 3 hours.

        • Unit 7: File Handling

          It is all well and good that data can be created within a program via variable assignments and user input. However, we must also be able to deal with data stored in files. In this unit, we will introduce methods for reading data from and writing data to a file. At its heart, Python is an object-oriented language. Pay attention to the syntax we use here, which will prepare you for the rest of the course.

          Completing this unit should take you approximately 2 hours.

        • Unit 8: Regular Expressions

          At this point in the course, you should have some familiarity with applying string methods for finding a pattern within a string. Regular expressions are a syntax framework for performing more general pattern searches that allow for a measure of pattern variability. The subject of regular expressions is actually quite deep and highly relevant to the theory of computation. This unit will introduce you to the re module and its regular expression syntax to gain expertise with string pattern searches.

          Completing this unit should take you approximately 3 hours. 

        • Unit 9: Exception Handling

          Any programmer should be able to identify the source of potential errors and implement code to handle those errors. This unit introduces the syntax necessary for achieving this goal. Handling errors can be a sensitive topic because the programmer must address points where something could go wrong. Devote yourself to these examples, as they will be important in your journey to becoming a professional programmer.

          Completing this unit should take you approximately 4 hours. 

        • Unit 10: Object-Oriented Programming

          We are now ready to transition into object-oriented programming, which organizes code in the form of what are referred to as classes. In Python, every variable created is an object, and, as you have already seen, each variable has access to a set of methods. This is because there exists a class definition housing the methods that a given object has access to. In this unit, you will learn how to design your own classes, create or "instantiate" objects from a given class, and write programs that apply your class designs.

          Completing this unit should take you approximately 8 hours. 

        • Course Summary and Review

        • Study Guide

          This study guide will help you get ready for the final exam. It discusses the key topics in each unit, walks through the learning outcomes, and lists important vocabulary. It is not meant to replace the course materials!

        • Course Feedback Survey

          Please take a few minutes to give us feedback about this course. We appreciate your feedback, whether you completed the whole course or even just a few resources. Your feedback will help us make our courses better, and we use your feedback each time we make updates to our courses.

          If you come across any urgent problems, email contact@saylor.org.

        • Certificate Final Exam

          Take this exam if you want to earn a free Course Completion Certificate.

          To receive a free Course Completion Certificate, you will need to earn a grade of 70% or higher on this final exam. Your grade for the exam will be calculated as soon as you complete it. If you do not pass the exam on your first try, you can take it again as many times as you want, with a 7-day waiting period between each attempt.

          Once you pass this final exam, you will be awarded a free Course Completion Certificate.

        • Saylor Direct Credit Final Exam

          Take this exam if you want to earn college credit for this course. This course is eligible for college credit through Saylor Academy's Saylor Direct Credit Program.

          The Saylor Direct Credit Final Exam requires a proctoring fee of $5. To pass this course and earn a Credly Badge and official transcript, you will need to earn a grade of 70% or higher on the Saylor Direct Credit Final Exam. Your grade for this exam will be calculated as soon as you complete it. If you do not pass the exam on your first try, you can take it again a maximum of 3 times, with a 14-day waiting period between each attempt.

          We are partnering with SmarterProctoring to help make the proctoring fee more affordable. We will be recording you, your screen, and the audio in your room during the exam. This is an automated proctoring service, but no decisions are automated; recordings are only viewed by our staff with the purpose of making sure it is you taking the exam and verifying any questions about exam integrity. We understand that there are challenges with learning at home - we won't invalidate your exam just because your child ran into the room!


          1. Desktop Computer
          2. Chrome (v74+)
          3. Webcam + Microphone
          4. 1mbps+ Internet Connection

          Once you pass this final exam, you will be awarded a Credly Badge and can request an official transcript.