Programming Foundations with Python

Need help getting started?


Course Syllabus

Lesson 0: Introduction (30 min)

We will begin with an introduction from the instructor. More specifically, we will talk about the projects we will build and the ideas we will learn in this course. Then we will conduct a short test to ensure you have all the prerequisites necessary for the course. Finally, we will work together to download Python on your computer.

Lesson 0 Notes

Lesson 1: Using Functions (3.5 hours)

We will use functions ( and os.rename) from the Python Standard Library to build two projects in this lesson. After that we will present a scenario where using functions will not present a very elegant solution; this will illuminate the need for a new programming tool called Classes.

Lesson 1 Notes

Lesson 2: Using Classes (5 hours)

Here we will learn about important object-oriented programming concepts like classes and instances. We will build three cool projects while using classes. These include drawing shapes with Turtle, sending text messages with Twilio and checking curse words with a function called open.

We will leverage modules from within the Python Standard Library and also learn to download and use an external Python package (twilio).

Lesson 2a Notes
Lesson 2b Notes
Lesson 2c Notes

Lesson 3: Making Classes (5 hours)

In this lesson we will learn to create our first class. While doing this we will build a website that plays trailers of your favorite movies. Here are some of the programming ideas we will learn in this lesson:

  • How to create a class
  • How to instantiate an object
  • How to access class attributes and methods
  • What is the self keyword
  • What are constructors (__init__)
  • What are DocStrings
  • How to create and access Class Variables
  • How does Inheritance work How to override methods

    Lesson 3a Notes
    Lesson 3b Notes


Dozens of amazing people (within and outside Udacity) have worked tirelessly to make this course a reality. While I (read: Kunal, the instructor) am working on compiling a full list of those individuals, I want to single out the work of Kagure Kabue (editing) and Clark Downer (management). This course would not have been possible without their efforts.

If you are reading this and you helped me shape the ideas in this course, I want to thank you. You are awesome!