How to Think like a Programmer with Python
4.4 (24 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
270 students enrolled
Wishlisted Wishlist

Please confirm that you want to add How to Think like a Programmer with Python to your Wishlist.

Add to Wishlist

How to Think like a Programmer with Python

Make your life easy by understanding hundreds of programming problems with easy explanation
4.4 (24 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
270 students enrolled
Created by Tahir Abbas
Last updated 12/2016
English
Current price: $10 Original price: $30 Discount: 67% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 13.5 hours on-demand video
  • 8 Articles
  • 58 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Analyze, design, and solve real world problems in Python
  • Develop problem solving skills that will help you to solve programming problems with less effort
  • Understand basic procedural programming skills
  • Understand basic Object Orientation Skills
View Curriculum
Requirements
  • No prior experience of programming is required.
  • Basic working with computer may be a plus point!
Description

Target Audience:

I have designed this course for students who fall under following categories;

  • If you are a brand new student at university or college level and qualifying a programming language is your degree requirement.
  • If you have not learned any programming language before (and think that it is the language of Alien)
  • If You feel it very difficult (and it makes your eyes rainy at nights)
  • If you have already taken online courses and think that material was too basic or didn't contain sufficient explanation or supplementary material
  • If you are passionate technology explorer and wants to know what programming languages are?

If you fall under any category above then then you have clicked the right course!!!

My Approach of Teaching

  1. First we learn how to understand basic programming problem and break it in to concrete steps (input/processing/output/iterations etc.)
  2. Then we learn how to convert those steps to algorithm/Flowcharts
  3. Then, we convert those steps in to python instructions.
  4. Easy and step by step explanation. Please see my preview lectures to judge the "Quality"

PLUS

  • 24/7 support for students. You can query about any problem related to topics covered in the course.

Prerequisite: There is no prerequisite of this course. Anyone who can use computer can learn programming

Who is the target audience?
  • If you feel that Programming is "Difficult" then this course is designed for you.
  • This course is designed for newbies who are at University level or College level and want to improve their programming skills
  • If you have not learned any programming before, but it is a mandatory part of your university or college degree then you are at right place!
  • This course is useful for you even if you are a secondary/high school student
  • This course is also helpful for instructors who want to teach programming fundamentals first time in their life.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
148 Lectures
13:39:38
+
Start Up
4 Lectures 14:57

I will discuss following points;

  1. Introduction to Instructor
  2. Course Objectives
  3. Course Learning Outcomes
  4. High level Course Contents
  5. Recommended Books
Preview 06:22

In this lecture, the instructor will discuss

  • What is programming?
  • Why we need Programming
  • Some common myths about programming
Introduction to Programming
03:57

In this Lecture we discussed,

  • Introduction to Python
  • Why we choose Python?
  • Advantages/Characteristics of Python


Introduction to Python
03:21

Installation of Python on Windows

Installation of Python on Windows
01:17
+
Sequence
22 Lectures 01:45:35

In this lecture, the instructor will explain, what is an algorithm and what are the key building blocks of an algorithm (input/Processing/output)

Introduction to Algorithms
08:07

In this lecture, the instructor will explain the purpose of variables or memory units in programming

Variables or Memory Units
03:53

The instructor will explain the basic data types used in python for example;

  • Integer
  • Decimal/Float
  • Character
  • String
Types of Data
03:27

In this session, the instructor will explain how to create variables in Python with different examples

Variables in Python
03:31

Rules of creating variables names are explained. Important to watch!

Rules for Writing Variable Names
03:02

In this lecture, instructor will explain what are expressions and how we can create them in Python

Introduction to Expressions
02:40

In this lecture, the instructor will explain how we can use expressions to create assignment statements in Python using Assignment operator (=)

Assignment Statement
04:10

The arithmetic operators and their precedence will be discussed in detail in this lecture

Arithmetic Operators and their Precedence
05:48

The arithmetic operators and their associativity will be discussed in detail in this lecture

Arithmetic Operators and their Associativity
05:14

In this lecture, the instructor will explain about updating values of variables. The instructor will also explain the short cut notation for updating values in variables using compound assignment operator.

Updating a Value in Variables
04:18

Different built-in math functions will be discussed in detail

Basic Math Functions
05:20

Learn about type conversions in Python (important lecture)

Type Conversions
02:11

Learn about how to make your programs interactive that can take values from user.

Taking input from user
06:57

Learn about one of the most important building block of an algorithm that is an "output"

Displaying things to user
06:27

Make your program more meaningful and understandable by inserting comments

Comments
03:04

Learn your first step towards writing actual computer programs by breaking it into concrete parts using Pseudo code

Introduction to Pseudocode
03:58

Flowchart are another important tool for learning programming (must watch lecture)

Introduction to Flowcharts
04:28

I will introduce you to a very handy and useful tool for creating flowcharts and executing them to see the states of computer programs while they are working.

Flowgorithm (A Software)
08:32

Make your hands dirty and write your first complete computer program that can calculate the area of a triangle.

Calculate the area of a triangle
09:26

Write a program that can swap the values in two variables (very interesting problem)

Swap the values in two variables
07:26

Lets solve a problem that can find the quotient and remainder by supplying dividend and divisor.

Find the remainder and quotient
03:10

Exercises: Sequence
00:26
+
Selection
17 Lectures 01:30:58

In this lecture, the instructor will explain different types of control structures and their usage in programming. for example,

  1. Sequence
  2. Selection
  3. Repetition


Preview 07:29

Following relational or comparison operators are discussed. For example,

greater than (>), less than (<), greater than equal to (>=), less than (<=), equal to (==), not equal to (!=)

Relational or Comparision Operators
07:10

This lecture will give you detail understanding of following contents

  • Syntax of If Statement
  • Flow Chart of Simple If Statement
  • Examples of Simple If
Simple If statement
09:27

In this lecture, the instructor will solve two simple problems that will make use of simple If statement.

More Examples of Simple If
05:20

This lecture will explain a simple problem that will determine whether a number given by user is an odd or even.

If-Else (with Even-Odd Example)
08:54

This lecture will discuss a very interesting problem that will calculate the bonus of an employee based on salary and grade 

Bonus Calculator
06:58

This lecture will give you an understanding of Multiple If-Else statement with examples.

Multiple If-Else (elif)
05:35

Write a program in Python that inputs test score of a student and displays his/her grade according to given criteria.

Student Grade Calculator
02:17

Write a program that inputs number of week’s day in integer and displays the name of the day in String

Weekday Name
02:52

We will develop a mini calculator that will do the following,

  • Addition
  • Multiplication
  • Subtraction
  • Division (Takes care of Zero Division Error)
Arithmetic Calculator
05:56

This lecture will discuss how we can form complex logical expression by using following operators

  • AND Operator
  • OR Operator
  • NOT Operator
Compound Condition
06:49

Write a program that takes three numbers from user and then find the greatest number.

Find Greatest Number
02:40

Write a program that takes age from the user and then decide whether the age is between 18 to 24 and then displays the messages accordingly.

Check Valid Age
04:56

A nested if structure and its usage will be discussed with different examples

Introduction to Nested If
02:32

In this lecture, we are going to solve famous leap year problem using nested if structure.

Leap Year Example
05:26

Write a program that takes three numbers from user and then find the smallest number using nested if structure

Find Smallest Number (using Nested If)
05:49

Exercises: Selection
00:48
+
Iterations
26 Lectures 02:10:12

In this lecture we will discuss,

  • Introduction to Iterations or Loops
  • Types of Loops/Iterations
  • Examples
Preview 03:41

In this important lecture, the instructor will discuss,

  • Basics of for loop, 
  • Variations of for loop
  • Understanding the basic flow of for loop using flow chart 
For Loop Basics (Part One)
06:59

This lecture is the continuation of the previous lecture. We will discuss about the range() function in detail and we will generate different set of numbers using range() function. We will also discuss count down loop

For Loop Basics (Part Two)
05:41

In this lecture, we will write a program that print the squares of first 5 integers in a specific format.

Print Squares
03:12

A Bonus Lecture! This will introduce you to PyCharm IDE, its installation and advantages.

Introduction to PyCharm (IDE)
04:26

In this lecture, we are going to write a program that can print a table of any integer number. It should take the number from user and then print the table according to the given format.

Print a Pretty Table
04:37

In this lecture we will solve a famous problem of finding a factorial of any given integer. I am sure you will enjoy it :)

Find Factorial of a Number
07:59

In this lecture, we are going to print some numbers horizontally (I am not kidding!)

Print Series Horizontally
02:33

In this important lecture, we are going to write a program that takes an integer number N from user. It then calculates and displays the sum of numbers from 1 to N. 

Sum of First N Numbers
03:26

In this lecture, we are going to discuss two very important statements of any loop called break and continue. We will discuss the purpose of these statements with examples.

Break and Continue
04:54

This lecture is the practical implementation of break statement. We will write a program that inputs an integer and then determine whether it is a prime or composite.

Find a Prime Number (Using Break)
09:35

This lecture will teach you about the basics of debugging and how it can enhance the analytical skills of students. It is recommended tool for the beginners. Don't miss this lecture! 

Debugging
06:18

This lecture will further improve the prime number program written previously.

Find a Prime Number (Improved)
01:51

In this lecture we will write a program that can display the numbers form 1 to 100 which are not multiples of 3 and 5

Show Specific Numbers
04:20

This lecture will introduce about while loop, its syntax and why it is used.

While Loop
04:35

In this lecture we are going to write a program that can take the positive numbers from user. The loop should be terminated when user enters negative number.

Looping till Positive Numbers
02:18

Enter Numbers in Valid Range (Solution # 1)
03:25

A very important lecture regarding "data validation". The program will keep asking an integer from user until user enters a valid range.

Enter Numbers in Valid Range (Solution # 2)
01:45

In this lecture, we are going to write a menu based program as shown below

  1. Add a student
  2. Delete a student
  3. Search a student
  4. Exit

The program will be terminated when user press option 4.

Student Management System
08:07

The instructor will introduce two methods for generating random numbers.

  1. randint(a, b)
  2. choice(Sequence)
Random Numbers
02:22

This lecture will introduce number guessing game and its implementation in python.

Number Guessing Game
09:28

In this lecture, the instructor will explain about nested loops using flow chart, syntax of nested loops and how they can be written in python. The instructor will also use debugger tool to explain the flow of control of nested loops.

Nested Loops
06:39

In this lecture, we will make use of nested loops to print a beautiful triangle of numbers.

Display Pattern of Numbers
06:08

In this lecture, we will make use of nested loops to print a beautiful inverted triangle of numbers.

Display Inverted Pattern of Numbers
07:38

We will write a program that can find the first N prime numbers. The program should display all first N prime numbers and should also display the count of all prime Numbers.

Find First N Prime Numbers
07:19

Exercises: Iterations
00:56
+
Data Structures
32 Lectures 03:24:31

Following contents will be discussed in this lecture,

  1. Introduction to Data Structures
  2. Characteristics of Data Structures
  3. Operations on Data Structures
Preview 03:36

We will discuss,

  1. Creating a List
  2. Empty list
  3. Adding things to a list
  4. Getting things from a list


Basics of List (Part I)
09:27

We will discuss following contents,

  1. Modifying items in a list
  2. “Slicing” a list
  3. Deletion from a list (remove(), del, pop())


Basics of List (Part II)
08:16

We will discuss following contents,

  1. Traversing a list
  2. Searching a list (in, index())
  3. Sorting a list
  4. Reversing a list
  5. Min and max function
  6. Count function


Basics of List (Part III)
06:15

In this lecture, we will write a program that inputs five integers from the user and stores them in a list. It then displays all values in the list using a loop.

Preview 03:05

In this lecture, we will modify the previous program so that it can find the sum and average of all integers in a list.

Counting and Averaging Integers
04:13

In this lecture, we are interested in writing a program that inputs 10 numbers from user and stores them in a list, it then displays the maximum number from list.

Find Maximum Number from List
06:08

In this lecture, we will write a program that inputs current day and month from user. It then calculates and displays the total number of days in the current year till the entered date

Calculate Total Days
06:25

This lecture will further finalize a program that we have written before. This will use list as data structure to store, delete, update and search student record.

Student Management System (Revisited)
05:49

This lecture will introduce you about one of the most important data structure called "Stack". The instructor will explain how you can use list as stack in python. At the end, the instructor will write complete program that will use stack as data structure.

Using Lists as Stacks
09:56

In this lecture, the instructor will explain how we can use list as queue. We will modify our previous program to use queue instead of stack.

Using Lists as Queues
04:52

The instructor will explain about linear search in detail with the help of pseudo-code. Later, the pseudo-code will be converted to python code.

Linear Search
05:54

The instructor will explain about binary search in detail with the help of pseudo-code. Later, the pseudo-code will be converted to python code.

Binary Search
11:13

First of all, the instructor will explain what is bubble sort with the help of simple example. After careful analysis of that example, a complete python program will be written step by step.

I use example from this book. Please purchase this book to help Authors if you are interested to learn C++ in future

Object Oriented Programming using C++ By Tasleem Mustafa, IT series, Pakistan

Preview 10:55

In this lecture, the instructor will explain a two dimensional list with the help of simple example, creating a two dimensional list in Python and accessing the elements in the 2D list.

Two Dimensional List
07:25

In this lecture, the instructor will discuss,

  1. What is list Comprehensions?
  2. Why it is used?
  3. Syntax of list comprehensions
  4. Different examples
List Comprehensions
06:11

In this important lecture, we are going to create a 3 x 3 list, initialize it with some values and then display the list using nested for loop 

Loading and Traversing 2D List
04:15

In this lecture, we are going to write a program that takes matrix of size 3x3 from user and then display the matrix.

Loading and Traversing 2D List (Version II)
03:16

This lecture will solve a very famous problem of matrix addition.

Matrix Addition
07:34

This lecture will explain the matrix multiplication in detail.

Matrix Multiplication
11:17

Following contents will be discussed,

  1. What are tuples?
  2. How they can be created in python?
  3. How to access elements in tuples?
  4. tuple() and list() methods
Tuples
03:18

The instructor will explain the following contents,

  1. What is Dictionary Data Structure?
  2. Creating a Dictionary data structure
  3. Accessing values from Dictionary
  4. Updating values
  5. Deleting values
  6. Searching values


Dictionaries
03:47

The instructor will explain following methods,

  1. keys()
  2. values()
  3. items()
  4. get()
  5. setdefault()



Useful Methods in Dictionaries
07:57

This lecture will modify the previous program that will use Dictionary as data structure instead of List.

Student Management System (using Dictionaries)
10:40

In this lecture, after introducing String data structure, the instructor will explain new format() function of String.

String Basics (New Format Function)
08:13

In this lecture we will discuss following contents,

  1. Concatenation in strings
  2. Indexing and Slicing
  3. Using in and not in operators in string
  4. upper(), lower(), isupper(), and islower() functions
String Basics (Part II)
06:15

In this lecture, we will discuss following functions of String

  • isalpha()
  • isalnum()
  • isdecimal()
  • isspace()
  • istitle()


String Basics (Part III)
02:21

In this lecture, the instructor will make use of few of string functions to solve a problem that validates user ID and password.

Validate User Input
03:15

We will discuss following string functions,

  • ustartswith() and endswith()
  • join() and split()
  • rjust(), ljust(), and center()
  • strip(), rstrip(), and lstrip()
String Basics (Part IV)
08:19

In this lecture, we are going to write a very interesting program that will take a phrase from user and convert that phrase to the acronym.

Find Acronym of a Phrase
03:56

In this lecture, the instructor will write and explain a program that can find whether a string is palindrome or not.

Find a Palindrome
08:03

Exercises: Data Structures
02:25
+
Functions
8 Lectures 39:28

In this lecture, we learn,

  • What are functions?
  • What are advantages of using functions
  • Syntax of defining a function in Python
  • Function calling
Preview 10:15

We are going to write a function that can print asterisks on a single line based on the supplied argument value

Print Asterisks Function
02:49

A function that can find the maximum value among two given numbers as arguments

Max() Function
02:39

In this lecture, we will learn how a function can return a value to caller

Return a Value
03:57

A very important lecture that will teach you about the variable scopes (local and global)

Local and Global Scope
10:22

This function will find the area of triangle and returns it to main program

Area() Function
02:32

We are going to write a function that can take a list and a number as arguments and return the count or frequency of that number in list.  

Count() Function
05:28

Exercises: Functions
01:26
+
Exception Handling
2 Lectures 14:17

We learn following

  • What is Exception Handling?
  • What are some common exceptions?
  • Try/Except block
  • Multiple Except Blocks for single try block
  • Multiple arguments in Except block for single try block


Preview 06:29

In this video, we will learn;

  • Use of Exception class
  • Display predefined error messages using 'args' attribute
  • Finally block
  • Raising an Exception
Exception Handling (Part II)
07:48
+
A Project: Tic Tac Toe Game
7 Lectures 41:43

The instructor will show you demo of Tic Tac Toe game. You can skip this lecture if you already know how to play Tic Tac

Introduction to Tic Tac Toe
03:30

In this part, we are going to construct a pretty 2-D board for Tic Tac Toe

Preview 05:05

In this Video, we will learn how we can mark a 2-D board with entries like 'X' and 'O'

Marking a Board with X and O
04:58

Very important lecture where we will set up winning conditions.

Setting Up Winning Conditions
09:01

we are going to set up an important condition where match will be drawn.

Checking a Tie Condition
04:12

A toss is the important activity in any game. Therefore, we are going to code a toss activity in this lecture

Who Goes First (A Toss)
10:09

If you have ever played games then you know that this is one of the important feature. "Do you want to play again?" and if you press "Yes" then game will re-start

Note: Complete Source code is included with this lecture

Play Again Loop
04:48
+
Object Orientation
22 Lectures 02:22:03

You will learn following things;

  • Abstraction
  • What is Object Orientation?
  • Disadvantages of Procedural Programming
  • Advantages of Object Orientation
  • What is a Class?
Preview 09:48

In this lecture, we will learn the difference between Class and Object with real life examples

Classes and Objects
06:54

  • In this lecture we are going to develop a 'Student' Class. 
  • We will learn how to define properties in Python with initializer function (_init_)
  • How to define Methods/Functions
  • Setter and getter functions
Student Class Example
12:49

Developing a Circle Class will give us further confidence towards Object Orientation.

Circle Class Example
05:16

This class will depict a toy ATM System where user will be able to do credit, debit and balance inquiry.

Preview 09:15

We will learn;

  1. What is "Information Hiding"?
  2. Why we need it?
Information Hiding
06:20

In this lecture, we will revisit account class and make it more perfect with some input validation so that user invalid inputs can be handled.

Account Class with Input Validation
08:45

Exceptional handling is more powerful tool than simple input validation and in this lecture we are going to raise an exception at certain points to avoid program crash.

Account Class with Exception Handling
04:29

Account Class: Final Source Code
00:33

In this lecture we will learn,

  1. What is composition?
  2. Examples of Composition
Composition
03:09

In this lecture, we will construct half of a program (Date Class) that will demonstrate Composition.

Composition (Date Class)
06:06

This lecture will complete example of composition started in the previous lecture. We will develop "Student" Class

Composition (Student + Date)
08:20

Composition: Source code
01:05

In this lecture you will learn about static variables, purpose of static variables and how they can be used in Python.

Static or Class variables
06:57

In this lecture you will learn about static methods, purpose of static methods and how they can be used in Python.

Static Methods
04:56

In this lecture you will learn about;

  • What is Inheritance?
  • Purpose of Inheritance
  • Advantages of Inheritance
  • Examples
Inheritance
06:38

I will demonstrate a very simple example where I will use Inheritance between Point and Circle Class

Point and Circle Class (Inheritance)
09:20

We will learn what is method overloading and how we can achieve it in Python

Method Overloading
04:14

You will learn the following;

  • What are Abstract classes?
  • Purpose of Abstract classes
  • Advantages of using Abstract Classes
  • What are Concrete classes
  • Method Overriding
  • Road map to Polymorphism
Preview 06:46

Now its time to get busy in implementation of Abstract Classes. I will use an imaginary example here to make things easier for students.

Implementation of Abstract/Concrete Classes
09:15

We learn following in this video;

  • What is Polymorphism?
  • Examples of Polymorphism
  • Advantages
Polymorphism
06:35

You will learn about;

  • Multiple Inheritance with examples
  • Deadly diamond of Death Problem
  • How Python resolve Deadly Diamond of Death Problem
Multiple Inheritance
04:32
+
Payroll System (A Case Study)
6 Lectures 25:45

In this lecture, we will code an Employee class which is the abstract class in the Payroll System

Preview 05:05

In this lecture, we will code Salaried Employee class which is the child class of an Employee Class

Salaried Employee Class
04:46

In this lecture, we will code Hourly Employee class which is the child class of an Employee Class

Hourly Employee Class
05:09

In this lecture, we will code Commission Employee class which is the child class of an Employee Class

Commission Employee Class
05:44

In this lecture we will do following

  • Instantiating objects of child classes in Payroll System
  • Polymorphically calling method of an Abstract class
  • Using isinstance() and issubclass() methods
Using Payroll System
03:22

Payroll System: Complete Source Code
01:39
1 More Section
About the Instructor
Tahir Abbas
4.4 Average rating
24 Reviews
270 Students
1 Course
Lecturer/Software Engineer

Engr. Tahir Abbas is a core software engineer, a lecturer and a researcher. He earned his Master degree in Software Engineering. He has over 6 years of teaching experience. He has working experience in Java, C#, Python, ASP.NET, C++, PHP, Software Testing, Project Management, Object Oriented Software Engineering, Software Design etc.

Teaching is his hobby, he enjoys teaching, he loves to share concepts and he is exceptionally good in explaining difficult concepts in easy steps. (Students says :))

He was the pioneer in his University who introduced Python in introductory programming course and achieved amazing results.

Over the years, he developed unique style of teaching programming languages by analyzing the problems/issues that students often face while learning programming courses . He analyzed how to break programming problems in to concrete parts and then making a sequence between those parts to complete the job. For example, he used executable flow charts, animation and scratch to develop problem solving skills in students. He also learned how to use real world analogy in explaining the most difficult concepts and achieved remarkably worthy outcomes.