Python 3 Language and Applications
Learn the basic concepts of Python
Learn how to write robust and error free code
Establish a strong foundation in Object Oriented Programming
Learn how to write decorators like a Pro
Learn advanced python concepts like inheritance, super and the MRO
Built-in Modules: os, sys, math, random, datetime, logging
Learn how to work with Text, CSV and JSON files
Learn how to write and analyze Regular Expressions (Regex)
Setup a Flask web server using HTTP, HTML, SQL, Jinja2, Bootstrap4
Learn about Data Analysis using Python: Numpy, Pandas, Seaborn
Introduction
Get the most value out of this course!
What will you learn?
Why Python?
How is Python run on a computer?
Introduction- Quiz
Anaconda, Python and Jupyter Notebook
Install Anaconda and Python on Windows 10
Install Anaconda and Python on MacOS
A survey of Jupyter Notebook
Installation-Quiz
DataTypes: Numbers and Boolean Types
Introduction to Python DataTypes
Integers, Floating Point Numbers and Arithmetic Operations
Complex Numbers, Conversions and Useful Functions
Arithmetic Precedence Rules in Python
Boolean Types
Numerical Types – Quiz
Variables: An Introduction
Variables: Naming Conventions, ID, Type and Input
Variables – Quiz
DataTypes: Strings
Strings: Introduction, creation and class
Strings: Escape Characters
Strings: Indexing and Immutability
Strings: Manipulation using functions
Strings: Slicing
Strings: Concatenation and Formatted Strings
Strings – Quiz
Assignments – I
Assignment 1 and Solution
Assignment 2 and Solution
Assignment 3 and Solution
Assignment 4 and Solution
Assignment 5 and Solution
Assignment 6 and Solution
Assignment 7 and Solution
Assignment 8 and Solution
DataTypes: Tuples and Lists
DataTypes: Sequence types
DataTypes: Tuple Creation and indexing
DataTypes: Tuple operations and slicing
DataTypes: Tuple Operations, continued
Quiz – Tuples
DataTypes: List Introduction, creation and indexing
DataTypes: List operations-I
DataTypes: List operations-II
DataTypes: List operations-III
Quiz – Lists
DataTypes: Sets and Dictionaries
DataTypes: Sets Creation and Basics
DataTypes: Set Properties and Operations
Sets – Quiz
DataTypes: Dictionary Creation and Basics
DataTypes: Dictionary Properties and Operations
Dictionary – Quiz
Data Types – Summary
DataTypes – Summary
Conversions between DataTypes
Conversions between DataTypes
Conversions – Quiz
Operators
Operators: Arithmetic, Assignment and Comparison
Operators: Logical
Operators: Identity, Membership and Bitwise
Operators – Quiz
Flow Control: Loops and Conditional Statements
Flow Control: for loops
Flow Control: if-elif-else branching
Flow Control: Ternary Expressions
Flow Control: while loops
Flow Control – Summary
Flow Control – Quiz
Assignments – II
Assignment 9 and Solution
Assignment 10 and Solution
Assignment 11 and Solution
Assignment 12 and Solution
Assignment 13 and Solution
Assignment 14 and Solution
Assignment 15 and Solution
Assignment 16 and Solution
Assignment 17 and Solution
Functions
Functions: Introduction, Basics and Objects
Functions: Parameters and Arguments
Functions: The return keyword
Functions – Quiz1
Functions: Positional and Keyword Arguments
Functions: Default parameters, Variable arguments and Variable keyword arguments
Functions – Quiz 2
Functions: Local and Global Scope variables
Functions: More adventures in variable Scope
Functions: Lambda/Anonymous functions
Functions – Quiz 3
Functions – Summary
Assignments – III
Assignment 18 and Solution
Assignment 19 and Solution
Assignment 20 and Solution
Assignment 21 and Solution
Assignment 22 and Solution
Assignment 23 and Solution
Advanced Functions
Enumerate and Map functions
Filter, Reduce and Zip functions
Closures: Preliminary Setup
Closures: Functions returning functions
Closures: Wrapping up
Decorators: Introduction and Creation
Decorators: Usage and Examples
List Comprehensions
Dictionary Comprehension
Quiz – Advanced Functions
Advanced Functions – Summary
Assignment – IV
Assignment 24 and Solution
Assignment 25 and Solution
Assignment 26 and Solution
Assignment and Solution
Assignment and Solution
Assignment and Solution
Assignment and Solution
Assignment and Solution
Assignment and Solution
Modules and Packages
Modules: Introduction and Basics
Modules: Alternative import methods and Lookup order
Packages: Basics and Import
Object Oriented Programming
OOP: Introduction
OOP: Basic class and instance
OOP: Instance Attributes
OOP: dunder init and the concept of Self
OOP: dunder init and other bound methods
OOP: Instance Bound Methods (cont.)
OOP: Class Attributes
OOP: Class Methods
OOP: Class Methods (cont.)
OOP: Static Methods and a recap
OOP: Protected and Private attributes
OOP: Properties, getters, setters and deleters
OOP: Properties using decorators
OOP: Read-only properties
OOP: Validating attributes using properties
OOP: Inheritance
OOP: Inheritance (cont.)
OOP: Inheritance and Overriding
OOP: Multiple and Multi-Level Inheritance
OOP: Method Resolution Order (MRO) Example in Multi-Level/Multiple inheritance
OOP – Summary
OOP – Quiz
Assignment – V
Assignment and Solution
Assignment and Solution
Assignment and Solution
Assignment and Solution
Advanced Python Topics
Iterators
Generators Functions and Expressions
Generators: When are they needed?
Python Built-In modules
Built-in Modules: OS
OS Module in Linux/MacOS
OS Module in Windows
SYS Module
Random Module
MATH Module
Date Time Module
Logging Module
Error Handling, Exceptions and Unit Tests
Tracebacks and Exceptions: try-catch
Unit Tests
File Operations
Text File Operations
CSV File Operations
JSON File Operations
Regular Expressions (regex)
Regex: Introduction and Simple String matches
Regex: Character Class/Set matches
Regex: Special characters and alphanumeric matches
Regex: Positional matches and Word Boundaries
Regex: Pattern Repetitions with Quantifiers, Greedy and Lazy matches
Regex: Character Grouping, Capture Groups and Back References
Regex: The re module in Python
Web Development and Communication
Web: Basics of web communications
Web: Requests module, http request and response
Web: Requests using URL parameters and JSON response
Web: Requests using POST
Web: The Flask Micro Webserver
Web: Using Jinja2 templates basics
Web: Creating a Dynamic website
Web: Templates using the block content
Web: Forms and the POST method
Web: Looping in a web template
Web: Loops and HTML tables
Web: RDMS and Sqllite: A primer
Web: RDMS and Sqllite – Part 2
Web: Connecting Python and Sqllite
Students Web Site: Search page
Students Web Site: Add Student page
Students Web Site: Edit Student page
Students Web Site: Edit Student page (cont.)
Students Web Site: Finishing up with course page, CSS
Web: Communication using SMS messages
Web: Summary
Data Analysis
Data Analysis Introduction – Numpy
Numpy – nD Arrays, Creation and Manipulation
Pandas: Basics, Series, Properties and Manipulation
Pandas: DataFrame, Creation and Basics
Pandas: DataFrame CSV, append and filtering rows and columns
Pandas: DataFrame Sorting and Complex Filtering
Pandas: Filling missing values and looping over a dataframe
Pandas: Groupby transformations
Pandas: Data Analysis of COVID-19 cases from daily reports
Visuals: Introduction and Matplotlib
Visuals: Analyzing Titanic Data using Matplotlib
Visuals: A simpler approach to plotting from Pandas
Visuals: Seaborn for easy plotting of complex graphs