Welcome! Glad to have you on board! 
 
What Will You Learn? What Benefits You Get From Taking This Course? 
 
Just starting out in programming? Read this! 
 
Get a Complete Learning Experience! 
 
Watching the Course at the Best Resolution Possible 
 
How to Ask Good Questions on Udemy 
 
Join the PRIVATE DISCORD COMMUNITY! 
 
How to Install Python 3 on Windows 
 
How to Install Python 3 on macOS 
 
The Python Interpreter & IDLE in Windows 
 
The Python Interpreter & IDLE in macOS 
 
Python 3 Basics - Scripts in Windows 
 
UPDATE! Saving a Python script in Notepad++ 
 
Python 3 Basics - Scripts in macOS 
 
Python 3 - Reasons for the 'No such file or directory' error (or similar) 
 
Coding Exercise - Write Your First Python Script 
 
Python 3 Basics - User Input 
 
Python 3 User Input - Quiz 
 
Python 3 Basics - Variables 
 
Coding Exercise - Creating a Variable in Python 3 
 
Python 3 Basics - Keywords 
 
Why learn about each of Python's data types? 
 
Python 3 Strings - Introduction 
 
Python 3 Strings - Methods 
 
Python 3 Strings - Operators & Formatting 
 
Python 3 Strings - Formatting Using F-strings 
 
Python 3 Strings - Slices 
 
Python 3 Strings - Slicing Using a Step 
 
Coding Exercise - Extracting a Character From a String 
 
Coding Exercise - Write a String Slice and Extract a Substring (Positive Indexes) 
 
Coding Exercise - Write a String Slice and Extract a Substring (Negative Indexes) 
 
Coding Exercise - Splitting a String by a Delimiter 
 
Python 3 Numbers - Math Operators 
 
Notebook - Numbers and Math Operators 
 
Coding Exercise - Raising a Number to a Power Using a Function 
 
Python 3 Booleans - Logical Operators 
 
Notebook - Booleans and Logical Operators 
 
Coding Exercise - Evaluate an Expression as Boolean False 
 
Coding Exercise - Evaluating Two Mathematical Expressions 
 
Python 3 Lists - Introduction 
 
Coding Exercise - Slicing a List 
 
Coding Exercise - Add a New Element to a List 
 
Coding Exercise - Remove an Element From a List 
 
Coding Exercise - Sorting the Elements of a List 
 
Python 3 Sets - Introduction 
 
Python 3 Sets - Frozensets 
 
Notebook - Sets and Frozensets 
 
Coding Exercise - Add a New Element to a Set 
 
Coding Exercise - Remove an Element from a Set 
 
Coding Exercise - Spot the Differences Between Two Sets 
 
Coding Exercise - Spotting the Common Elements of Two Sets 
 
Python 3 Tuples - Introduction 
 
Python 3 Tuples - Tuples vs. Lists 
 
Python 3 Tuples - Methods 
 
Coding Exercise - Extract an Element From a Tuple (Positive Indexes) 
 
Coding Exercise - Extract an Element From a Tuple (Negative Indexes) 
 
Coding Exercise - Print a Tuple in Reversed Order Using Indexes 
 
Coding Exercise - Slicing a Tuple 
 
Python 3 Ranges - Introduction 
 
Python 3 Ranges - Methods 
 
Coding Exercise - Create a Range with a Positive Step 
 
Coding Exercise - Create a Range with a Negative Step 
 
Coding Exercise - Get the Index of a Range Element 
 
Coding Exercise - Slicing a Range. To slice or not to slice? 
 
Python 3 Dictionaries - Introduction 
 
Python 3 Dictionaries - Methods 
 
Python 3 Dictionaries - Updates in v3.6 and v3.7 
 
Python 3 - Conversions Between Data Types 
 
Notebook - Dictionaries and Conversions Between Data Types 
 
Coding Exercise - Adding a New Key-Value Pair to a Dictionary 
 
Coding Exercise - Removing a Dictionary Element by its Key 
 
Coding Exercise - Check the Existence of an Element in a Dictionary 
 
Coding Exercise - Updating the Value for a Specific Key 
 
Python 3 Conditionals - If / Elif / Else 
 
Notebook - If / Elif / Else Conditionals 
 
Python 3 Loops - For / For-Else 
 
Notebook - For / For-Else Loops 
 
Python 3 Loops - While / While-Else 
 
Notebook - While / While-Else Loops 
 
Python 3 Nesting - If / For / While 
 
Python 3 - Break / Continue / Pass 
 
Notebook - Break / Continue / Pass 
 
Python 3 - Try / Except / Else / Finally 
 
Notebook - Try / Except / Else / Finally 
 
Conditionals and Loops - Quiz 
 
Coding Exercise - Evaluate the Result of an if/elif/else Code Block 
 
Coding Exercise - Evaluate the Result of an if/elif/else Code Block 
 
Coding Exercise - Evaluate the Result of an if/elif/else Code Block 
 
Python 3 Functions - Basics 
 
Python 3 Functions - Arguments 
 
Notebook - Functions - Basics 
 
Python 3 Functions - Namespaces 
 
Python 3 Modules - Importing 
 
Python 3 Modules - Helpful Functions: dir() and help() 
 
Notebook - Modules and Importing 
 
Python 3 Modules - Installing a Non-Default Module in Windows 
 
Python 3 Modules - Installing a Non-Default Module in macOS 
 
Coding Exercise - Write a Function That Prints Out a String 
 
Coding Exercise - Write a Function That Returns a Result 
 
Coding Exercise - Add the Missing Code to a Function 
 
Python 3 Files - Opening & Reading 
 
Python 3 Files - Quick Note for Windows Users 
 
Python 3 Files - Additional Way of Avoiding the Unicode Error 
 
Python 3 Files - Writing & Appending 
 
Python 3 Files - Closing. The "with" Method 
 
Python 3 Files - Deleting File Contents 
 
Python 3 Files - Access Modes Summary 
 
Notebook - File Operations 
 
Coding Exercise - Add the Missing Code for Reading a File 
 
Coding Exercise - Pick the Appropriate File Access Mode 
 
Coding Exercise - Pick the Appropriate File Access Mode Method and Index 
 
Python 3 Regex - match() & search() 
 
Python 3 Regex - findall() & sub() 
 
Python 3 Regex - Regular Expressions Summary 
 
Notebook - Regular Expressions 
 
Bonus Video: Special Sequences 
 
Bonus Video: Sets of Characters 
 
Bonus Video: OR in Regular Expressions 
 
Bonus Video: split() & subn() 
 
Bonus Video: Additional Regex Syntax Elements 
 
Bonus Video: AttributeError: 'NoneType' object has no attribute 
 
Regular Expressions - Quiz 
 
Coding Exercise - Extract a Group Using the search() Method (Non-Greedy) 
 
Coding Exercise - Extract a Group Using the search() Method (Greedy) 
 
Coding Exercise - Replace a Character Class with a Certain Character 
 
Python 3 Classes - Objects 
 
Python 3 Classes - Inheritance 
 
Notebook - Classes and Objects 
 
Coding Exercise - Update an Object Attribute (version 1) 
 
Coding Exercise - Update an Object Attribute (version 2) 
 
Coding Exercise - Check if an Object Exists or Not 
 
Python 3 - List / Set / Dictionary Comprehensions 
 
Notebook - List / Set / Dictionary Comprehensions 
 
Coding Exercise - Write a List Comprehension 
 
Python 3 - Lambda Functions 
 
Notebook - Lambda Functions 
 
Coding Exercise - Write a Lambda Function 
 
Python 3 - map() and filter() 
 
Notebook - map() and filter() 
 
Coding Exercise - Filtering the Results of a Lambda Function 
 
Python 3 - Iterators and Generators 
 
Notebook - Iterators and Generators 
 
Coding Exercise - Create a Generator Object 
 
Coding Exercise - Get the Odd Integers from a Range Using a Special Function 
 
Coding Exercise - Write Your First Decorator 
 
Python 3 - Threading Basics 
 
Notebook - Threading Basics 
 
Python 3 - Coding Best Practices 
 
Designing and Building the User Menu 
 
Implementing Addition Subtraction Multiplication Division 
 
Implementing Modulo Raising to a Power Square Root Logarithm 
 
Implementing Trigonometric Functions: sin cos tan 
 
Testing Each Function of the Application 
 
Download the Code - Interactive Scientific Calculator 
 
Creating Executable Files (.exe) from Python Scripts (.py) 
 
Setting Up the Working Environment 
 
Loading an Excel Workbook In Python and Creating/Removing Sheets 
 
Notebook - Handling Workbooks 
 
Getting General Information About a Sheet 
 
Notebook - Sheet Information 
 
Working with Sheet Cells Using Python 
 
UPDATE! Change in cell.column in recent versions of openpyxl 
 
Notebook - Cell Information 
 
Working with Cell Styles Using Python 
 
Cell Styles - Update on Colors 
 
Download the Excel-Python Cheat Sheet 
 
APPLICATION - Migrating Records from a Text File to an Excel Workbook 
 
Download the Code - Excel Application 
 
Automate Excel Tasks with Python 3 - Quiz 
 
Installing the Database Server Software 
 
UPDATE! Downloading and Installing PostgreSQL 
 
Installing the Necessary Python Module 
 
Creating a New Database Schema and User 
 
UPDATE! Change in database connection via PSQL 
 
Notebook - Creating a New Database Schema and User 
 
Connecting Python to the Database 
 
Notebook - Connecting Python to the Database 
 
Creating Database Tables with Python 
 
UPDATE! Handling the InFailedSqlTransaction exception 
 
Notebook - Creating Database Tables with Python 
 
Inserting Records Into a Table with Python 
 
Notebook - Inserting Records Into a Table with Python 
 
Updating Records Into a Table with Python 
 
Notebook - Updating Records Into a Table with Python 
 
Deleting Records From a Table with Python 
 
Notebook - Deleting Records From a Table with Python 
 
Querying the Database with Python 
 
Notebook - Querying the Database with Python 
 
Fetching Information From the Database with Python 
 
Notebook - Fetching Information From the Database with Python 
 
Committing and Rolling Back Transactions with Python 
 
Notebook - Committing and Rolling Back Transactions 
 
Download the PostgreSQL Syntax Cheat Sheet 
 
Download the PostgreSQL-Python Cheat Sheet 
 
APPLICATION - Migrating Records from a Text File to the Database 
 
Download the Code - Database Application 
 
Automate Database Tasks with Python 3 - Quiz 
 
Installing the Virtualization Software 
 
Installing the Virtualization Software on Windows Linux macOS 
 
Downloading & Installing the Network Device VM 
 
Note about Arista vEOS versions 
 
Signing Up to the Arista Software Download Portal 
 
Importing the VM & Tweaking the VM Settings 
 
UPDATE! vEOS First Boot and the ZeroTouch Feature 
 
Connecting the Local PC to the Devices in Windows 
 
Connecting the Local PC to the Devices in macOS 
 
Necessary Switch/Router Configuration 
 
Checking the SSH Configuration and Testing the Connectivity 
 
UPDATE! Putty asking for Host Key / Password 
 
Any Connection Issues? Check Out This Troubleshooting Checklist! 
 
Checking IP File Validity 
 
Notebook - Checking IP File Validity 
 
Checking IP Address Validity 
 
Notebook - Checking IP Address Validity 
 
Checking IP Address Reachability 
 
Notebook - Checking IP Address Reachability 
 
Note about pinging in Windows vs. Mac OS / Linux 
 
Checking Username/Password File Validity 
 
Notebook - Checking Username/Password File Validity 
 
Checking Command File Validity 
 
Notebook - Checking Command File Validity 
 
Establishing the SSH Connection 
 
Notebook - Establishing the SSH Connection 
 
Enabling Simultaneous SSH Connections 
 
Notebook - Enabling Simultaneous SSH Connections 
 
APPLICATION - Putting Everything Together 
 
Download the Code - Network Application and Modules 
 
Reading Device Configuration 
 
Extracting Network Parameters 
 
Configuring Multiple Devices Simultaneously 
 
Automate Network Tasks with Python 3 - Quiz 
 
Running Python Code - The Next Level: IPython and Jupyter Notebook 
 
Notebook - IPython and Jupyter Notebook 
 
Introduction to Pandas - Basic Operations 
 
Notebook - Introduction to Pandas 
 
Handling Files with Pandas - TXT CSV JSON XLSX 
 
Notebook - Handling TXT CSV JSON XLSX Files with Pandas 
 
Reading HTML Content from URLs and HTML Files with Pandas 
 
Notebook - Reading HTML Content with Pandas 
 
Indexing and Slicing Tables with Pandas 
 
Notebook - Indexing and Slicing Tables with Pandas 
 
Adding Updating Deleting Table Rows and Columns 
 
Notebook - Adding Updating Deleting Table Rows and Columns 
 
APPLICATION - Reading and Writing Data in PostgreSQL Databases Using Pandas 
 
UPDATE! Preparing for testing the application 
 
Download the Code - SQL Data Analysis Application 
 
Automate Data Analysis with Python 3 - Quiz 
 
Bookmark These 3 Important Documentation Links 
 
Creating a Basic Line Plot Based on Python Lists 
 
UPDATE! BokehDeprecationWarning: 'legend' keyword is deprecated 
 
Notebook - Creating a Basic Line Plot Based on Python Lists 
 
Creating a Bar Plot Based on Excel Data 
 
Notebook - Creating a Bar Plot Based on Excel Data 
 
Creating a Pie Chart Based on CSV Data 
 
UPDATE! Using 'legend_field' instead of 'legend' 
 
Notebook - Creating a Pie Chart Based on CSV Data 
 
Plotting Multiple Stock Prices Simultaneously 
 
Notebook - Plotting Multiple Stock Prices Simultaneously 
 
Plotting Bitcoin Prices as an Interactive Plot with a Range Tool 
 
UPDATE! Code change according to a new website structure 
 
Notebook - Plotting Bitcoin Prices as an Interactive Plot with a Range Tool 
 
Plotting Bitcoin Prices as an Interactive Plot with Candlesticks 
 
Notebook - Plotting Bitcoin Prices as an Interactive Plot with Candlesticks 
 
Data Visualization with Bokeh and Python 3 - Quiz 
 
Installing pytest and Writing Your First Test 
 
Notebook - Introduction to pytest 
 
Running Multiple Tests. Test Discovery Rules in Action 
 
Notebook - Running Multiple Tests 
 
Testing a Basic Script - Preparing the Test Bed 
 
Download the Code for Testing 
 
Notebook - Fixture Functions 
 
Sharing a Fixture Instance & Fixture Finalization 
 
Notebook - Sharing a Fixture Instance & Fixture Finalization 
 
Notebook - Parametrizing Fixtures 
 
Marking Test Functions Using Attributes 
 
Notebook - Marking Test Functions Using Attributes 
 
Marking Test Functions Using Custom Markers 
 
Notebook - Marking Test Functions Using Custom Markers 
 
Automate Unit Testing with Python 3 - Quiz 
 
Installing the Necessary Modules 
 
Notebook - Installing the Necessary Modules 
 
Extracting and Parsing Web Content 
 
Notebook - Extracting and Parsing Web Content 
 
Tags Names and Attributes 
 
Notebook - Tags Names and Attributes 
 
Searching the Tree of HTML Tags: find() and find_all() 
 
Notebook - Searching the Tree of HTML Tags: find() and find_all() 
 
APPLICATION - Extracting the Product Names Links and Prices. Saving to Excel 
 
Download the Code - Scraping Web Data and Saving to Excel 
 
APPLICATION - Handling Website Pagination When Extracting Data 
 
Download the Code - Handling Website Pagination When Extracting Data 
 
Automate Web Scraping with Python 3 - Quiz 
 
OOP vs. Functional Programming 
 
Constructor Instance Attributes and 'self' 
 
Encapsulation - Public Private and Protected 
 
Multiple (Diamond) Inheritance and MRO 
 
Polymorphism and Method Overriding 
 
Operator Overloading and Magic Methods 
 
Notebook - Most common magic methods 
 
Abstract Classes and Methods 
 
Object-Oriented Programming - Quiz 
 
Update! Installing Python 3.9 
 
Setting Up a Virtual Environment 
 
Notebook - Setting Up a Virtual Environment 
 
Notebook - Installing Django 3 
 
Installing PyCharm Community Edition 
 
Notebook - Installing PyCharm on MacOS 
 
Bonus! WSL: Windows - Linux Subsystem 
 
Notebook - WSL: Windows-Linux Subsystem 
 
Building the Initial Setup - Quiz 
 
Django Project & App Creation 
 
Notebook - Django Project & App Creation 
 
Notebook - Sample settings.py for our project 
 
Project Creation & Configuration - Quiz 
 
Class Based Views over Function Based Views 
 
Notebook - Django Templates 
 
Model Views Templates & Forms - Quiz 
 
The 'createsuperuser' Command and Logging to Django Admin 
 
Register Models & Edit DB Entries from Django Admin 
 
Notebook - Writing tests in tests.py 
 
Installing Git Bash and Pushing to Gitlab 
 
Gitlab Pipeline to Run Tests at Commit 
 
Notebook - Gitlab Pipeline 
 
Notebook - Installing Git Bash 
 
Installing PyCharm Community Edition 
 
Notebook - Installing PyCharm on MacOS 
 
Django Project & App Creation 
 
Notebook - PyCharm & Django 
 
Building the Initial Setup - Quiz 
 
Setting Up Pre-commit Hooks 
 
TDD & Running the First Test 
 
Github Actions to Run the Tests 
 
Notebook - Continuous Integration 
 
Continuous Integration - Quiz 
 
REST & Django Rest Framework 
 
Django Rest Framework - Quiz 
 
API Key Authentication & Final Project Version Download 
 
Django Rest Framework - Quiz 
 
Building the Initial Setup - Quiz 
 
Installation & Project Creation 
 
Defining the Schema: Object Types and Query 
 
Notebook - Sample JSON Data (Users) 
 
Changing Data: Inputs Payloads & Mutations 
 
Adding More Data: User Posts 
 
Notebook - Sample JSON Data (Posts) 
 
Installing Docker on Windows 10 Pro 
 
Installing Docker on Windows 10 Home 
 
Notebook - Dockerfile Content 
 
Notebook - docker-entrypoint.sh 
 
Notebook - docker-compose.yaml 
 
Extension notations and non-capturing groups 
 
Extension notations and non-capturing groups - Notebook 
 
Named groups and groupdict() 
 
Named groups and groupdict() - Notebook 
 
Positive lookahead assertions 
 
Positive lookahead assertions - Notebook 
 
Negative lookahead assertions 
 
Negative lookahead assertions - Notebook 
 
Positive lookbehind assertions 
 
Positive lookbehind assertions - Notebook 
 
Negative lookbehind assertions 
 
Negative lookbehind assertions - Notebook 
 
Extension Notations and Assertions - Quiz