subject
Intro

Udacity: Programming Foundations with Python

 with  Kunal Chawla
In this introductory programming class, you’ll learn Object-Oriented Programming, a must-have technique for software engineers that will allow you to reuse and share code easily. You’ll learn by doing, and will build byte-sized (ha!) mini projects in each lesson to learn and practice programming concepts.

We’ve heard that programming can be intimidating for newcomers, and we’ve created this course to make sure that you have a great learning experience! You’ll learn ***actively*** with our mini projects (see the awesome list below), which you’ll be able to share proudly with your friends. You’ll also learn important programming concepts one by one, with no surprises or leaps of logic along the way.

You’ll pick up some great tools for your programming toolkit in this course! You will:

- Start coding in the programming language Python;
- Reuse and share code with Object-Oriented Programming;
- Create and share amazing, life-hacking projects!


This introductory course is for you if you want to be a software engineer, or if you want to collaborate with programmers. Mastering Object-Oriented Programming will propel your career in tech forward, and it’s also a great way to learn how software engineers think about solving problems.

This course is also a part of our Full Stack Web Developer Nanodegree.

Why Take This Course?
You should take this course if you want to build awesome projects, while writing only a few lines of code. Here are some of them:

- **Project Take a Break**: Do you know a friend who works too many hours? We will write a program that schedules breaks throughout the day -- reminding your friend to listen to music, get up and dance to their favorite song, or just walk away from the computer every once in awhile. http://youtu.be/C29aerpwkc8
- **Project Profanity Editor**: Imagine it’s late at night and you get an email from your boss, requesting your help with something. You reply, “I can take a shot at it” but accidentally end up including an awkward word (sh*t). Oops. We will write a python program that detects curse words, and saves clumsy email writers from embarrassing moments. http://youtu.be/Rvj2UI-wVXA
- **Movie Website**: We will learn how to make an awesome webpage that lists your favorite movies and shows their trailers.
https://www.youtube.com/watch?v=X0FoelOIZM0&t=1m24s



While building these projects we will learn about a programming technique that is used by software engineers on a daily basis; it is called Object-Oriented Programming.

Finally, we will work together to get better at reading help documents and using other people’s code almost like lego blocks to build our programs. By building these projects, you’ll become more confident in your ability to code and transition from “programming looks like magic” to “oh, I can do that.”

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 1: Using Functions (3.5 hours)
We will use functions (webbrowser.open 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 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 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

### Final Project (6 hours)
Here, you will use the skills learned in this course to identify a problem statement and idea for a project. You will then identify step-by step directions (in simple English) to design a solution for the previously identified problem. Finally, you will use this design and your newly learned object-oriented programming skills to write code to realize your project.
12 Student
reviews
Cost Free Online Course
Pace Self Paced
Provider Udacity
Language English
Hours 6 hours a week
Calendar 6 weeks long
+ Add to My Courses
Kunal Chawla
Class Central presents
An interview with
Kunal Chawla
Learning by Doing – A Peek Behind Udacity’s Teaching Philosophy Read
Learn Data Analysis udacity.com

Learn to become a Data Analyst. Job offer guaranteed or get a full refund.

Advertisement
Become a Data Scientist datacamp.com

Learn Python & R at your own pace. Start now for free!

Advertisement
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

12 reviews for Udacity's Programming Foundations with Python

Write a review
6 out of 6 people found the following review useful
3 years ago
Prose Simian partially completed this course, spending 6 hours a week on it and found the course difficulty to be easy.
I just worked through this course (excluding the final project) over a couple of days. I agree with the other review that the paid version could be a worthwhile introduction to object orientation, for someone with a little Python experience but found it marred by some design decisions (see pros and cons). IIRC this c Read More
I just worked through this course (excluding the final project) over a couple of days. I agree with the other review that the paid version could be a worthwhile introduction to object orientation, for someone with a little Python experience but found it marred by some design decisions (see pros and cons).

IIRC this course was aimed to close a gap between udacity's CS101 and later courses (specifically Steve Huffman's web development course, CS253: https://www.udacity.com/course/cs253)

If so, a) the level is sorely mis-pitched, CS101: CS101 is faster paced, and conceptually harder.

b) after CS101, aside from a bit of exposure to inheritance, students probably mostly need some practice. The free version of course -unless you do project of your own- is too short to contribute much to that. (Rice's IIPP is far better in this respect.)

So sans project, this course may not be so helpful to someone with introductory Python experience.

Pros:

- careful, patient explanations of object orientation

- attention to verbal and visual cues so you know where it's going

- encouragement to read the docs, with a little background & interpretation of what you just read, to makes things less intimidating.

Cons:

- over-reliance on the external motivation of posting what you've done on the forums (which are effectively dead - like all the udacity forums, particularly since the dispensed with free certificates)

- over-reliance on extraneous elements, which allow the code to do something 'cool' but add unneccessary work/complexity.*

- at one point, displaying this complexity to the user, advising him/her to try to understand it**

- failure to develop some concepts within easy reach of what was covered.***



* Is it fair to make students jump through the hoops of registering for twilio, to send an SMS to a smartphone before discarding this example a few segments later?

** Specifically this:

https://s3.amazonaws.com/udacity-hosted-downloads/ud036/fresh_tomatoes.py

Is someone with introductory Python really supposed to grasp this melange of html + css+ javascript (inc bootstrap.js) + python (leveraging regexes, which aren't introduced in this course)?

*** Demonstrates calling the parent class method for init, but not in an overloaded child method; an obvious extension that would take seconds to explain.
Was this review helpful to you? YES | NO
7 out of 8 people found the following review useful
3 years ago
profile picture
Life is Study completed this course.
This is a beginner level course but it assumes you have a basic grasp of programming in python. It would be a good course to take after completing the first few weeks of an introductory python course like Udacity's CS 101, Rice's "An Introduction to Interactive Programming in Python" on Coursera or MIT's "Introduction Read More
This is a beginner level course but it assumes you have a basic grasp of programming in python. It would be a good course to take after completing the first few weeks of an introductory python course like Udacity's CS 101, Rice's "An Introduction to Interactive Programming in Python" on Coursera or MIT's "Introduction to Computer Science and Programming Using Python" on EdX.

Intro to OOP provides a gentle introduction to using classes in python that starts by building up your confidence with creating programs with simple, yet interesting examples like drawing lines, sending text messages and filtering messages for profanity. The instructor uses built-in python class objects to introduce the concept of classes before having students create their own classes. In the final section, you'll use classes to make a basic movie website that plays trailers for your favorite movies. The course touches briefly on some advanced topics in object oriented programming like inheritance and method overriding.
Was this review helpful to you? YES | NO
a month ago
Uenotakahiro completed this course, spending 5 hours a week on it and found the course difficulty to be easy.
このコースはほぼ全ての動画で日本語字幕も利用できるため、英語の苦手な日本人の方でも利用できます。 説明も平易でかつ初心者でも理解できるよう簡単なレベルから徐々に難しいレベルへステップアップしていく流れにも無理がないです。時間さえあれば誰でも最後までやりきることができると思います。 プログラミング未経験の初心者の方にかなりおすすめです。 ただ、すでに他の言語などでプログラミングを経験したことがある方には簡単すぎるかもしれません。 This course is easy to understand about programming. I spent 2 weeks and about 5 hours per week to Read More
このコースはほぼ全ての動画で日本語字幕も利用できるため、英語の苦手な日本人の方でも利用できます。

説明も平易でかつ初心者でも理解できるよう簡単なレベルから徐々に難しいレベルへステップアップしていく流れにも無理がないです。時間さえあれば誰でも最後までやりきることができると思います。

プログラミング未経験の初心者の方にかなりおすすめです。

ただ、すでに他の言語などでプログラミングを経験したことがある方には簡単すぎるかもしれません。

This course is easy to understand about programming.

I spent 2 weeks and about 5 hours per week to finish this course.

I strongly recommend this course for beginners.
Was this review helpful to you? YES | NO
8 months ago
profile picture
Anonymous audited this course.
Beware that you can't do the final project if you are taking the free course. I'm not sure why this is but the folks at Udacity should make this clear when folks sign-up for it.
Was this review helpful to you? YES | NO
5 months ago
profile picture
Oliver Mcmanus completed this course.
Was this review helpful to you? YES | NO
2 years ago
Mark Round completed this course.
Was this review helpful to you? YES | NO
a year ago
profile picture
Donghyun Kang completed this course.
Was this review helpful to you? YES | NO
12 months ago
profile picture
Erlend Landroe completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Sérgio Miguel Valente completed this course.
Was this review helpful to you? YES | NO
2 years ago
Jacob Silverman audited this course.
Was this review helpful to you? YES | NO
6 months ago
Siraj Sandhu completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Alex Ivanov dropped this course.
Was this review helpful to you? YES | NO